X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/33e9d10d2a69a625be4746a166f3fe319b05b757..e51094b7210fc31fa67cc218c1bd30de841a426e:/clientserver.c diff --git a/clientserver.c b/clientserver.c index 1b391ec9..a1e15c06 100644 --- a/clientserver.c +++ b/clientserver.c @@ -47,7 +47,7 @@ extern int orig_umask; extern int no_detach; extern int default_af_hint; extern char *bind_address; -extern struct exclude_struct **server_exclude_list; +extern struct exclude_list_struct server_exclude_list; extern char *exclude_path_prefix; extern char *config_file; @@ -87,18 +87,10 @@ int start_socket_client(char *host, char *path, int argc, char *argv[]) *p = 0; } - if (verbose >= 2) { - /* FIXME: If we're going to use a socket program for - * testing, then this message is wrong. We need to - * say something like "(except really using %s)" */ - rprintf(FINFO, "opening tcp connection to %s port %d\n", - host, rsync_port); - } fd = open_socket_out_wrapped(host, rsync_port, bind_address, default_af_hint); - if (fd == -1) { + if (fd == -1) exit_cleanup(RERR_SOCKETIO); - } ret = start_inband_exchange(user, path, fd, fd, argc); @@ -241,10 +233,10 @@ static int rsync_module(int f_in, int f_out, int i) if (!claim_connection(lp_lock_file(i), lp_max_connections(i))) { if (errno) { - rprintf(FERROR,"failed to open lock file %s : %s\n", - lp_lock_file(i), strerror(errno)); - io_printf(f_out, "@ERROR: failed to open lock file %s : %s\n", - lp_lock_file(i), strerror(errno)); + rsyserr(FERROR, errno, "failed to open lock file %s", + lp_lock_file(i)); + io_printf(f_out, "@ERROR: failed to open lock file %s\n", + lp_lock_file(i)); } else { rprintf(FERROR,"max connections (%d) reached\n", lp_max_connections(i)); @@ -266,7 +258,7 @@ static int rsync_module(int f_in, int f_out, int i) module_id = i; - am_root = (getuid() == 0); + am_root = (MY_UID() == 0); if (am_root) { p = lp_uid(i); @@ -302,16 +294,19 @@ static int rsync_module(int f_in, int f_out, int i) exclude_path_prefix = ""; p = lp_include_from(i); - add_exclude_file(&server_exclude_list, p, MISSING_FATAL, ADD_INCLUDE); + add_exclude_file(&server_exclude_list, p, + XFLG_FATAL_ERRORS | XFLG_DEF_INCLUDE); p = lp_include(i); - add_exclude_line(&server_exclude_list, p, ADD_INCLUDE); + add_exclude(&server_exclude_list, p, + XFLG_WORD_SPLIT | XFLG_DEF_INCLUDE); p = lp_exclude_from(i); - add_exclude_file(&server_exclude_list, p, MISSING_FATAL, ADD_EXCLUDE); + add_exclude_file(&server_exclude_list, p, + XFLG_FATAL_ERRORS); p = lp_exclude(i); - add_exclude_line(&server_exclude_list, p, ADD_EXCLUDE); + add_exclude(&server_exclude_list, p, XFLG_WORD_SPLIT); exclude_path_prefix = NULL; @@ -383,7 +378,7 @@ static int rsync_module(int f_in, int f_out, int i) return -1; } - am_root = (getuid() == 0); + am_root = (MY_UID() == 0); } io_printf(f_out, "@RSYNCD: OK\n"); @@ -423,19 +418,6 @@ static int rsync_module(int f_in, int f_out, int i) } } - if (sanitize_paths) { - /* - * Note that this is applied to all parameters, whether or not - * they are filenames, but no other legal parameters contain - * the forms that need to be sanitized so it doesn't hurt; - * it is not known at this point which parameters are files - * and which aren't. - */ - for (i = 1; i < argc; i++) { - sanitize_path(argv[i], NULL); - } - } - argp = argv; ret = parse_arguments(&argc, (const char ***) &argp, 0);