X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/716e73d483d33a1457be8f4b0e72bb39c11ca171..f9c6b3e7d622d6e3960faec80a382bbef99d7a8c:/options.c diff --git a/options.c b/options.c index 2f73baee..34c131ca 100644 --- a/options.c +++ b/options.c @@ -22,6 +22,7 @@ #include "popt.h" extern int sanitize_paths; +extern int select_timeout; extern char curr_dir[MAXPATHLEN]; extern struct exclude_list_struct exclude_list; @@ -309,7 +310,7 @@ void usage(enum logcode F) enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, - OPT_READ_BATCH, OPT_WRITE_BATCH, + OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { @@ -363,7 +364,7 @@ static struct poptOption long_options[] = { {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 }, {"block-size", 'B', POPT_ARG_INT, &block_size, 0, 0, 0 }, {"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 }, - {"timeout", 0, POPT_ARG_INT, &io_timeout, 0, 0, 0 }, + {"timeout", 0, POPT_ARG_INT, &io_timeout, OPT_TIMEOUT, 0, 0 }, {"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 }, {"compare-dest", 0, POPT_ARG_STRING, &compare_dest, 0, 0, 0 }, {"link-dest", 0, POPT_ARG_STRING, &compare_dest, OPT_LINK_DEST, 0, 0 }, @@ -410,17 +411,12 @@ static char err_buf[200]; **/ void option_error(void) { - int save_daemon = am_daemon; - if (!err_buf[0]) { strcpy(err_buf, "Error parsing options: " "option may be supported on client but not on server?\n"); } - rwrite(FLOG, err_buf, strlen(err_buf)); - am_daemon = 0; rprintf(FERROR, RSYNC_NAME ": %s", err_buf); - am_daemon = save_daemon; } @@ -584,6 +580,11 @@ int parse_arguments(int *argc, const char ***argv, int frommain) checksum_seed = FIXED_CHECKSUM_SEED; break; + case OPT_TIMEOUT: + if (io_timeout && io_timeout < select_timeout) + select_timeout = io_timeout; + break; + case OPT_LINK_DEST: #if HAVE_LINK link_dest = 1;