aboutsummaryrefslogtreecommitdiff
path: root/seatd/server.c
AgeCommit message (Collapse)Author
2020-09-22terminal: Ack both release and acquireKenny Levinsen
Linux only requires acking release and ignores ack of acquire, but FreeBSD is more stringent and will patiently wait for both to be acked. Implement proper acking for both events.
2020-09-22seat: Rework seat activation/switch logicKenny Levinsen
The seat activation logic did not correctly handle VT switching and switching between multiple sessions. Session switching on VT-bound seats is now performed using a VT switch, taking advantage of VT signals to perform the actual switch. This simplifies switching logic and makes it more robust.
2020-09-22poller: Raise signals through self-pipeKenny Levinsen
Signal handling relied on poll(2) being interrupted by signals, followed by a check for signal handlers flagging a signal as received. This only allowed signals that were received during poll(2) to be handled correctly. Implement the usual self-pipe implementation, where signal handlers write an arbitrary byte to a polled file descriptor to ensure proper level-triggered signal handling.
2020-09-01Move list removal to seat/client destroyKenny Levinsen
2020-08-31client: Do not leak idle clients on exitKenny Levinsen
2020-08-31server: Remember to remove seat from listKenny Levinsen
2020-08-31server: Convert seat list to linked_listKenny Levinsen
2020-08-07seatd: Add command-line argumentsKenny Levinsen
2020-08-04server: Gracefully shut down on errorKenny Levinsen
2020-08-03server: Stack-allocate the serverKenny Levinsen
2020-08-03poller: Inline the poller into the server structKenny Levinsen
2020-08-01FreeBSD compiler warning fixKenny Levinsen
2020-07-31Initial implementation of seatd and libseatKenny Levinsen