aboutsummaryrefslogtreecommitdiff
path: root/seatd
AgeCommit message (Collapse)Author
2020-09-22seatd: Log on exitKenny Levinsen
2020-09-22seat: Reuse deactivate logic, more loggingKenny Levinsen
2020-09-22seat: Plug leak of deactivated fdsKenny 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-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-22client: Remove unnecessary active_client checkKenny Levinsen
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-01client: Only unlink if on the idle listKenny Levinsen
2020-09-01Move list removal to seat/client destroyKenny Levinsen
2020-08-31client: Do not leak idle clients on exitKenny Levinsen
2020-08-31poller: Remember to remove sources from listKenny Levinsen
2020-08-31server: Remember to remove seat from listKenny Levinsen
2020-08-31poller: Convert to linked_listKenny Levinsen
2020-08-31server: Convert seat list to linked_listKenny Levinsen
2020-08-31poller: Make event sources opaqueKenny Levinsen
2020-08-30seatd: Explicit cast -1 to unsigned gid_tKenny Levinsen
Silences a warning on some architectures.
2020-08-30seatd: Slight error handling cleanupKenny Levinsen
2020-08-30seatd: Remove unused device_closed msg bodyKenny Levinsen
2020-08-29seat: Destroy all clients on teardownKenny Levinsen
2020-08-28Introduce libseat_set_log_levelSimon 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-28Rename enum log_level to libseat_log_levelSimon Ser
This is preparatory work for exposing a public function to set libseat's log handler.
2020-08-08seatd: Use path-based chmod/chownKenny Levinsen
The fd variants do not seem to work for sockets
2020-08-07seatd: Add command-line argumentsKenny Levinsen
2020-08-05log: Remove libseat prefixesKenny Levinsen
2020-08-04seat: Fix device double-removeKenny Levinsen
2020-08-04seatd: Unlink default seatd socket on startupKenny Levinsen
2020-08-04server: Gracefully shut down on errorKenny Levinsen
2020-08-04client: Sanitize shutdown/kill mechanismKenny Levinsen
2020-08-03client: TidyingKenny Levinsen
2020-08-03seat: Enable VT process switching when switching awayKenny Levinsen
2020-08-03seat: Add VT cleanup on switch to empty VTKenny 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-03seat: Convert client list to linked listKenny Levinsen
2020-08-03seat: Convert device list to linked listKenny Levinsen
2020-08-03server: Stack-allocate the serverKenny Levinsen
2020-08-03poller: Inline the poller into the server structKenny Levinsen
2020-08-03poller: Remove unnecessary poll_impl abstractionKenny Levinsen
2020-08-03client: Prefix notification methods with 'send'Kenny Levinsen
2020-08-02seat: Deactivate devices before sending disableKenny 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
2020-08-02seat: Open/close tty on activation/deactivationKenny Levinsen
The VT and KD ioctl's are picky about the tty fd used. In order to satisfy these, and to improve state cleanup, we now only and store the current tty when opening a client, and use this fd to perform teardown later. The presence of the fd is also used to signal that teardown is needed.
2020-08-01seat: Fix seat_device->fd assertKenny Levinsen
2020-08-01seatd: Perform clean server shutdownKenny Levinsen
2020-08-01FreeBSD compiler warning fixKenny Levinsen
2020-08-01client: Implement get_peer for FreeBSDKenny Levinsen
2020-08-01devices: Use path to check device typeKenny Levinsen
FreeBSD device numbers cannot be used to check the type of a device, as they are merely unique filesystem IDs. As the paths we use have been sanitized with realpath, we can simply use the path to check if a requested file is an evdev or drm device. This also allows us to make the check before the file is opened.
2020-07-31seat: Use PATH_MAX long array for realpathKenny Levinsen
2020-07-31seat: remove_client return value was invertedKenny Levinsen
2020-07-31Initial implementation of seatd and libseatKenny Levinsen