summaryrefslogtreecommitdiff
path: root/src/login/logind.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-08-07 13:49:34 +0200
committerSven Eden <sven.eden@prydeworx.com>2018-10-29 10:18:37 +0100
commit7c7734999ea003d756f8c0b6268bc374a1214e34 (patch)
tree0c560372db82c61d5c7f67b7b757af567c636b84 /src/login/logind.c
parent729a2fa913640bea3376d9afc73a9b4bff371085 (diff)
logind: optionally watch utmp for login data
This allows us to determine the TTY an ssh session is for, which is useful to to proper idle detection for ssh sessions. Fixes: #9622 (cherry picked from commit 3d0ef5c7e00155bc74f6f71c34cad518a4ff56ba)
Diffstat (limited to 'src/login/logind.c')
-rw-r--r--src/login/logind.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/login/logind.c b/src/login/logind.c
index 5320820a5..c5d526b4b 100644
--- a/src/login/logind.c
+++ b/src/login/logind.c
@@ -154,6 +154,10 @@ static Manager* manager_unref(Manager *m) {
sd_event_source_unref(m->udev_button_event_source);
sd_event_source_unref(m->lid_switch_ignore_event_source);
+#if ENABLE_UTMP
+ sd_event_source_unref(m->utmp_event_source);
+#endif
+
safe_close(m->console_active_fd);
udev_monitor_unref(m->udev_seat_monitor);
@@ -1144,6 +1148,9 @@ static int manager_startup(Manager *m) {
#if 1 /// elogind needs some extra preparations before connecting...
elogind_manager_startup(m);
#endif // 1
+ /* Connect to utmp */
+ manager_connect_utmp(m);
+
/* Connect to console */
r = manager_connect_console(m);
if (r < 0)
@@ -1201,6 +1208,9 @@ static int manager_startup(Manager *m) {
manager_reserve_vt(m);
#endif // 0
+ /* Read in utmp if it exists */
+ manager_read_utmp(m);
+
/* And start everything */
HASHMAP_FOREACH(seat, m->seats, i)
(void) seat_start(seat);