X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/0f3203c312c3e254b611a1687f8ff9a6bdf82376..8b35435f7cc4708400c652434615ce48dc493de4:/io.c diff --git a/io.c b/io.c index c01296da..6cdbe6bf 100644 --- a/io.c +++ b/io.c @@ -364,8 +364,6 @@ static void writefd_unbuffered(int fd,char *buf,int len) if (FD_ISSET(fd, &w_fds)) { int ret, n = len-total; - if (n > PIPE_BUF) n = PIPE_BUF; - ret = write(fd,buf+total,n?n:1); if (ret == -1 && errno == EINTR) { @@ -409,8 +407,8 @@ static void mplex_write(int fd, enum logcode code, char *buf, int len) SIVAL(buffer, 0, ((MPLEX_BASE + (int)code)<<24) + len); - if (n > (sizeof(buf)-4)) { - n = sizeof(buf)-4; + if (n > (sizeof(buffer)-4)) { + n = sizeof(buffer)-4; } memcpy(&buffer[4], buf, n); @@ -419,7 +417,9 @@ static void mplex_write(int fd, enum logcode code, char *buf, int len) len -= n; buf += n; - writefd_unbuffered(fd, buf, len); + if (len) { + writefd_unbuffered(fd, buf, len); + } } @@ -599,3 +599,4 @@ void io_close_input(int fd) { buffer_f_in = -1; } +