X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/c9dc1300ba973297b411ef8418bf0712d3fe12b2..97d8e7095f191c38783a4e14d1bc502a49e8867a:/clientserver.c diff --git a/clientserver.c b/clientserver.c index 8ec966a5..e0692678 100644 --- a/clientserver.c +++ b/clientserver.c @@ -48,6 +48,7 @@ extern char *bind_address; extern struct filter_list_struct server_filter_list; extern char *config_file; extern char *files_from; +extern char *tmpdir; char *auth_user; int read_only = 0; @@ -328,24 +329,24 @@ static int rsync_module(int f_in, int f_out, int i) p = lp_filter(i); parse_rule(&server_filter_list, p, MATCHFLG_WORD_SPLIT, - XFLG_ANCHORED2ABS); + XFLG_ABS_IF_SLASH); p = lp_include_from(i); parse_filter_file(&server_filter_list, p, MATCHFLG_INCLUDE, - XFLG_ANCHORED2ABS | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS); + XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS); p = lp_include(i); parse_rule(&server_filter_list, p, MATCHFLG_INCLUDE | MATCHFLG_WORD_SPLIT, - XFLG_ANCHORED2ABS | XFLG_OLD_PREFIXES); + XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES); p = lp_exclude_from(i); parse_filter_file(&server_filter_list, p, 0, - XFLG_ANCHORED2ABS | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS); + XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS); p = lp_exclude(i); parse_rule(&server_filter_list, p, MATCHFLG_WORD_SPLIT, - XFLG_ANCHORED2ABS | XFLG_OLD_PREFIXES); + XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES); log_init(); @@ -473,6 +474,16 @@ static int rsync_module(int f_in, int f_out, int i) am_root = (MY_UID() == 0); } + if (lp_temp_dir(i) && *lp_temp_dir(i)) { + tmpdir = lp_temp_dir(i); + if (strlen(tmpdir) >= MAXPATHLEN - 10) { + rprintf(FLOG, + "the 'temp dir' value for %s is WAY too long -- ignoring.\n", + name); + tmpdir = NULL; + } + } + io_printf(f_out, "@RSYNCD: OK\n"); maxargs = MAX_ARGS;