diff options
author | Wayne Davison <wayned@samba.org> | 2003-02-12 09:15:23 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2003-02-12 09:15:23 +0000 |
commit | 827c37f63199992002dc3275bb17afee6bad47b0 (patch) | |
tree | 3c101da115ce49fa61560130d8332b1fe3ba2d2c | |
parent | b45b059a3dcfcf835a8925c23240a3a49311ca44 (diff) | |
download | android_external_rsync-827c37f63199992002dc3275bb17afee6bad47b0.tar.gz android_external_rsync-827c37f63199992002dc3275bb17afee6bad47b0.tar.bz2 android_external_rsync-827c37f63199992002dc3275bb17afee6bad47b0.zip |
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.
-rw-r--r-- | flist.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -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; |