Commit Graph

88 Commits

Author SHA1 Message Date
Marc André Tanner bb7e4e77f4 Remove MSG_REDRAW it was actually never sent by the client 2018-03-18 15:06:31 +01:00
Marc André Tanner fd34b98db7 Add explicit option for command pass through
This allows commands to be send interactively (i.e. when stdin refers
to a terminal). Also imply attach action if none is given, hence:

    $ abduco -p session
    cowsay hi
    ^D

can also be used to send input to a session.
2018-03-17 13:30:52 +01:00
Marc André Tanner c901f2bbb8 If stdin is not a terminal pass-through its data to the session
This allows to send commands to a running session:

    echo cowsay hi | abduco -a session

See #8 for initial discussion of the feature.
2018-03-17 13:30:52 +01:00
Marc André Tanner 5a46912d62 Add -q (quiet) option to disable unnecessary output 2018-03-17 13:30:52 +01:00
Marc André Tanner 315338a572 Update year numbers 2018-03-17 13:30:25 +01:00
Marc André Tanner a1db9e2dae Check return value of chdir(2) where it makes sense 2017-06-27 10:09:32 +02:00
Marc André Tanner 1f1c02a3b0 Avoid use of BUFSIZ to guarantee system independent package size 2017-06-27 08:50:10 +02:00
Marc André Tanner 7ee5e79cf5 Update year numbers 2017-06-21 23:12:55 +02:00
Marc André Tanner 8964601fe1 Use fixed size integer types in protocol messages
This should make it possible to connect with a 32bit client to a 64bit
server. This might also make it possible to forward the abduco socket
over SSH as described in #25. Different endianness are not supported at
this time.

This is a breaking protocol change. Make sure to use the same version
as client and server (anything else is unsupported anyway!).
2017-06-21 22:52:14 +02:00
Marc André Tanner 6375556846 Use defines instead of numeric values for standard file descriptors 2017-06-21 22:51:54 +02:00
Marc André Tanner a0d8e45cfe Update year to 2016 2016-03-24 14:48:23 +01:00
Marc André Tanner 25d9df6fea Make default command configurable via config.def.h 2016-01-09 11:55:55 +01:00
Marc André Tanner 42bb83bbb6 Change default command handling to not use out of scope variable
Should fix CID 121406.
2016-01-09 11:55:52 +01:00
Marc André Tanner fdd0c4163f Use the shell to execute default command given by $ABDUCO_CMD
This allows to specify a default command with arguments as in:

 $ ABDUCO_CMD="dvtm -m ^b" abduco -c demo
2016-01-07 23:50:47 +01:00
Marc André Tanner 598fdc396f Print session list if neither action nor session name was given
In particular

 $ abduco -e ^q

will now also print the session list which is useful if the
default detach key is changed by means of a shell alias.

Closes #10
2016-01-07 23:50:42 +01:00
Marc André Tanner 4d80fccaa4 Remove trailing white spaces - no functional changes 2016-01-06 17:23:41 +01:00
Marc André Tanner 3e9a3fdf4d Make socket directory location configurable via config.def.h
Introduce $ABDUCO_SOCKET_DIR environment variable to set a
default location.
2016-01-06 17:18:44 +01:00
Marc André Tanner 21dd6ad6b7 Update year in copyright clause 2016-01-03 12:07:57 +01:00
Marc André Tanner 577ae6ae7a Slightly tweek communication protocol for -l option 2016-01-03 12:03:02 +01:00
Marc André Tanner 75dc9a52fa Update usage message to include -l option 2016-01-03 12:02:39 +01:00
Luke Clifton 1fcd6e4f44 Added -l option to move clients to the bottom of the stack.
This means it wont take control over the window size until
it is the last remaining one, unless another client connects
with the -l option set at a later time.
2016-01-02 20:01:03 +00:00
Marc André Tanner 57e7acba69 Display more meaningful time in session list
Due to the stale session detection logic we will always access
the socket thus essentially printing the current time which
does not seem useful.
2015-08-09 10:36:47 +02:00
David Phillips e08d7acc3a Allow squashing of command line flags together 2015-08-07 17:01:47 +02:00
Marc André Tanner 42962ff827 Cleanup socket directory creation code 2015-08-03 12:28:09 +02:00
Marc André Tanner 4ab9cb7fcc Fix display of status flags in session list 2015-07-30 12:20:41 +02:00
Marc André Tanner 64713a3219 Only delete stale sockets if they are sockets in the first place 2015-07-30 12:19:06 +02:00
Marc André Tanner 277f4d154d Improve detection and handling of stale sessions
With this it should be possible to create sessions for which a
dead left over socket still exists. Also the session list as
printed by abduco without any arguments will delete those stale
sockets.
2015-07-30 11:52:46 +02:00
Ross Mohn 91feaaa9f9 Fix strange behavior with abduco -A
Here are the steps:

