From 311676ed21eb61ec49187b9dd064aef18997d470 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 16 Apr 2008 09:32:22 -0700 Subject: [PATCH] Fixed a problem with how the daemon filters deal with a destination directory with a trailing slash. --- main.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index f08d359f..5fba5e68 100644 --- a/main.c +++ b/main.c @@ -507,12 +507,20 @@ static char *get_local_name(struct file_list *flist, char *dest_path) if (!dest_path || list_only) return NULL; - if (daemon_filter_list.head - && (check_filter(&daemon_filter_list, FLOG, dest_path, 0 != 0) < 0 - || check_filter(&daemon_filter_list, FLOG, dest_path, 1 != 0) < 0)) { - rprintf(FERROR, "skipping daemon-excluded destination \"%s\"\n", - dest_path); - exit_cleanup(RERR_FILESELECT); + if (daemon_filter_list.head) { + char *slash = strrchr(dest_path, '/'); + if (slash && slash[1] == '\0') + *slash = '\0'; + else + slash = NULL; + if (check_filter(&daemon_filter_list, FLOG, dest_path, 0) < 0 + || check_filter(&daemon_filter_list, FLOG, dest_path, 1) < 0) { + rprintf(FERROR, "skipping daemon-excluded destination \"%s\"\n", + dest_path); + exit_cleanup(RERR_FILESELECT); + } + if (slash) + *slash = '/'; } /* See what currently exists at the destination. */ -- 2.34.1