extern struct file_list *the_file_list;
extern struct filter_list_struct server_filter_list;
-@@ -110,10 +113,14 @@ enum delret {
+@@ -114,10 +117,14 @@ enum delret {
static enum delret delete_dir_contents(char *fname, int flags);
}
/* Delete a file or directory. If DEL_RECURSE is set in the flags, this will
-@@ -147,9 +154,9 @@ static enum delret delete_item(char *fna
+@@ -153,9 +160,9 @@ static enum delret delete_item(char *fna
if (S_ISDIR(mode)) {
what = "rmdir";
ok = do_rmdir(fname) == 0;
}
if (server_filter_list.head && !am_sender) {
struct filter_list_struct *elp = &server_filter_list;
-@@ -1253,6 +1265,14 @@ int parse_arguments(int *argc, const cha
- return 0;
- }
+@@ -1249,6 +1261,14 @@ int parse_arguments(int *argc, const cha
+ if (check_filter(elp, backup_dir, 1) < 0)
+ goto options_rejected;
}
+ /* Clean backup_dir_dels same as for backup_dir */
+ if (backup_dir_dels) {
}
if (!backup_suffix)
-@@ -1264,6 +1284,16 @@ int parse_arguments(int *argc, const cha
+@@ -1260,6 +1280,16 @@ int parse_arguments(int *argc, const cha
backup_suffix);
return 0;
}
if (backup_dir) {
backup_dir_len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf);
backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len;
-@@ -1287,6 +1317,31 @@ int parse_arguments(int *argc, const cha
+@@ -1283,6 +1313,31 @@ int parse_arguments(int *argc, const cha
"P *%s", backup_suffix);
parse_rule(&filter_list, backup_dir_buf, 0, 0);
}
if (make_backups && !backup_dir)
omit_dir_times = 1;
-@@ -1646,6 +1701,10 @@ void server_options(char **args,int *arg
+@@ -1647,6 +1702,10 @@ void server_options(char **args,int *arg
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
}
/* Only send --suffix if it specifies a non-default value. */
if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) {
-@@ -1654,7 +1713,13 @@ void server_options(char **args,int *arg
+@@ -1655,7 +1714,13 @@ void server_options(char **args,int *arg
goto oom;
args[ac++] = arg;
}