X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/41cfde6be388364f9bf7dfa9a532625b1f660df7..6c495e0da4b74a43adb9344f77efbb41908401a1:/receiver.c diff --git a/receiver.c b/receiver.c index 569b8fbd..f10f25d4 100644 --- a/receiver.c +++ b/receiver.c @@ -39,7 +39,7 @@ extern int cvs_exclude; extern int io_error; extern char *tmpdir; extern char *partial_dir; -extern char *compare_dest; +extern char *basis_dir[]; extern int make_backups; extern int do_progress; extern char *backup_dir; @@ -209,17 +209,17 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, static char file_sum2[MD4_SUM_LENGTH]; struct map_struct *mapbuf; struct sum_struct sum; - unsigned int len; + int32 len; OFF_T offset = 0; OFF_T offset2; char *data; - int i; + int32 i; char *map = NULL; read_sum_head(f_in, &sum); if (fd_r >= 0 && size_r > 0) { - OFF_T map_size = MAX(sum.blength * 2, 16*1024); + OFF_T map_size = MAX((OFF_T)sum.blength * 2, 16*1024); mapbuf = map_file(fd_r, size_r, map_size, sum.blength); if (verbose > 2) { rprintf(FINFO, "recv mapped %s of size %.0f\n", @@ -243,7 +243,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, stats.literal_data += i; cleanup_got_literal = 1; - sum_update(data,i); + sum_update(data, i); if (fd != -1 && write_file(fd,data,i) != i) goto report_write_error; @@ -252,22 +252,24 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, } i = -(i+1); - offset2 = i*(OFF_T)sum.blength; + offset2 = i * (OFF_T)sum.blength; len = sum.blength; if (i == (int)sum.count-1 && sum.remainder != 0) len = sum.remainder; stats.matched_data += len; - if (verbose > 3) - rprintf(FINFO,"chunk[%d] of size %d at %.0f offset=%.0f\n", - i,len,(double)offset2,(double)offset); + if (verbose > 3) { + rprintf(FINFO, + "chunk[%d] of size %ld at %.0f offset=%.0f\n", + i, (long)len, (double)offset2, (double)offset); + } if (mapbuf) { map = map_ptr(mapbuf,offset2,len); see_token(map, len); - sum_update(map,len); + sum_update(map, len); } if (inplace) { @@ -289,7 +291,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, offset += len; } - flush_write_file(fd); + if (flush_write_file(fd) < 0) + goto report_write_error; #ifdef HAVE_FTRUNCATE if (inplace && fd != -1) @@ -439,7 +442,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, partialptr = partial_dir ? partial_dir_fname(fname) : fname; if (f_in_name >= 0) { - switch (read_byte(f_in_name)) { + uchar j; + switch (j = read_byte(f_in_name)) { case FNAMECMP_FNAME: fnamecmp = fname; break; @@ -449,10 +453,10 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, case FNAMECMP_BACKUP: fnamecmp = get_backup_name(fname); break; - case FNAMECMP_CMPDEST: + case FNAMECMP_BASIS_DIR: default: pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, - compare_dest, fname); + basis_dir[j], fname); fnamecmp = fnamecmpbuf; break; }