]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
Add some diagnostics to non_blocking_write/3.
authorMike Brady <mikebrady@eircom.net>
Mon, 23 May 2016 20:10:15 +0000 (21:10 +0100)
committerMike Brady <mikebrady@eircom.net>
Mon, 23 May 2016 20:10:15 +0000 (21:10 +0100)
common.c

index b4d9583975884f5119932c8584bee464ad508c32..366b9618331a0f0f94bc6e9e307a6c54ef2b0f6c 100644 (file)
--- 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);