X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6957ae33a931950d03cbba0d0cb78be1920f26f3..f0359dd00d60d72c4b3dec85de8e490692f6015c:/receiver.c diff --git a/receiver.c b/receiver.c index 6647c68a..b10f7c61 100644 --- a/receiver.c +++ b/receiver.c @@ -108,13 +108,14 @@ void delete_files(struct file_list *flist) int i, j; char *name; extern int module_id; + extern int ignore_errors; extern int max_delete; static int deletion_count; if (cvs_exclude) add_cvs_excludes(); - if (io_error && !lp_ignore_errors(module_id)) { + if (io_error && !(lp_ignore_errors(module_id) || ignore_errors)) { rprintf(FINFO,"IO error encountered - skipping file deletion\n"); return; } @@ -254,10 +255,12 @@ static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname, rprintf(FINFO,"chunk[%d] of size %d at %.0f offset=%.0f\n", i,len,(double)offset2,(double)offset); - map = map_ptr(buf,offset2,len); + if (buf) { + map = map_ptr(buf,offset2,len); - see_token(map, len); - sum_update(map,len); + see_token(map, len); + sum_update(map,len); + } if (fd != -1 && write_file(fd,map,len) != len) { rprintf(FERROR,"write failed on %s : %s\n", @@ -267,7 +270,7 @@ static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname, offset += len; } - end_progress(); + end_progress(total_size); if (fd != -1 && offset > 0 && sparse_end(fd) != 0) { rprintf(FERROR,"write failed on %s : %s\n",