X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fsocket.c;h=85f7f16e15360cbe4dcefc49948c9882652d1553;hp=2ee002459067386f4e6d354e7de6582ba133874b;hb=5ffa8c818120e35c89becd938d160235c069dd12;hpb=0a1beeb64207eaa88ab9236787b1cbc2f704ae14 diff --git a/src/core/socket.c b/src/core/socket.c index 2ee002459..85f7f16e1 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -48,6 +48,7 @@ #include "smack-util.h" #include "bus-util.h" #include "bus-error.h" +#include "selinux-util.h" #include "dbus-socket.h" #include "unit.h" #include "socket.h" @@ -925,13 +926,13 @@ static void socket_apply_socket_options(Socket *s, int fd) { if (s->smack_ip_in) { r = mac_smack_apply_ip_in_fd(fd, s->smack_ip_in); if (r < 0) - log_unit_error(UNIT(s)->id, "mac_smack_apply_ip_in_fd: %s", strerror(-r)); + log_unit_error_errno(UNIT(s)->id, r, "mac_smack_apply_ip_in_fd: %m"); } if (s->smack_ip_out) { r = mac_smack_apply_ip_out_fd(fd, s->smack_ip_out); if (r < 0) - log_unit_error(UNIT(s)->id, "mac_smack_apply_ip_out_fd: %s", strerror(-r)); + log_unit_error_errno(UNIT(s)->id, r, "mac_smack_apply_ip_out_fd: %m"); } } @@ -948,7 +949,7 @@ static void socket_apply_fifo_options(Socket *s, int fd) { if (s->smack) { r = mac_smack_apply_fd(fd, s->smack); if (r < 0) - log_unit_error(UNIT(s)->id, "mac_smack_apply_fd: %s", strerror(-r)); + log_unit_error_errno(UNIT(s)->id, r, "mac_smack_apply_fd: %m"); } } @@ -1269,7 +1270,7 @@ static int socket_watch_fds(Socket *s) { r = sd_event_add_io(UNIT(s)->manager->event, &p->event_source, p->fd, EPOLLIN, socket_dispatch_io, p); if (r < 0) { - log_unit_warning(UNIT(s)->id, "Failed to watch listening fds: %s", strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "Failed to watch listening fds: %m"); goto fail; } } @@ -1456,8 +1457,8 @@ static int socket_chown(Socket *s, pid_t *_pid) { if (pid == 0) { SocketPort *p; - uid_t uid = (uid_t) -1; - gid_t gid = (gid_t) -1; + uid_t uid = UID_INVALID; + gid_t gid = GID_INVALID; int ret; default_signals(SIGNALS_CRASH_HANDLER, SIGNALS_IGNORE, -1); @@ -1506,7 +1507,7 @@ static int socket_chown(Socket *s, pid_t *_pid) { fail_child: log_open(); - log_error_errno(-r, "Failed to chown socket at step %s: %m", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD)); + log_error_errno(r, "Failed to chown socket at step %s: %m", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD)); _exit(ret); } @@ -1605,7 +1606,7 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) { return; fail: - log_unit_warning(UNIT(s)->id, "%s failed to kill processes: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to kill processes: %m", UNIT(s)->id); if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL) socket_enter_stop_post(s, SOCKET_FAILURE_RESOURCES); @@ -1636,7 +1637,7 @@ static void socket_enter_stop_pre(Socket *s, SocketResult f) { return; fail: - log_unit_warning(UNIT(s)->id, "%s failed to run 'stop-pre' task: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to run 'stop-pre' task: %m", UNIT(s)->id); socket_enter_stop_post(s, SOCKET_FAILURE_RESOURCES); } @@ -1646,7 +1647,7 @@ static void socket_enter_listening(Socket *s) { r = socket_watch_fds(s); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to watch sockets: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to watch sockets: %m", UNIT(s)->id); goto fail; } @@ -1668,7 +1669,7 @@ static void socket_enter_start_post(Socket *s) { if (s->control_command) { r = socket_spawn(s, s->control_command, &s->control_pid); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to run 'start-post' task: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to run 'start-post' task: %m", UNIT(s)->id); goto fail; } @@ -1689,7 +1690,7 @@ static void socket_enter_start_chown(Socket *s) { r = socket_open_fds(s); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to listen on sockets: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to listen on sockets: %m", UNIT(s)->id); goto fail; } @@ -1701,7 +1702,7 @@ static void socket_enter_start_chown(Socket *s) { r = socket_chown(s, &s->control_pid); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to fork 'start-chown' task: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to fork 'start-chown' task: %m", UNIT(s)->id); goto fail; } @@ -1726,7 +1727,7 @@ static void socket_enter_start_pre(Socket *s) { if (s->control_command) { r = socket_spawn(s, s->control_command, &s->control_pid); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to run 'start-pre' task: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to run 'start-pre' task: %m", UNIT(s)->id); goto fail; } @@ -1760,14 +1761,14 @@ static void socket_enter_running(Socket *s, int cfd) { r = socket_open_fds(s); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to listen on sockets: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to listen on sockets: %m", UNIT(s)->id); socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); return; } r = socket_watch_fds(s); if (r < 0) { - log_unit_warning(UNIT(s)->id, "%s failed to watch sockets: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to watch sockets: %m", UNIT(s)->id); socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); } } @@ -1894,7 +1895,7 @@ static void socket_run_next(Socket *s) { return; fail: - log_unit_warning(UNIT(s)->id, "%s failed to run next task: %s", UNIT(s)->id, strerror(-r)); + log_unit_warning_errno(UNIT(s)->id, r, "%s failed to run next task: %m", UNIT(s)->id); if (s->state == SOCKET_START_POST) socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); @@ -1953,7 +1954,7 @@ static int socket_start(Unit *u) { s->result = SOCKET_SUCCESS; socket_enter_start_pre(s); - return 0; + return 1; } static int socket_stop(Unit *u) { @@ -1984,7 +1985,7 @@ static int socket_stop(Unit *u) { assert(s->state == SOCKET_LISTENING || s->state == SOCKET_RUNNING); socket_enter_stop_pre(s, SOCKET_SUCCESS); - return 0; + return 1; } static int socket_serialize(Unit *u, FILE *f, FDSet *fds) {