X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmanager.c;h=7b2550065d657c4dd03232b9f4882abfb47c6e2c;hb=a2c0e528b8b5ba370527db279605e4e4135689c1;hp=7b6172896d577c322489d808c1940e212dbe91e0;hpb=23bbb0de4e3f85d9704a5c12a5afa2dfa0159e41;p=elogind.git diff --git a/src/core/manager.c b/src/core/manager.c index 7b6172896..7b2550065 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -262,13 +262,11 @@ static int manager_check_ask_password(Manager *m) { mkdir_p_label("/run/systemd/ask-password", 0755); m->ask_password_inotify_fd = inotify_init1(IN_NONBLOCK|IN_CLOEXEC); - if (m->ask_password_inotify_fd < 0) { - log_error("inotify_init1() failed: %m"); - return -errno; - } + if (m->ask_password_inotify_fd < 0) + return log_error_errno(errno, "inotify_init1() failed: %m"); if (inotify_add_watch(m->ask_password_inotify_fd, "/run/systemd/ask-password", IN_CREATE|IN_DELETE|IN_MOVE) < 0) { - log_error("Failed to add watch on /run/systemd/ask-password: %m"); + log_error_errno(errno, "Failed to add watch on /run/systemd/ask-password: %m"); manager_close_ask_password(m); return -errno; } @@ -277,7 +275,7 @@ static int manager_check_ask_password(Manager *m) { m->ask_password_inotify_fd, EPOLLIN, manager_dispatch_ask_password_fd, m); if (r < 0) { - log_error("Failed to add event source for /run/systemd/ask-password: %m"); + log_error_errno(errno, "Failed to add event source for /run/systemd/ask-password: %m"); manager_close_ask_password(m); return -errno; } @@ -334,13 +332,11 @@ static int manager_setup_time_change(Manager *m) { * CLOCK_REALTIME makes a jump relative to CLOCK_MONOTONIC */ m->time_change_fd = timerfd_create(CLOCK_REALTIME, TFD_NONBLOCK|TFD_CLOEXEC); - if (m->time_change_fd < 0) { - log_error("Failed to create timerfd: %m"); - return -errno; - } + if (m->time_change_fd < 0) + return log_error_errno(errno, "Failed to create timerfd: %m"); if (timerfd_settime(m->time_change_fd, TFD_TIMER_ABSTIME|TFD_TIMER_CANCEL_ON_SET, &its, NULL) < 0) { - log_debug("Failed to set up TFD_TIMER_CANCEL_ON_SET, ignoring: %m"); + log_debug_errno(errno, "Failed to set up TFD_TIMER_CANCEL_ON_SET, ignoring: %m"); m->time_change_fd = safe_close(m->time_change_fd); return 0; } @@ -363,17 +359,17 @@ static int enable_special_signals(Manager *m) { * this will fail with EPERM (older) or EINVAL (newer), so * ignore that. */ if (reboot(RB_DISABLE_CAD) < 0 && errno != EPERM && errno != EINVAL) - log_warning("Failed to enable ctrl-alt-del handling: %m"); + log_warning_errno(errno, "Failed to enable ctrl-alt-del handling: %m"); fd = open_terminal("/dev/tty0", O_RDWR|O_NOCTTY|O_CLOEXEC); if (fd < 0) { /* Support systems without virtual console */ if (fd != -ENOENT) - log_warning("Failed to open /dev/tty0: %m"); + log_warning_errno(errno, "Failed to open /dev/tty0: %m"); } else { /* Enable that we get SIGWINCH on kbrequest */ if (ioctl(fd, KDSIGACCEPT, SIGWINCH) < 0) - log_warning("Failed to enable kbrequest handling: %m"); + log_warning_errno(errno, "Failed to enable kbrequest handling: %m"); } return 0; @@ -544,7 +540,7 @@ int manager_new(SystemdRunningAs running_as, bool test_run, Manager **_m) { m->idle_pipe[0] = m->idle_pipe[1] = m->idle_pipe[2] = m->idle_pipe[3] = -1; - m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = -1; + m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1; m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */ m->ask_password_inotify_fd = -1; @@ -647,10 +643,8 @@ static int manager_setup_notify(Manager *m) { m->notify_event_source = sd_event_source_unref(m->notify_event_source); fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0); - if (fd < 0) { - log_error("Failed to allocate notification socket: %m"); - return -errno; - } + if (fd < 0) + return log_error_errno(errno, "Failed to allocate notification socket: %m"); if (m->running_as == SYSTEMD_SYSTEM) m->notify_socket = strdup("/run/systemd/notify"); @@ -659,7 +653,7 @@ static int manager_setup_notify(Manager *m) { e = getenv("XDG_RUNTIME_DIR"); if (!e) { - log_error("XDG_RUNTIME_DIR is not set: %m"); + log_error_errno(errno, "XDG_RUNTIME_DIR is not set: %m"); return -EINVAL; } @@ -673,16 +667,12 @@ static int manager_setup_notify(Manager *m) { strncpy(sa.un.sun_path, m->notify_socket, sizeof(sa.un.sun_path)-1); r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)); - if (r < 0) { - log_error("bind(%s) failed: %m", sa.un.sun_path); - return -errno; - } + if (r < 0) + return log_error_errno(errno, "bind(%s) failed: %m", sa.un.sun_path); r = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); - if (r < 0) { - log_error("SO_PASSCRED failed: %m"); - return -errno; - } + if (r < 0) + return log_error_errno(errno, "SO_PASSCRED failed: %m"); m->notify_fd = fd; fd = -1; @@ -692,10 +682,8 @@ static int manager_setup_notify(Manager *m) { if (!m->notify_event_source) { r = sd_event_add_io(m->event, &m->notify_event_source, m->notify_fd, EPOLLIN, manager_dispatch_notify_fd, m); - if (r < 0) { - log_error_errno(r, "Failed to allocate notify event source: %m"); - return -errno; - } + if (r < 0) + return log_error_errno(r, "Failed to allocate notify event source: %m"); /* Process signals a bit earlier than SIGCHLD, so that we can * still identify to which service an exit message belongs */ @@ -1024,7 +1012,7 @@ static void manager_build_unit_path_cache(Manager *m) { d = opendir(*i); if (!d) { if (errno != ENOENT) - log_error("Failed to open directory %s: %m", *i); + log_error_errno(errno, "Failed to open directory %s: %m", *i); continue; } @@ -2072,7 +2060,7 @@ void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success) { * Then let's not retry again. */ close_audit_fd(); else - log_warning("Failed to send audit message: %m"); + log_warning_errno(errno, "Failed to send audit message: %m"); } #endif @@ -2105,14 +2093,14 @@ void manager_send_unit_plymouth(Manager *m, Unit *u) { * message then wait for plymouth */ fd = socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0); if (fd < 0) { - log_error("socket() failed: %m"); + log_error_errno(errno, "socket() failed: %m"); return; } if (connect(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1)) < 0) { if (!IN_SET(errno, EPIPE, EAGAIN, ENOENT, ECONNREFUSED, ECONNRESET, ECONNABORTED)) - log_error("connect() failed: %m"); + log_error_errno(errno, "connect() failed: %m"); return; } @@ -2124,7 +2112,7 @@ void manager_send_unit_plymouth(Manager *m, Unit *u) { errno = 0; if (write(fd, message, n + 1) != n + 1) if (!IN_SET(errno, EPIPE, EAGAIN, ENOENT, ECONNREFUSED, ECONNRESET, ECONNABORTED)) - log_error("Failed to write Plymouth message: %m"); + log_error_errno(errno, "Failed to write Plymouth message: %m"); } void manager_dispatch_bus_name_owner_changed( @@ -2717,7 +2705,7 @@ static int create_generator_dir(Manager *m, char **generator, const char *name) return log_oom(); if (!mkdtemp(p)) { - log_error("Failed to create generator directory %s: %m", + log_error_errno(errno, "Failed to create generator directory %s: %m", p); free(p); return -errno; @@ -2760,7 +2748,7 @@ void manager_run_generators(Manager *m) { if (errno == ENOENT) return; - log_error("Failed to enumerate generator directory %s: %m", + log_error_errno(errno, "Failed to enumerate generator directory %s: %m", generator_path); return; }