X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdaemon%2Fcommon.c;h=cf981dc0a3d8b03b0022bf997f430115e7d4cc47;hb=d544398864bc02dfd1623e6d005591b512e2f6c6;hp=31daa37958f46ae22d70f44f68a73ea4fdc1b4d0;hpb=be126043c2be20399d7670fe194645292018bde0;p=collectd.git diff --git a/src/daemon/common.c b/src/daemon/common.c index 31daa379..cf981dc0 100644 --- a/src/daemon/common.c +++ b/src/daemon/common.c @@ -180,8 +180,8 @@ char *sstrerror(int errnum, char *buf, size_t buflen) { #else if (strerror_r(errnum, buf, buflen) != 0) { snprintf(buf, buflen, "Error #%i; " - "Additionally, strerror_r failed.", - errnum); + "Additionally, strerror_r failed.", + errnum); } #endif /* STRERROR_R_CHAR_P */ @@ -212,7 +212,7 @@ void sfree (void **ptr) } #endif -ssize_t sread(int fd, void *buf, size_t count) { +int sread(int fd, void *buf, size_t count) { char *ptr; size_t nleft; ssize_t status; @@ -230,10 +230,7 @@ ssize_t sread(int fd, void *buf, size_t count) { return status; if (status == 0) { - DEBUG("Received EOF from fd %i. " - "Closing fd and returning error.", - fd); - close(fd); + DEBUG("Received EOF from fd %i. ", fd); return -1; } @@ -246,7 +243,7 @@ ssize_t sread(int fd, void *buf, size_t count) { return 0; } -ssize_t swrite(int fd, const void *buf, size_t count) { +int swrite(int fd, const void *buf, size_t count) { const char *ptr; size_t nleft; ssize_t status; @@ -269,7 +266,8 @@ ssize_t swrite(int fd, const void *buf, size_t count) { if (recv(fd, buffer, sizeof(buffer), MSG_PEEK | MSG_DONTWAIT) == 0) { /* if recv returns zero (even though poll() said there is data to be * read), that means the connection has been closed */ - return errno ? errno : -1; + errno = ECONNRESET; + return -1; } }