X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d62bcc17f303f30d1e3df1051b1390202a21cf9c..3e35c34b6b496763799153bff6d4b082628752a1:/generator.c diff --git a/generator.c b/generator.c index 01cba43c..80533484 100644 --- a/generator.c +++ b/generator.c @@ -52,6 +52,8 @@ extern int only_existing; extern int orig_umask; extern int safe_symlinks; +extern struct exclude_list_struct server_exclude_list; + /* choose whether to skip a particular file */ static int skip_file(char *fname, struct file_struct *file, STRUCT_STAT *st) @@ -281,11 +283,22 @@ void recv_generator(char *fname, struct file_struct *file, int i, int f_out) if (verbose > 2) rprintf(FINFO,"recv_generator(%s,%d)\n",fname,i); + if (server_exclude_list.head + && check_exclude(&server_exclude_list, fname, + S_ISDIR(file->mode)) < 0) { + if (verbose) { + rprintf(FINFO, "skipping server-excluded file \"%s\"\n", + fname); + } + return; + } + statret = link_stat(fname,&st); if (only_existing && statret == -1 && errno == ENOENT) { /* we only want to update existing files */ - if (verbose > 1) rprintf(FINFO, "not creating new file \"%s\"\n",fname); + if (verbose > 1) + rprintf(FINFO, "not creating new file \"%s\"\n", fname); return; }