chiark / gitweb /
seccomp-util.h: make sure seccomp-util.h can be included alone
[elogind.git] / src / shutdownd / shutdownd.c
index 92907497ed4aaa2ad8b110d19d9ba89d1312acb6..826efbfeabb12a139508fa35d5c5dd47829e579a 100644 (file)
@@ -52,8 +52,8 @@ static int read_packet(int fd, union shutdown_buffer *_b) {
         union shutdown_buffer b; /* We maintain our own copy here, in
                                   * order not to corrupt the last message */
         struct iovec iovec = {
-                iovec.iov_base = &b,
-                iovec.iov_len = sizeof(b) - 1,
+                .iov_base = &b,
+                .iov_len = sizeof(b) - 1,
         };
         union {
                 struct cmsghdr cmsghdr;
@@ -79,7 +79,7 @@ static int read_packet(int fd, union shutdown_buffer *_b) {
                 if (errno == EAGAIN || errno == EINTR)
                         return 0;
 
-                log_error("recvmsg(): %m");
+                log_error_errno(errno, "recvmsg(): %m");
                 return -errno;
         }
 
@@ -203,20 +203,16 @@ static int update_schedule_file(struct sd_shutdown_command *c) {
         assert(c);
 
         r = mkdir_safe_label("/run/systemd/shutdown", 0755, 0, 0);
-        if (r < 0) {
-                log_error("Failed to create shutdown subdirectory: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to create shutdown subdirectory: %m");
 
         t = cescape(c->wall_message);
         if (!t)
                 return log_oom();
 
         r = fopen_temporary("/run/systemd/shutdown/scheduled", &f, &temp_path);
-        if (r < 0) {
-                log_error("Failed to save information about scheduled shutdowns: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to save information about scheduled shutdowns: %m");
 
         fchmod(fileno(f), 0644);
 
@@ -237,7 +233,7 @@ static int update_schedule_file(struct sd_shutdown_command *c) {
         fflush(f);
 
         if (ferror(f) || rename(temp_path, "/run/systemd/shutdown/scheduled") < 0) {
-                log_error("Failed to write information about scheduled shutdowns: %m");
+                log_error_errno(errno, "Failed to write information about scheduled shutdowns: %m");
                 r = -errno;
 
                 unlink(temp_path);
@@ -284,7 +280,7 @@ int main(int argc, char *argv[]) {
 
         n_fds = sd_listen_fds(true);
         if (n_fds < 0) {
-                log_error("Failed to read listening file descriptors from environment: %s", strerror(-r));
+                log_error_errno(r, "Failed to read listening file descriptors from environment: %m");
                 return EXIT_FAILURE;
         }
 
@@ -300,7 +296,7 @@ int main(int argc, char *argv[]) {
                 pollfd[i].events = POLLIN;
                 pollfd[i].fd = timerfd_create(CLOCK_REALTIME, TFD_NONBLOCK|TFD_CLOEXEC);
                 if (pollfd[i].fd < 0) {
-                        log_error("timerfd_create(): %m");
+                        log_error_errno(errno, "timerfd_create(): %m");
                         goto finish;
                 }
         }
@@ -321,7 +317,7 @@ int main(int argc, char *argv[]) {
                         if (errno == EAGAIN || errno == EINTR)
                                 continue;
 
-                        log_error("poll(): %m");
+                        log_error_errno(errno, "poll(): %m");
                         goto finish;
                 }
 
@@ -358,7 +354,7 @@ int main(int argc, char *argv[]) {
                                                 warn_wall(n, &b.command);
                                 }
                                 if (timerfd_settime(pollfd[FD_WALL_TIMER].fd, TFD_TIMER_ABSTIME, &its, NULL) < 0) {
-                                        log_error("timerfd_settime(): %m");
+                                        log_error_errno(errno, "timerfd_settime(): %m");
                                         goto finish;
                                 }
 
@@ -366,7 +362,7 @@ int main(int argc, char *argv[]) {
                                 zero(its);
                                 timespec_store(&its.it_value, when_nologin(b.command.usec));
                                 if (timerfd_settime(pollfd[FD_NOLOGIN_TIMER].fd, TFD_TIMER_ABSTIME, &its, NULL) < 0) {
-                                        log_error("timerfd_settime(): %m");
+                                        log_error_errno(errno, "timerfd_settime(): %m");
                                         goto finish;
                                 }
 
@@ -374,7 +370,7 @@ int main(int argc, char *argv[]) {
                                 zero(its);
                                 timespec_store(&its.it_value, b.command.usec);
                                 if (timerfd_settime(pollfd[FD_SHUTDOWN_TIMER].fd, TFD_TIMER_ABSTIME, &its, NULL) < 0) {
-                                        log_error("timerfd_settime(): %m");
+                                        log_error_errno(errno, "timerfd_settime(): %m");
                                         goto finish;
                                 }
 
@@ -398,7 +394,7 @@ int main(int argc, char *argv[]) {
                         /* Restart timer */
                         timespec_store(&its.it_value, when_wall(n, b.command.usec));
                         if (timerfd_settime(pollfd[FD_WALL_TIMER].fd, TFD_TIMER_ABSTIME, &its, NULL) < 0) {
-                                log_error("timerfd_settime(): %m");
+                                log_error_errno(errno, "timerfd_settime(): %m");
                                 goto finish;
                         }
                 }
@@ -410,7 +406,7 @@ int main(int argc, char *argv[]) {
 
                         e = write_string_file_atomic("/run/nologin", "System is going down.");
                         if (e < 0)
-                                log_error("Failed to create /run/nologin: %s", strerror(-e));
+                                log_error_errno(e, "Failed to create /run/nologin: %m");
                         else
                                 unlink_nologin = true;
 
@@ -452,10 +448,11 @@ finish:
                       (b.command.warn_wall ? NULL : "--no-wall"),
                       NULL);
 
-                log_error("Failed to execute /sbin/shutdown: %m");
+                log_error_errno(errno, "Failed to execute /sbin/shutdown: %m");
         }
 
         sd_notify(false,
+                  "STOPPING=\n"
                   "STATUS=Exiting...");
 
         return r;