Commit Graph

36 Commits

Author SHA1 Message Date
Marc André Tanner 884e3bb2ca Print server process ID in session list 2018-03-18 15:06:37 +01:00
Marc André Tanner e48ea73ce0 Move server_accept_client function around 2018-03-18 15:06:37 +01:00
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 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 5b9fcf5e52 Revert "Set sticky bit on socket"
This reverts commit 15ae398ea5.

Setting the sticky bit on a file is not really portable and
causes more problems than it solves.

The reason why this was done in the first place, is that the
XDG Base Directory Specification states that files with the
sticky bit set should not be touched by periodic cleanup
procedures.

Close #13
2016-01-25 08:17:57 +01:00
Marc André Tanner a6418af4dd Properly handle EOF when reading from underlying application 2016-01-20 12:50:22 +01:00
Marc André Tanner 577ae6ae7a Slightly tweek communication protocol for -l option 2016-01-03 12:03:02 +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 15ae398ea5 Set sticky bit on socket
According to the XDG Base Directory Specification this should
prevent the file from being deleted by temporary cleanup
procedures.
2015-08-03 12:48:26 +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
Marc André Tanner 7962cb99f3 Cleanup socket creation 2015-02-25 23:27:44 +01:00
Marc André Tanner 91b7338f9d Set socket creation permission in a portable way
fchmod(2) on a socket file descriptor is unspecified behaviour
which happens to work on Linux. Use umask(2) instead which should
affect the permissions used by bind(2).
2015-02-21 18:18:21 +01:00
Marc André Tanner eef3b654d9 More error handling fixes 2015-02-17 00:02:06 +01:00
Marc André Tanner e4a6b01fdc Make error handling more robust 2015-02-16 23:40:25 +01:00
Marc André Tanner 5c7f933dcc Fix file descriptor leakage #30724 2015-02-16 22:42:01 +01:00
Marc André Tanner 3cfa99a031 Decouple socket path lookup logic 2014-12-22 13:23:26 +01:00
Marc André Tanner 35117affb9 Correct function definitions without parameters 2014-10-10 20:43:06 +02:00
Marc André Tanner 4b4c08457f Make client termination more robust by explicitly sending exit messages 2014-06-24 10:55:44 +02:00
Marc André Tanner 54c1dbddb2 Mark zombie sessions with '+' symbol
These are sessions which have no clients connected but their underlying
command already terminated.
2014-06-18 14:28:31 +02:00
Marc André Tanner fdf943d520 Make sure that clients are informed about session termination 2014-06-18 13:25:00 +02:00
Marc André Tanner a7e13911c5 Fix -n mode: do not wait for clients to connect 2014-06-18 13:24:59 +02:00
Marc André Tanner f4d3f21f00 Source code formatting changes 2014-03-22 17:38:17 +01:00
Marc André Tanner eccf9fd16e Introduce read only sessions (-r option)
Based on a patch from Lars Kellogg-Stedman.
2014-03-22 17:27:59 +01:00
Marc André Tanner 6000bc6240 Request screen size if most recently connected client disconnects 2014-03-21 21:57:50 +01:00
Marc André Tanner a99e46fd23 Simplify I/O handling 2014-03-21 20:40:55 +01:00
Marc André Tanner a3700092cb Mark the socket executable if clients are connected 2014-03-06 22:24:38 +01:00
Marc André Tanner 95db782096 Change resize policy
Only resize if the request is from the least recently connected client
or explicitly requested via a command.
2014-03-06 18:55:44 +01:00
Marc André Tanner f7a3290c9c Recreate server socket upon receiving SIGUSR1 2014-03-06 17:19:10 +01:00
Marc André Tanner b205eeea9a Don't wait for clients to be present inorder to read program I/O
Previously the underlying application would block on I/O because
we would wait to read it until a client is connected to display
the information. This prevented long running tasks from making
progress. However with the new approach output data of programs
which terminate while no client is connected is lost.
2014-03-06 12:58:15 +01:00
Marc André Tanner 6084fb4893 Make delivery of exit status code more reliable 2014-03-06 11:39:03 +01:00
Marc André Tanner 006c93a9d1 Send exit status back to client 2014-02-27 23:47:48 +01:00
Marc André Tanner 12287e473d Accept resize request only from the client which connected first
The problem this prevents is that when two instances are viewing
simultaneously they won't resize each other windows.
2014-02-27 17:04:36 +01:00
Marc André Tanner ed4f1ecdcd Use the same packet structure for both ways of the client server communiction
This is slightly less efficient than before but allows the server
to send different types of messages not only output data to the
client.
2014-02-26 21:13:18 +01:00
Marc André Tanner c14b9c9173 Unlink socket when server is killed 2014-02-25 23:36:02 +01:00
Marc André Tanner fcaf5368fa Use more appropriate types 2014-02-25 22:03:55 +01:00
Marc André Tanner 89cbbb3aa6 Initial import 2014-02-18 23:04:00 +01:00