X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsocket-proxy%2Fsocket-proxyd.c;h=ca5931166204a3563644ef33f3e5780feb4e9d74;hb=f647962d64e;hp=f6e6672cdfc5da87a5feff8deb3b49c5587d30b1;hpb=601185b43da638b1c74153deae01dbd518680889;p=elogind.git diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c index f6e6672cd..ca5931166 100644 --- a/src/socket-proxy/socket-proxyd.c +++ b/src/socket-proxy/socket-proxyd.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include @@ -125,7 +125,7 @@ static int connection_create_pipes(Connection *c, int buffer[2], size_t *sz) { return -errno; } - fcntl(buffer[0], F_SETPIPE_SZ, BUFFER_SIZE); + (void) fcntl(buffer[0], F_SETPIPE_SZ, BUFFER_SIZE); r = fcntl(buffer[0], F_GETPIPE_SZ); if (r < 0) { @@ -265,10 +265,8 @@ static int connection_enable_event_sources(Connection *c) { else r = 0; - if (r < 0) { - log_error("Failed to set up server event source: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to set up server event source: %m"); if (c->client_event_source) r = sd_event_source_set_io_events(c->client_event_source, b); @@ -277,10 +275,8 @@ static int connection_enable_event_sources(Connection *c) { else r = 0; - if (r < 0) { - log_error("Failed to set up client event source: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to set up client event source: %m"); return 0; } @@ -326,7 +322,7 @@ static int connect_cb(sd_event_source *s, int fd, uint32_t revents, void *userda } if (error != 0) { - log_error("Failed to connect to remote host: %s", strerror(error)); + log_error_errno(error, "Failed to connect to remote host: %m"); goto fail; } @@ -357,13 +353,13 @@ static int connection_start(Connection *c, struct sockaddr *sa, socklen_t salen) if (errno == EINPROGRESS) { r = sd_event_add_io(c->context->event, &c->client_event_source, c->client_fd, EPOLLOUT, connect_cb, c); if (r < 0) { - log_error("Failed to add connection socket: %s", strerror(-r)); + log_error_errno(r, "Failed to add connection socket: %m"); goto fail; } r = sd_event_source_set_enabled(c->client_event_source, SD_EVENT_ONESHOT); if (r < 0) { - log_error("Failed to enable oneshot event source: %s", strerror(-r)); + log_error_errno(r, "Failed to enable oneshot event source: %m"); goto fail; } } else { @@ -449,7 +445,7 @@ static int resolve_remote(Connection *c) { log_debug("Looking up address info for %s:%s", node, service); r = sd_resolve_getaddrinfo(c->context->resolve, &c->resolve_query, node, service, &hints, resolve_cb, c); if (r < 0) { - log_error("Failed to resolve remote host: %s", strerror(-r)); + log_error_errno(r, "Failed to resolve remote host: %m"); goto fail; } @@ -473,7 +469,7 @@ static int add_connection_socket(Context *context, int fd) { return 0; } - r = set_ensure_allocated(&context->connections, trivial_hash_func, trivial_compare_func); + r = set_ensure_allocated(&context->connections, NULL); if (r < 0) { log_oom(); return 0; @@ -521,14 +517,14 @@ static int accept_cb(sd_event_source *s, int fd, uint32_t revents, void *userdat r = add_connection_socket(context, nfd); if (r < 0) { - log_error("Failed to accept connection, ignoring: %s", strerror(-r)); + log_error_errno(r, "Failed to accept connection, ignoring: %m"); safe_close(fd); } } r = sd_event_source_set_enabled(s, SD_EVENT_ONESHOT); if (r < 0) { - log_error("Error while re-enabling listener with ONESHOT: %s", strerror(-r)); + log_error_errno(r, "Error while re-enabling listener with ONESHOT: %m"); sd_event_exit(context->event, r); return r; } @@ -543,37 +539,31 @@ static int add_listen_socket(Context *context, int fd) { assert(context); assert(fd >= 0); - r = set_ensure_allocated(&context->listen, trivial_hash_func, trivial_compare_func); + r = set_ensure_allocated(&context->listen, NULL); if (r < 0) { log_oom(); return r; } r = sd_is_socket(fd, 0, SOCK_STREAM, 1); - if (r < 0) { - log_error("Failed to determine socket type: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to determine socket type: %m"); if (r == 0) { log_error("Passed in socket is not a stream socket."); return -EINVAL; } r = fd_nonblock(fd, true); - if (r < 0) { - log_error("Failed to mark file descriptor non-blocking: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to mark file descriptor non-blocking: %m"); r = sd_event_add_io(context->event, &source, fd, EPOLLIN, accept_cb, context); - if (r < 0) { - log_error("Failed to add event source: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to add event source: %m"); r = set_put(context->listen, source); if (r < 0) { - log_error("Failed to add source to set: %s", strerror(-r)); + log_error_errno(r, "Failed to add source to set: %m"); sd_event_source_unref(source); return r; } @@ -581,10 +571,8 @@ static int add_listen_socket(Context *context, int fd) { /* Set the watcher to oneshot in case other processes are also * watching to accept(). */ r = sd_event_source_set_enabled(source, SD_EVENT_ONESHOT); - if (r < 0) { - log_error("Failed to enable oneshot mode: %s", strerror(-r)); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to enable oneshot mode: %m"); return 0; } @@ -663,19 +651,19 @@ int main(int argc, char *argv[]) { r = sd_event_default(&context.event); if (r < 0) { - log_error("Failed to allocate event loop: %s", strerror(-r)); + log_error_errno(r, "Failed to allocate event loop: %m"); goto finish; } r = sd_resolve_default(&context.resolve); if (r < 0) { - log_error("Failed to allocate resolver: %s", strerror(-r)); + log_error_errno(r, "Failed to allocate resolver: %m"); goto finish; } r = sd_resolve_attach_event(context.resolve, context.event, 0); if (r < 0) { - log_error("Failed to attach resolver: %s", strerror(-r)); + log_error_errno(r, "Failed to attach resolver: %m"); goto finish; } @@ -700,7 +688,7 @@ int main(int argc, char *argv[]) { r = sd_event_loop(context.event); if (r < 0) { - log_error("Failed to run event loop: %s", strerror(-r)); + log_error_errno(r, "Failed to run event loop: %m"); goto finish; }