X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d6081c829cf2aed6e7d5780e9a076fdcfd0e2391..16d3b31b2c0f646c4c320703f0d45353b0622b76:/io.c diff --git a/io.c b/io.c index b4c552b7..475ac40f 100644 --- a/io.c +++ b/io.c @@ -41,7 +41,6 @@ extern int bwlimit; extern size_t bwlimit_writemax; -extern int verbose; extern int io_timeout; extern int allowed_lull; extern int am_server; @@ -339,8 +338,7 @@ static void read_msg_fd(void) void increment_active_files(int ndx, int itemizing, enum logcode code) { /* TODO: tune these limits? */ - while (active_filecnt >= 10 - && (active_bytecnt >= 128*1024 || active_filecnt >= 50)) { + while (active_filecnt >= (active_bytecnt >= 128*1024 ? 10 : 50)) { if (hlink_list.head) check_for_finished_hlinks(itemizing, code); read_msg_fd(); @@ -950,6 +948,11 @@ int read_vstring(int f, char *buf, int bufsize) void read_sum_head(int f, struct sum_struct *sum) { sum->count = read_int(f); + if (sum->count < 0) { + rprintf(FERROR, "Invalid checksum count %ld [%s]\n", + (long)sum->count, who_am_i()); + exit_cleanup(RERR_PROTOCOL); + } sum->blength = read_int(f); if (sum->blength < 0 || sum->blength > MAX_BLOCK_SIZE) { rprintf(FERROR, "Invalid block length %ld [%s]\n", @@ -1012,7 +1015,7 @@ static void sleep_for_bwlimit(int bytes_written) #define ONE_SEC 1000000L /* # of microseconds in a second */ - if (!bwlimit) + if (!bwlimit_writemax) return; total_written += bytes_written; @@ -1092,7 +1095,7 @@ static void writefd_unbuffered(int fd,char *buf,size_t len) continue; n = len - total; - if (bwlimit && n > bwlimit_writemax) + if (bwlimit_writemax && n > bwlimit_writemax) n = bwlimit_writemax; cnt = write(fd, buf + total, n);