X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsocket-proxy%2Fsocket-proxyd.c;h=a3c3c87f11794c404c8f1996248aa44d05088d0e;hb=63c372cb9df3bee01e3bf8cd7f96f336bddda846;hp=ca5931166204a3563644ef33f3e5780feb4e9d74;hpb=f647962d64e844689f3e2acfce6102fc47e76df2;p=elogind.git diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c index ca5931166..a3c3c87f1 100644 --- a/src/socket-proxy/socket-proxyd.c +++ b/src/socket-proxy/socket-proxyd.c @@ -120,18 +120,14 @@ static int connection_create_pipes(Connection *c, int buffer[2], size_t *sz) { return 0; r = pipe2(buffer, O_CLOEXEC|O_NONBLOCK); - if (r < 0) { - log_error("Failed to allocate pipe buffer: %m"); - return -errno; - } + if (r < 0) + return log_error_errno(errno, "Failed to allocate pipe buffer: %m"); (void) fcntl(buffer[0], F_SETPIPE_SZ, BUFFER_SIZE); r = fcntl(buffer[0], F_GETPIPE_SZ); - if (r < 0) { - log_error("Failed to get pipe buffer size: %m"); - return -errno; - } + if (r < 0) + return log_error_errno(errno, "Failed to get pipe buffer size: %m"); assert(r > 0); *sz = r; @@ -171,10 +167,8 @@ static int connection_shovel( } else if (z == 0 || errno == EPIPE || errno == ECONNRESET) { *from_source = sd_event_source_unref(*from_source); *from = safe_close(*from); - } else if (errno != EAGAIN && errno != EINTR) { - log_error("Failed to splice: %m"); - return -errno; - } + } else if (errno != EAGAIN && errno != EINTR) + return log_error_errno(errno, "Failed to splice: %m"); } if (*full > 0 && *to >= 0) { @@ -185,10 +179,8 @@ static int connection_shovel( } else if (z == 0 || errno == EPIPE || errno == ECONNRESET) { *to_source = sd_event_source_unref(*to_source); *to = safe_close(*to); - } else if (errno != EAGAIN && errno != EINTR) { - log_error("Failed to splice: %m"); - return -errno; - } + } else if (errno != EAGAIN && errno != EINTR) + return log_error_errno(errno, "Failed to splice: %m"); } } while (shoveled); @@ -317,7 +309,7 @@ static int connect_cb(sd_event_source *s, int fd, uint32_t revents, void *userda solen = sizeof(error); r = getsockopt(fd, SOL_SOCKET, SO_ERROR, &error, &solen); if (r < 0) { - log_error("Failed to issue SO_ERROR: %m"); + log_error_errno(errno, "Failed to issue SO_ERROR: %m"); goto fail; } @@ -344,7 +336,7 @@ static int connection_start(Connection *c, struct sockaddr *sa, socklen_t salen) c->client_fd = socket(sa->sa_family, SOCK_STREAM|SOCK_NONBLOCK|SOCK_CLOEXEC, 0); if (c->client_fd < 0) { - log_error("Failed to get remote socket: %m"); + log_error_errno(errno, "Failed to get remote socket: %m"); goto fail; } @@ -363,7 +355,7 @@ static int connection_start(Connection *c, struct sockaddr *sa, socklen_t salen) goto fail; } } else { - log_error("Failed to connect to remote host: %m"); + log_error_errno(errno, "Failed to connect to remote host: %m"); goto fail; } } else { @@ -510,7 +502,7 @@ static int accept_cb(sd_event_source *s, int fd, uint32_t revents, void *userdat nfd = accept4(fd, NULL, NULL, SOCK_NONBLOCK|SOCK_CLOEXEC); if (nfd < 0) { if (errno != -EAGAIN) - log_warning("Failed to accept() socket: %m"); + log_warning_errno(errno, "Failed to accept() socket: %m"); } else { getpeername_pretty(nfd, &peer); log_debug("New connection from %s", strna(peer));