Don't allow the user to specify a filter file that is excluded
authorWayne Davison <wayned@samba.org>
Fri, 28 Jan 2005 21:28:08 +0000 (21:28 +0000)
committerWayne Davison <wayned@samba.org>
Fri, 28 Jan 2005 21:28:08 +0000 (21:28 +0000)
by a daemon's config options.

exclude.c

index 88f2cbb..351c6e4 100644 (file)
--- a/exclude.c
+++ b/exclude.c
@@ -27,6 +27,7 @@
 #include "rsync.h"
 
 extern int verbose;
+extern int am_server;
 extern int eol_nulls;
 extern int list_only;
 extern int recurse;
@@ -817,9 +818,17 @@ void add_filter_file(struct filter_list_struct *listp, const char *fname,
        if (!fname || !*fname)
                return;
 
-       if (*fname != '-' || fname[1])
-               fp = fopen(fname, "rb");
-       else
+       if (*fname != '-' || fname[1] || am_server) {
+               if (server_filter_list.head) {
+                       strlcpy(line, fname, sizeof line);
+                       clean_fname(line, 1);
+                       if (check_filter(&server_filter_list, line, 0) < 0)
+                               fp = NULL;
+                       else
+                               fp = fopen(line, "rb");
+               } else
+                       fp = fopen(fname, "rb");
+       } else
                fp = stdin;
        if (!fp) {
                if (xflags & XFLG_FATAL_ERRORS) {