From: Mike Brady Date: Mon, 23 May 2016 20:10:15 +0000 (+0100) Subject: Add some diagnostics to non_blocking_write/3. X-Git-Tag: 2.8.4.1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5c6ea8b295524ec439d6c10f6f1729f505b1831;p=thirdparty%2Fshairport-sync.git Add some diagnostics to non_blocking_write/3. --- diff --git a/common.c b/common.c index b4d95839..366b9618 100644 --- a/common.c +++ b/common.c @@ -531,10 +531,8 @@ ssize_t non_blocking_write(int fd, const void *buf, size_t count) { } else { //rc > 0, implying it might be ready size_t bytes_written = write(fd,ibuf,bytes_remaining); if (bytes_written==-1) { - if (errno==EINTR) - debug(1,"non-blocking write interrupted by a signal interrupt"); - if (!((errno == EAGAIN) || (errno == EWOULDBLOCK))) - rc = -1; + debug(1,"Error %d in non_blocking_write: \"%s\".",errno,strerror(errno)); + rc = -1; } else { ibuf += bytes_written; bytes_remaining -= bytes_written; @@ -542,7 +540,7 @@ ssize_t non_blocking_write(int fd, const void *buf, size_t count) { } } if (rc==0) - return bytes_remaining; + return count-bytes_remaining; // this is just to mimic a normal write/3. else return rc; // return write(fd,buf,count);