aboutsummaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2005-02-11 09:58:31 +0000
committerWayne Davison <wayned@samba.org>2005-02-11 09:58:31 +0000
commit5aa7b20a3e89d5b4d4095f669dc608d0317044ee (patch)
tree67a462abe287a3699a1c3fa32feda9b729e825ce /util.c
parent68795c640bf18ad27bfac0947a5871debc38c9f4 (diff)
downloadandroid_external_rsync-5aa7b20a3e89d5b4d4095f669dc608d0317044ee.tar.gz
android_external_rsync-5aa7b20a3e89d5b4d4095f669dc608d0317044ee.tar.bz2
android_external_rsync-5aa7b20a3e89d5b4d4095f669dc608d0317044ee.zip
Have partial_dir_fname() also check if the dir is excluded
by the server, not just the partial file.
Diffstat (limited to 'util.c')
-rw-r--r--util.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/util.c b/util.c
index 9bda946b..141342cf 100644
--- a/util.c
+++ b/util.c
@@ -969,9 +969,17 @@ char *partial_dir_fname(const char *fname)
fn = fname;
if ((int)pathjoin(t, sz, partial_dir, fn) >= sz)
return NULL;
- if (server_filter_list.head
- && check_filter(&server_filter_list, partial_fname, 0) < 0)
- return NULL;
+ if (server_filter_list.head) {
+ static int len;
+ if (!len)
+ len = strlen(partial_dir);
+ t[len] = '\0';
+ if (check_filter(&server_filter_list, partial_fname, 1) < 0)
+ return NULL;
+ t[len] = '/';
+ if (check_filter(&server_filter_list, partial_fname, 0) < 0)
+ return NULL;
+ }
return partial_fname;
}