X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/cb13abfed024d0320c0aa865ad652c946321df3c..66203a982b3d249bafda9b9272c4c103c19e4a9b:/flist.c diff --git a/flist.c b/flist.c index 861fb2fe..14fa5a3f 100644 --- a/flist.c +++ b/flist.c @@ -409,7 +409,8 @@ static int skip_filesystem(char *fname, STRUCT_STAT *st) return (st2.st_dev != filesystem_dev); } -static struct file_struct *make_file(int f, char *fname) +/* create a file_struct for a named file */ +struct file_struct *make_file(int f, char *fname) { struct file_struct *file; STRUCT_STAT st; @@ -737,8 +738,7 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) if (one_file_system) set_filesystem(fname); - if (!recurse || !send_included_file_names(f,flist)) - send_file_name(f,flist,fname,recurse,FLAG_DELETE); + send_file_name(f,flist,fname,recurse,FLAG_DELETE); if (olddir != NULL) { flist_dir = NULL; @@ -769,7 +769,8 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) /* if protocol version is >= 17 then send the io_error flag */ if (f != -1 && remote_version >= 17) { - write_int(f, io_error); + extern int module_id; + write_int(f, lp_ignore_errors(module_id)? 0 : io_error); } if (f != -1) { @@ -854,7 +855,12 @@ struct file_list *recv_file_list(int f) /* if protocol version is >= 17 then recv the io_error flag */ if (f != -1 && remote_version >= 17) { - io_error |= read_int(f); + extern int module_id; + if (lp_ignore_errors(module_id)) { + read_int(f); + } else { + io_error |= read_int(f); + } } if (list_only) { @@ -916,7 +922,7 @@ int flist_find(struct file_list *flist,struct file_struct *f) /* * free up one file */ -static void free_file(struct file_struct *file) +void free_file(struct file_struct *file) { if (!file) return; if (file->basename) free(file->basename); @@ -993,12 +999,12 @@ static void clean_flist(struct file_list *flist, int strip_root) if (verbose <= 3) return; for (i=0;icount;i++) { - rprintf(FINFO,"[%d] i=%d %s %s mode=0%o len=%d\n", + rprintf(FINFO,"[%d] i=%d %s %s mode=0%o len=%.0f\n", getpid(), i, NS(flist->files[i]->dirname), NS(flist->files[i]->basename), flist->files[i]->mode, - (int)flist->files[i]->length); + (double)flist->files[i]->length); } }