1) Run 'abduco -A foo ping suckless.org'

2) Press 'CTRL+\' to detach

3) Run 'abduco -A foo' to reattach

4) Press 'CTRL+\' and it flashes the screen but does not detach

5) Press 'CTRL+\' a second time and it detaches this time

Here's what the output looks like:

    $ abduco -A foo ping suckless.org
    abduco: foo: detached
    $ abduco -A foo
    abduco: foo: detached
    abduco: foo: detached
    $

Also, oddly, I am only seeing this behavior on my Ubuntu Linux host, not
my AIX hosts.
2015-06-23 13:04:16 +02:00
Marc André Tanner cefcaeb451 Update man page 2015-02-26 15:30:11 +01:00
Marc André Tanner ca60dc72f4 Improve -f handling
As an example -A -f should probably not create a new session
if the old one is still running.
2015-02-26 15:15:18 +01:00
Marc André Tanner e738f82956 Allow read only attaches to newly created sessions 2015-02-26 14:13:19 +01:00
Marc André Tanner ad1d370a48 Remove left over from -C flag 2015-02-26 14:12:47 +01:00
yy 0102cf840e Remove -C mode, in favour of a -f flag
that works with -c, -n or -A, which forces the creation of a
new session when there is an existing but already terminated
session of the same name.
2015-02-26 13:58:05 +01:00
Marc André Tanner 2dd042f974 Fix access permissions on non-Linux systems
Create sockets in a per user directory with proper permissions
either in

 $HOME/.abduco/session-name

or if not possible in

 /tmp/abduco/$USER/session-name
2015-02-25 23:24:40 +01:00
Marc André Tanner ad05af340a Change some year numbers to 2015 2015-02-19 17:46:05 +01:00
Marc André Tanner 64920e5977 Simplify maximum socket name length check 2015-02-17 22:49:14 +01:00
Marc André Tanner 98ac772a97 Set packet length to zero on error case 2015-02-17 22:49:14 +01:00
Marc André Tanner f02c3fc3c0 Fix validation creteria 2015-02-17 00:34:44 +01:00
Marc André Tanner bd3dcba548 Validate packet size before sending/receiving 2015-02-17 00:20:38 +01:00
Marc André Tanner e4a6b01fdc Make error handling more robust 2015-02-16 23:40:25 +01:00
Marc André Tanner d1a44a9c1a Check return value of open(2) #30720 2015-02-16 22:54:32 +01:00
Marc André Tanner bb7c859b5f Also NUL terminate string in error case #30714 2015-02-16 22:44:29 +01:00
Marc André Tanner 76bae5939f Improve terminal restoring
Instead of simply moving the cursor to the bottom of the screen
use the alternate screen buffer i.e. the smcup/rmcup capabilities.

This is currently hardcoded to the xterm originated \e[?1047{h,l}
sequence. I also patched dvtm to support these.
2014-12-22 13:32:42 +01:00
David 1946d8387a Added -C option
for collection of exit status and creation of new session in one go
2014-12-22 13:32:42 +01:00
Marc André Tanner 0a94807d60 Better error message in case session name is too long 2014-12-22 13:32:41 +01:00
Marc André Tanner 3cfa99a031 Decouple socket path lookup logic 2014-12-22 13:23:26 +01:00
Jason Swank d4a74a23d7 Allows abduco to compile on DragonFly BSD 2014-12-09 19:46:46 +01:00
Brandon Mulcahy 5ac6537927 Use more descriptive execvp error message 2014-11-10 13:48:52 +01:00
Marc André Tanner eabb140a38 Use _POSIX_C_SOURCE and _XOPEN_SOURCE instead of _GNU_SOURCE 2014-10-16 21:24:51 +02:00
Marc André Tanner 5b503c838f Set _GNU_SOURCE in config.mk 2014-10-16 21:20:02 +02:00