From 827c37f63199992002dc3275bb17afee6bad47b0 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 12 Feb 2003 09:15:23 +0000 Subject: [PATCH] The sender no longer removes the duplicate names from the file list -- we let the receiver do that, since they are the one that requests names and we want to be sure the sender has any name the receiver may ask for. --- flist.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/flist.c b/flist.c index d91d90b8..b37a1924 100644 --- a/flist.c +++ b/flist.c @@ -65,7 +65,7 @@ static struct exclude_struct **local_exclude_list; static struct file_struct null_file; -static void clean_flist(struct file_list *flist, int strip_root); +static void clean_flist(struct file_list *flist, int strip_root, int no_dups); static int show_filelist_p(void) @@ -1010,7 +1010,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) finish_filelist_progress(flist); } - clean_flist(flist, 0); + clean_flist(flist, 0, 0); /* now send the uid/gid list. This was introduced in protocol version 15 */ @@ -1087,7 +1087,7 @@ struct file_list *recv_file_list(int f) if (verbose > 2) rprintf(FINFO, "received %d names\n", flist->count); - clean_flist(flist, relative_paths); + clean_flist(flist, relative_paths, 1); if (show_filelist_p()) { finish_filelist_progress(flist); @@ -1246,7 +1246,7 @@ void flist_free(struct file_list *flist) * This routine ensures we don't have any duplicate names in our file list. * duplicate names can cause corruption because of the pipelining */ -static void clean_flist(struct file_list *flist, int strip_root) +static void clean_flist(struct file_list *flist, int strip_root, int no_dups) { int i; char *name, *prev_name = NULL; @@ -1257,7 +1257,7 @@ static void clean_flist(struct file_list *flist, int strip_root) qsort(flist->files, flist->count, sizeof(flist->files[0]), (int (*)()) file_compare); - for (i = 0; i < flist->count; i++) { + for (i = no_dups? 0 : flist->count; i < flist->count; i++) { if (flist->files[i]->basename) { prev_name = f_name(flist->files[i]); break; -- 2.34.1