X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/9dd891bb28f6cc558b87905f1adc5e3d4180b6b3..0e9480317dbb5b8003535a769f4a03bc720d5f5f:/io.c diff --git a/io.c b/io.c index 95fb73b6..6a7b679b 100644 --- a/io.c +++ b/io.c @@ -86,7 +86,7 @@ void io_set_error_fd(int fd) static void read_error_fd(void) { char buf[200]; - int n; + size_t n; int fd = io_error_fd; int tag, len; @@ -103,7 +103,8 @@ static void read_error_fd(void) while (len) { n = len; - if (n > (sizeof(buf)-1)) n = sizeof(buf)-1; + if (n > (sizeof(buf)-1)) + n = sizeof(buf)-1; read_loop(fd, buf, n); rwrite((enum logcode)tag, buf, n); len -= n; @@ -255,8 +256,8 @@ static void read_loop (int fd, char *buf, size_t len) */ static int read_unbuffered(int fd, char *buf, size_t len) { - static int remaining; - int tag, ret=0; + static size_t remaining; + int tag, ret = 0; char line[1024]; if (!io_multiplexing_in || fd != multiplex_in_fd) @@ -271,23 +272,24 @@ static int read_unbuffered(int fd, char *buf, size_t len) continue; } - read_loop (fd, line, 4); + read_loop(fd, line, 4); tag = IVAL(line, 0); remaining = tag & 0xFFFFFF; tag = tag >> 24; - if (tag == MPLEX_BASE) continue; + if (tag == MPLEX_BASE) + continue; tag -= MPLEX_BASE; if (tag != FERROR && tag != FINFO) { - rprintf(FERROR,"unexpected tag %d\n", tag); + rprintf(FERROR, "unexpected tag %d\n", tag); exit_cleanup(RERR_STREAMIO); } - if (remaining > sizeof(line)-1) { - rprintf(FERROR,"multiplexing overflow %d\n\n", + if (remaining > sizeof(line) - 1) { + rprintf(FERROR, "multiplexing overflow %d\n\n", remaining); exit_cleanup(RERR_STREAMIO); } @@ -295,7 +297,7 @@ static int read_unbuffered(int fd, char *buf, size_t len) read_loop(fd, line, remaining); line[remaining] = 0; - rprintf((enum logcode)tag,"%s", line); + rprintf((enum logcode) tag, "%s", line); remaining = 0; } @@ -303,12 +305,13 @@ static int read_unbuffered(int fd, char *buf, size_t len) } + /* do a buffered read from fd. don't return until all N bytes have been read. If all N can't be read then exit with an error */ static void readfd (int fd, char *buffer, size_t N) { int ret; - int total=0; + size_t total=0; while (total < N) { io_flush(); @@ -377,7 +380,7 @@ unsigned char read_byte(int f) /* write len bytes to fd */ static void writefd_unbuffered(int fd,char *buf,size_t len) { - int total = 0; + size_t total = 0; fd_set w_fds, r_fds; int fd_count, count; struct timeval tv; @@ -424,7 +427,8 @@ static void writefd_unbuffered(int fd,char *buf,size_t len) } if (FD_ISSET(fd, &w_fds)) { - int ret, n = len-total; + int ret; + size_t n = len-total; ret = write(fd,buf+total,n); if (ret == -1 && errno == EINTR) { @@ -486,7 +490,7 @@ void io_start_buffering(int fd) static void mplex_write(int fd, enum logcode code, char *buf, size_t len) { char buffer[4096]; - int n = len; + size_t n = len; SIVAL(buffer, 0, ((MPLEX_BASE + (int)code)<<24) + len); @@ -523,8 +527,7 @@ void io_flush(void) } -/* XXX: fd is ignored, which seems a little strange. */ -void io_end_buffering(int fd) +void io_end_buffering(void) { io_flush(); if (!io_multiplexing_out) { @@ -545,7 +548,7 @@ static void writefd(int fd,char *buf,size_t len) } while (len) { - int n = MIN(len, IO_BUFFER_SIZE-io_buffer_count); + int n = MIN((int) len, IO_BUFFER_SIZE-io_buffer_count); if (n > 0) { memcpy(io_buffer+io_buffer_count, buf, n); buf += n;