chiark / gitweb /
treewide: use stdio_unset_cloexec() function
[elogind.git] / src / login / logind-utmp.c
index 9bbffe34c710a83a7c9200ac6f08cfc77cb74909..d959a4a45496959922e184da5349180823b39fbd 100644 (file)
@@ -1,5 +1,3 @@
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
 /***
   This file is part of systemd.
 
 ***/
 
 #include <errno.h>
+#include <pwd.h>
 #include <string.h>
 #include <unistd.h>
-#include <pwd.h>
 
 #include "sd-messages.h"
-#include "strv.h"
-#include "special.h"
-#include "unit-name.h"
-#include "audit.h"
-#include "bus-util.h"
-#include "bus-error.h"
+
+#include "alloc-util.h"
+#include "audit-util.h"
 #include "bus-common-errors.h"
-#include "logind.h"
+#include "bus-error.h"
+#include "bus-util.h"
 #include "formats-util.h"
+#include "logind.h"
+//#include "special.h"
+#include "strv.h"
+#include "unit-name.h"
+#include "user-util.h"
 #include "utmp-wtmp.h"
 
 _const_ static usec_t when_wall(usec_t n, usec_t elapse) {
@@ -64,7 +65,7 @@ bool logind_wall_tty_filter(const char *tty, void *userdata) {
 
         assert(m);
 
-        if (!startswith(tty, "/dev/"))
+        if (!startswith(tty, "/dev/") || !m->scheduled_shutdown_tty)
                 return true;
 
         return !streq(tty + 5, m->scheduled_shutdown_tty);
@@ -94,7 +95,7 @@ static int warn_wall(Manager *m, usec_t n) {
                 return 0;
         }
 
-        utmp_wall(l, lookup_uid(m->scheduled_shutdown_uid),
+        utmp_wall(l, uid_to_name(m->scheduled_shutdown_uid),
                   m->scheduled_shutdown_tty, logind_wall_tty_filter, m);
 
         return 1;
@@ -122,11 +123,11 @@ static int wall_message_timeout_handler(
         if (next > 0) {
                 r = sd_event_source_set_time(s, n + next);
                 if (r < 0)
-                        return log_error_errno(r, "sd_event_source_set_time() failed. %m\n");
+                        return log_error_errno(r, "sd_event_source_set_time() failed. %m");
 
                 r = sd_event_source_set_enabled(s, SD_EVENT_ONESHOT);
                 if (r < 0)
-                        return log_error_errno(r, "sd_event_source_set_enabled() failed. %m\n");
+                        return log_error_errno(r, "sd_event_source_set_enabled() failed. %m");
         }
 
         return 0;
@@ -166,16 +167,16 @@ int manager_setup_wall_message_timer(Manager *m) {
         if (m->wall_message_timeout_source) {
                 r = sd_event_source_set_time(m->wall_message_timeout_source, n + elapse);
                 if (r < 0)
-                        return log_error_errno(r, "sd_event_source_set_time() failed. %m\n");
+                        return log_error_errno(r, "sd_event_source_set_time() failed. %m");
 
                 r = sd_event_source_set_enabled(m->wall_message_timeout_source, SD_EVENT_ONESHOT);
                 if (r < 0)
-                        return log_error_errno(r, "sd_event_source_set_enabled() failed. %m\n");
+                        return log_error_errno(r, "sd_event_source_set_enabled() failed. %m");
         } else {
                 r = sd_event_add_time(m->event, &m->wall_message_timeout_source,
                                       CLOCK_REALTIME, n + elapse, 0, wall_message_timeout_handler, m);
                 if (r < 0)
-                        return log_error_errno(r, "sd_event_add_time() failed. %m\n");
+                        return log_error_errno(r, "sd_event_add_time() failed. %m");
         }
 
         return 0;