Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-02-27 | seatd: Tear down VT when disabled client closes | Kenny Levinsen | |
If a client closed while it was disabled, the VT would not be torn down. If the user navigated back to the VT it belonged to, they would be stuck. When a client is disabled, open the fd for the VT it belonged to and perform regular teardown on it. | |||
2021-02-27 | client: Replace pending_disable with state enum | Kenny Levinsen | |
This simplifies logic in seat handling. | |||
2021-02-02 | seat: Remove unused arg from seat_deactive_device | Kenny Levinsen | |
2020-12-10 | client: Fix typo in cr_pid usage | Kenny Levinsen | |
2020-12-08 | client: Use cr_pid if available | Kenny Levinsen | |
This is only available on FreeBSD 13, so test for that version. | |||
2020-12-08 | client: Do not use SOL_SOCKET for LOCAL_PEERCRED | Kenny Levinsen | |
This is wrong, and leads to LOCAL_PEERCRED being interpreted as SO_DEBUG. 0 should be used instead. See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246189. | |||
2020-11-23 | client: More robust handling of client links | Kenny Levinsen | |
2020-11-23 | poller: Retry poll immediately on EINTR | Kenny Levinsen | |
There is nothing for us to dispatch unless we wake on an fd, so just retry poll if it fails with EINTR instead of doing a full dispatch loop. | |||
2020-09-22 | seat: Only close VT if no new session was found | Kenny Levinsen | |
2020-09-22 | terminal: Ack both release and acquire | Kenny 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-22 | seat: Use current VT for switch and ack | Kenny Levinsen | |
2020-09-22 | meson: Make default seatd socket path configurable | Kenny Levinsen | |
FreeBSD and Linux have different preferred socket locations. Expose an option to set the location, and implement simple auto-logic for linux/freebsd. | |||
2020-09-22 | poller: Add unittest | Kenny Levinsen | |
2020-09-22 | seatd: Log on exit | Kenny Levinsen | |
2020-09-22 | seat: Reuse deactivate logic, more logging | Kenny Levinsen | |
2020-09-22 | seat: Plug leak of deactivated fds | Kenny Levinsen | |
Only if a device had an fd and was active would an fd be closed. As devices are deactivated early on session switch, this lead to fd leakage. Close fds regardless of active state. | |||
2020-09-22 | seat: Rework seat activation/switch logic | Kenny 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-22 | client: Remove unnecessary active_client check | Kenny Levinsen | |
2020-09-22 | poller: Raise signals through self-pipe | Kenny 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-01 | client: Only unlink if on the idle list | Kenny Levinsen | |
2020-09-01 | Move list removal to seat/client destroy | Kenny Levinsen | |
2020-08-31 | client: Do not leak idle clients on exit | Kenny Levinsen | |
2020-08-31 | poller: Remember to remove sources from list | Kenny Levinsen | |
2020-08-31 | server: Remember to remove seat from list | Kenny Levinsen | |
2020-08-31 | poller: Convert to linked_list | Kenny Levinsen | |
2020-08-31 | server: Convert seat list to linked_list | Kenny Levinsen | |
2020-08-31 | poller: Make event sources opaque | Kenny Levinsen | |
2020-08-30 | seatd: Explicit cast -1 to unsigned gid_t | Kenny Levinsen | |
Silences a warning on some architectures. | |||
2020-08-30 | seatd: Slight error handling cleanup | Kenny Levinsen | |
2020-08-30 | seatd: Remove unused device_closed msg body | Kenny Levinsen | |
2020-08-29 | seat: Destroy all clients on teardown | Kenny Levinsen | |
2020-08-28 | Introduce libseat_set_log_level | Simon Ser | |
The default level is SILENT. log_init no longer takes an initial log level (so that calls to libseat_set_log_level prior to log_init work correctly). | |||
2020-08-28 | Rename enum log_level to libseat_log_level | Simon Ser | |
This is preparatory work for exposing a public function to set libseat's log handler. | |||
2020-08-08 | seatd: Use path-based chmod/chown | Kenny Levinsen | |
The fd variants do not seem to work for sockets | |||
2020-08-07 | seatd: Add command-line arguments | Kenny Levinsen | |
2020-08-05 | log: Remove libseat prefixes | Kenny Levinsen | |
2020-08-04 | seat: Fix device double-remove | Kenny Levinsen | |
2020-08-04 | seatd: Unlink default seatd socket on startup | Kenny Levinsen | |
2020-08-04 | server: Gracefully shut down on error | Kenny Levinsen | |
2020-08-04 | client: Sanitize shutdown/kill mechanism | Kenny Levinsen | |
2020-08-03 | client: Tidying | Kenny Levinsen | |
2020-08-03 | seat: Enable VT process switching when switching away | Kenny Levinsen | |
2020-08-03 | seat: Add VT cleanup on switch to empty VT | Kenny Levinsen | |
VTs were being cleaned up the active client of a VT went away, or if we were acking a kernel VT switch request. However, no cleanup was done if the user had reqested a session switch to a different VT. Duplicate the VT cleanup to the VT switch condition. | |||
2020-08-03 | seat: Convert client list to linked list | Kenny Levinsen | |
2020-08-03 | seat: Convert device list to linked list | Kenny Levinsen | |
2020-08-03 | server: Stack-allocate the server | Kenny Levinsen | |
2020-08-03 | poller: Inline the poller into the server struct | Kenny Levinsen | |
2020-08-03 | poller: Remove unnecessary poll_impl abstraction | Kenny Levinsen | |
2020-08-03 | client: Prefix notification methods with 'send' | Kenny Levinsen | |
2020-08-02 | seat: Deactivate devices before sending disable | Kenny Levinsen | |
Previously, seatd would not deactivate devices until the client had acked the disable. In once instance, this lead to libinput spending significant time checking and closing each input device. As a workaround, mimick logind's behavior of deactivating devices first. The original behavior can be reintroduced if the client-side problem is fixed. Closes: https://todo.sr.ht/~kennylevinsen/seatd/5 |