X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6e195fe9753e86767193b11e9c0bb63679aff051..ac1d2d338450eb005abf03002f5784097caf7e19:/clientserver.c diff --git a/clientserver.c b/clientserver.c index 963d9fe7..dbc80e82 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); @@ -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); @@ -457,7 +439,8 @@ static int rsync_module(int f_in, int f_out, int i) #ifndef DEBUG /* don't allow the logs to be flooded too fast */ - if (verbose > 1) verbose = 1; + if (verbose > lp_max_verbosity()) + verbose = lp_max_verbosity(); #endif if (protocol_version < 23) { @@ -614,7 +597,7 @@ int daemon_main(void) if (((pid_file = lp_pid_file()) != NULL) && (*pid_file != '\0')) { char pidbuf[16]; int fd; - int pid = (int) getpid(); + pid_t pid = getpid(); cleanup_set_pid(pid); if ((fd = do_open(lp_pid_file(), O_WRONLY|O_CREAT|O_TRUNC, 0666 & ~orig_umask)) == -1) { @@ -622,7 +605,7 @@ int daemon_main(void) rsyserr(FLOG, errno, "failed to create pid file %s", pid_file); exit_cleanup(RERR_FILEIO); } - snprintf(pidbuf, sizeof(pidbuf), "%d\n", pid); + snprintf(pidbuf, sizeof pidbuf, "%ld\n", (long)pid); write(fd, pidbuf, strlen(pidbuf)); close(fd); }