Output a message when we skip a server-excluded file.
[rsync/rsync.git] / generator.c
index 01cba43..8053348 100644 (file)
@@ -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;
        }