From: Wayne Davison Date: Fri, 13 Mar 2009 15:49:53 +0000 (-0700) Subject: Make missing args governed by protect filters, not hide. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/778124188914358b2a1d4e0046401acf6551ea76 Make missing args governed by protect filters, not hide. --- diff --git a/flist.c b/flist.c index 1c15d8c0..860bf834 100644 --- a/flist.c +++ b/flist.c @@ -2189,7 +2189,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) } /* A dot-dir should not be excluded! */ - if (name_type != DOTDIR_NAME + if (name_type != DOTDIR_NAME && st.st_mode != 0 && is_excluded(fbuf, S_ISDIR(st.st_mode) != 0, ALL_FILTERS)) continue; diff --git a/generator.c b/generator.c index 6dc4e7f7..4fad7f71 100644 --- a/generator.c +++ b/generator.c @@ -97,7 +97,7 @@ extern mode_t orig_umask; extern uid_t our_uid; extern char *basis_dir[MAX_BASIS_DIRS+1]; extern struct file_list *cur_flist, *first_flist, *dir_flist; -extern struct filter_list_struct daemon_filter_list; +extern struct filter_list_struct filter_list, daemon_filter_list; int maybe_ATTRS_REPORT = 0; @@ -1178,6 +1178,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } if (delete_missing_args && file->mode == 0) { + if (filter_list.head && check_filter(&filter_list, FINFO, fname, is_dir) < 0) + return; if (statret == 0) delete_item(fname, sx.st.st_mode, del_opts); return;