X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/ac1eb754b84f74eaba1663a07f7ff068bd280ce6..94481d9113220ded7ee6a76a96fa468c79680478:/rsync.c diff --git a/rsync.c b/rsync.c index 66e42a3a..d9b7e617 100644 --- a/rsync.c +++ b/rsync.c @@ -486,8 +486,9 @@ int recv_files(int f_in,struct file_list *flist,char *local_name) char *buf; int i; - if (verbose > 2) + if (verbose > 2) { fprintf(stderr,"recv_files(%d) starting\n",flist->count); + } if (recurse && delete_mode && !local_name && flist->count>0) { delete_files(flist); @@ -560,7 +561,10 @@ int recv_files(int f_in,struct file_list *flist,char *local_name) /* recv file data */ receive_data(f_in,buf,fd2,fname); - if (fd1 != -1) close(fd1); + if (fd1 != -1) { + unmap_file(buf,st.st_size); + close(fd1); + } close(fd2); if (verbose > 2) @@ -583,8 +587,6 @@ int recv_files(int f_in,struct file_list *flist,char *local_name) cleanup_fname = NULL; - unmap_file(buf,st.st_size); - set_perms(fname,&flist->files[i],NULL,0); } @@ -611,6 +613,8 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) while (1) { + read_check(f_in); + i = read_int(f_in); if (i == -1) break; @@ -676,7 +680,7 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) if (!am_server && verbose) printf("%s\n",fname); - match_sums(f_out,s,buf,st.st_size); + match_sums(f_out,s,buf,st.st_size,f_in); write_flush(f_out); unmap_file(buf,st.st_size);