summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d2f6e19)
daemon_filter_list, for improved clarity.
extern char *files_from;
extern char *tmpdir;
extern struct chmod_mode_struct *chmod_modes;
extern char *files_from;
extern char *tmpdir;
extern struct chmod_mode_struct *chmod_modes;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
extern char curr_dir[];
#ifdef ICONV_OPTION
extern char *iconv_opt;
extern char curr_dir[];
#ifdef ICONV_OPTION
extern char *iconv_opt;
set_filter_dir(module_dir, module_dirlen);
p = lp_filter(i);
set_filter_dir(module_dir, module_dirlen);
p = lp_filter(i);
- parse_rule(&server_filter_list, p, MATCHFLG_WORD_SPLIT,
+ parse_rule(&daemon_filter_list, p, MATCHFLG_WORD_SPLIT,
XFLG_ABS_IF_SLASH);
p = lp_include_from(i);
XFLG_ABS_IF_SLASH);
p = lp_include_from(i);
- parse_filter_file(&server_filter_list, p, MATCHFLG_INCLUDE,
+ parse_filter_file(&daemon_filter_list, p, MATCHFLG_INCLUDE,
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS);
p = lp_include(i);
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS);
p = lp_include(i);
- parse_rule(&server_filter_list, p,
+ parse_rule(&daemon_filter_list, p,
MATCHFLG_INCLUDE | MATCHFLG_WORD_SPLIT,
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
p = lp_exclude_from(i);
MATCHFLG_INCLUDE | MATCHFLG_WORD_SPLIT,
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
p = lp_exclude_from(i);
- parse_filter_file(&server_filter_list, p, 0,
+ parse_filter_file(&daemon_filter_list, p, 0,
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS);
p = lp_exclude(i);
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES | XFLG_FATAL_ERRORS);
p = lp_exclude(i);
- parse_rule(&server_filter_list, p, MATCHFLG_WORD_SPLIT,
+ parse_rule(&daemon_filter_list, p, MATCHFLG_WORD_SPLIT,
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
log_init(1);
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
log_init(1);
struct filter_list_struct filter_list = { 0, 0, "" };
struct filter_list_struct cvs_filter_list = { 0, 0, " [global CVS]" };
struct filter_list_struct filter_list = { 0, 0, "" };
struct filter_list_struct cvs_filter_list = { 0, 0, " [global CVS]" };
-struct filter_list_struct server_filter_list = { 0, 0, " [daemon]" };
+struct filter_list_struct daemon_filter_list = { 0, 0, " [daemon]" };
/* Need room enough for ":MODS " prefix plus some room to grow. */
#define MAX_RULE_PREFIX (16)
/* Need room enough for ":MODS " prefix plus some room to grow. */
#define MAX_RULE_PREFIX (16)
return;
if (*fname != '-' || fname[1] || am_server) {
return;
if (*fname != '-' || fname[1] || am_server) {
- if (server_filter_list.head) {
+ if (daemon_filter_list.head) {
strlcpy(line, fname, sizeof line);
clean_fname(line, CFN_COLLAPSE_DOT_DOT_DIRS);
strlcpy(line, fname, sizeof line);
clean_fname(line, CFN_COLLAPSE_DOT_DOT_DIRS);
- if (check_filter(&server_filter_list, line, 0) < 0)
+ if (check_filter(&daemon_filter_list, line, 0) < 0)
fp = NULL;
else
fp = fopen(line, "rb");
fp = NULL;
else
fp = fopen(line, "rb");
extern struct chmod_mode_struct *chmod_modes;
extern struct filter_list_struct filter_list;
extern struct chmod_mode_struct *chmod_modes;
extern struct filter_list_struct filter_list;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
#ifdef ICONV_OPTION
extern int filesfrom_convert;
#ifdef ICONV_OPTION
extern int filesfrom_convert;
static inline int is_daemon_excluded(const char *fname, int is_dir)
{
static inline int is_daemon_excluded(const char *fname, int is_dir)
{
- if (server_filter_list.head
- && check_filter(&server_filter_list, fname, is_dir) < 0) {
+ if (daemon_filter_list.head
+ && check_filter(&daemon_filter_list, fname, is_dir) < 0) {
errno = ENOENT;
return 1;
}
errno = ENOENT;
return 1;
}
extern char *backup_suffix;
extern int backup_suffix_len;
extern struct file_list *cur_flist, *first_flist, *dir_flist;
extern char *backup_suffix;
extern int backup_suffix_len;
extern struct file_list *cur_flist, *first_flist, *dir_flist;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
int ignore_perishable = 0;
int non_perishable_cnt = 0;
int ignore_perishable = 0;
int non_perishable_cnt = 0;
- if (server_filter_list.head) {
- if (check_filter(&server_filter_list, fname, is_dir) < 0) {
+ if (daemon_filter_list.head) {
+ if (check_filter(&daemon_filter_list, fname, is_dir) < 0) {
if (is_dir < 0)
return;
#ifdef SUPPORT_HARD_LINKS
if (is_dir < 0)
return;
#ifdef SUPPORT_HARD_LINKS
extern char *password_file;
extern char curr_dir[MAXPATHLEN];
extern struct file_list *first_flist;
extern char *password_file;
extern char curr_dir[MAXPATHLEN];
extern struct file_list *first_flist;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
uid_t our_uid;
int local_server = 0;
uid_t our_uid;
int local_server = 0;
if (!dest_path || list_only)
return NULL;
if (!dest_path || list_only)
return NULL;
- if (server_filter_list.head
- && (check_filter(&server_filter_list, dest_path, 0 != 0) < 0
- || check_filter(&server_filter_list, dest_path, 1 != 0) < 0)) {
+ if (daemon_filter_list.head
+ && (check_filter(&daemon_filter_list, dest_path, 0 != 0) < 0
+ || check_filter(&daemon_filter_list, dest_path, 1 != 0) < 0)) {
rprintf(FERROR, "skipping daemon-excluded destination \"%s\"\n",
dest_path);
exit_cleanup(RERR_FILESELECT);
rprintf(FERROR, "skipping daemon-excluded destination \"%s\"\n",
dest_path);
exit_cleanup(RERR_FILESELECT);
}
check_alt_basis_dirs();
}
check_alt_basis_dirs();
- if (server_filter_list.head) {
+ if (daemon_filter_list.head) {
- struct filter_list_struct *elp = &server_filter_list;
+ struct filter_list_struct *elp = &daemon_filter_list;
for (dir_p = basis_dir; *dir_p; dir_p++) {
char *dir = *dir_p;
for (dir_p = basis_dir; *dir_p; dir_p++) {
char *dir = *dir_p;
extern int daemon_over_rsh;
extern unsigned int module_dirlen;
extern struct filter_list_struct filter_list;
extern int daemon_over_rsh;
extern unsigned int module_dirlen;
extern struct filter_list_struct filter_list;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
arg = poptGetOptArg(pc);
if (sanitize_paths)
arg = sanitize_path(NULL, arg, NULL, 0);
arg = poptGetOptArg(pc);
if (sanitize_paths)
arg = sanitize_path(NULL, arg, NULL, 0);
- if (server_filter_list.head) {
+ if (daemon_filter_list.head) {
int rej;
char *dir, *cp = strdup(arg);
if (!cp)
int rej;
char *dir, *cp = strdup(arg);
if (!cp)
goto options_rejected;
dir = cp + (*cp == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
goto options_rejected;
dir = cp + (*cp == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
- rej = check_filter(&server_filter_list, dir, 0) < 0;
+ rej = check_filter(&daemon_filter_list, dir, 0) < 0;
free(cp);
if (rej)
goto options_rejected;
free(cp);
if (rej)
goto options_rejected;
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
}
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
}
- if (server_filter_list.head && !am_sender) {
- struct filter_list_struct *elp = &server_filter_list;
+ if (daemon_filter_list.head && !am_sender) {
+ struct filter_list_struct *elp = &daemon_filter_list;
if (tmpdir) {
char *dir;
if (!*tmpdir)
if (tmpdir) {
char *dir;
if (!*tmpdir)
} else {
if (sanitize_paths)
files_from = sanitize_path(NULL, files_from, NULL, 0);
} else {
if (sanitize_paths)
files_from = sanitize_path(NULL, files_from, NULL, 0);
- if (server_filter_list.head) {
+ if (daemon_filter_list.head) {
char *dir;
if (!*files_from)
goto options_rejected;
dir = files_from + (*files_from == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
char *dir;
if (!*files_from)
goto options_rejected;
dir = files_from + (*files_from == '/' ? module_dirlen : 0);
clean_fname(dir, CFN_COLLAPSE_DOT_DOT_DIRS);
- if (check_filter(&server_filter_list, dir, 0) < 0)
+ if (check_filter(&daemon_filter_list, dir, 0) < 0)
goto options_rejected;
}
filesfrom_fd = open(files_from, O_RDONLY|O_BINARY);
goto options_rejected;
}
filesfrom_fd = open(files_from, O_RDONLY|O_BINARY);
extern char *partial_dir;
extern char *basis_dir[];
extern struct file_list *cur_flist, *first_flist, *dir_flist;
extern char *partial_dir;
extern char *basis_dir[];
extern struct file_list *cur_flist, *first_flist, *dir_flist;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
static struct bitbag *delayed_bits = NULL;
static int phase = 0, redoing = 0;
static struct bitbag *delayed_bits = NULL;
static int phase = 0, redoing = 0;
- if (server_filter_list.head
- && check_filter(&server_filter_list, fname, 0) < 0) {
+ if (daemon_filter_list.head
+ && check_filter(&daemon_filter_list, fname, 0) < 0) {
rprintf(FERROR, "attempt to hack rsync failed.\n");
exit_cleanup(RERR_PROTOCOL);
}
rprintf(FERROR, "attempt to hack rsync failed.\n");
exit_cleanup(RERR_PROTOCOL);
}
fnamecmp = fnamecmpbuf;
break;
}
fnamecmp = fnamecmpbuf;
break;
}
- if (!fnamecmp || (server_filter_list.head
- && check_filter(&server_filter_list, fname, 0) < 0)) {
+ if (!fnamecmp || (daemon_filter_list.head
+ && check_filter(&daemon_filter_list, fname, 0) < 0)) {
fnamecmp = fname;
fnamecmp_type = FNAMECMP_FNAME;
}
fnamecmp = fname;
fnamecmp_type = FNAMECMP_FNAME;
}
mode_t orig_umask = 002;
char *partial_dir;
char *module_dir;
mode_t orig_umask = 002;
char *partial_dir;
char *module_dir;
-struct filter_list_struct server_filter_list;
+struct filter_list_struct daemon_filter_list;
void rprintf(UNUSED(enum logcode code), const char *format, ...)
{
void rprintf(UNUSED(enum logcode code), const char *format, ...)
{
extern unsigned int module_dirlen;
extern mode_t orig_umask;
extern char *partial_dir;
extern unsigned int module_dirlen;
extern mode_t orig_umask;
extern char *partial_dir;
-extern struct filter_list_struct server_filter_list;
+extern struct filter_list_struct daemon_filter_list;
return fcntl(fd,F_SETLK,&lock) == 0;
}
return fcntl(fd,F_SETLK,&lock) == 0;
}
-static int filter_server_path(char *arg)
+static int filter_daemon_path(char *arg)
- char *s;
-
- if (server_filter_list.head) {
+ if (daemon_filter_list.head) {
+ char *s;
for (s = arg; (s = strchr(s, '/')) != NULL; ) {
*s = '\0';
for (s = arg; (s = strchr(s, '/')) != NULL; ) {
*s = '\0';
- if (check_filter(&server_filter_list, arg, 1) < 0) {
+ if (check_filter(&daemon_filter_list, arg, 1) < 0) {
/* We must leave arg truncated! */
return 1;
}
/* We must leave arg truncated! */
return 1;
}
if (!*s)
s = ".";
s = argv[argc++] = strdup(s);
if (!*s)
s = ".";
s = argv[argc++] = strdup(s);
/* Note: we check the first match against the filter list,
* just in case the user specified a wildcard in the path. */
if ((count = globbuf.gl_pathc) > 0) {
/* Note: we check the first match against the filter list,
* just in case the user specified a wildcard in the path. */
if ((count = globbuf.gl_pathc) > 0) {
- if (filter_server_path(globbuf.gl_pathv[0])) {
+ if (filter_daemon_path(globbuf.gl_pathv[0])) {
int slashes = 0;
char *cp;
/* Truncate original arg at glob's truncation point. */
int slashes = 0;
char *cp;
/* Truncate original arg at glob's truncation point. */
have_glob_results = 1;
} else {
/* This truncates "s" at a filtered element, if present. */
have_glob_results = 1;
} else {
/* This truncates "s" at a filtered element, if present. */
have_glob_results = 0;
count = 1;
}
have_glob_results = 0;
count = 1;
}
fn = fname;
if ((int)pathjoin(t, sz, partial_dir, fn) >= sz)
return NULL;
fn = fname;
if ((int)pathjoin(t, sz, partial_dir, fn) >= sz)
return NULL;
- if (server_filter_list.head) {
+ if (daemon_filter_list.head) {
t = strrchr(partial_fname, '/');
*t = '\0';
t = strrchr(partial_fname, '/');
*t = '\0';
- if (check_filter(&server_filter_list, partial_fname, 1) < 0)
+ if (check_filter(&daemon_filter_list, partial_fname, 1) < 0)
- if (check_filter(&server_filter_list, partial_fname, 0) < 0)
+ if (check_filter(&daemon_filter_list, partial_fname, 0) < 0)