X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/99218d821bd814dbb10646bd0298274c947ae471..b9f592fbf50b0dc9e3d1d33b8deb2bf9abad9ef6:/options.c diff --git a/options.c b/options.c index f686b195..d11e6419 100644 --- a/options.c +++ b/options.c @@ -133,7 +133,6 @@ int quiet = 0; int always_checksum = 0; int list_only = 0; -#define FIXED_CHECKSUM_SEED 32761 #define MAX_BATCH_PREFIX_LEN 256 /* Must be less than MAXPATHLEN-13 */ char *batch_prefix = NULL; @@ -141,7 +140,7 @@ static int daemon_opt; /* sets am_daemon after option error-reporting */ static int modify_window_set; /** Local address to bind. As a character string because it's - * interpreted by the IPv6 layer: should be a numeric IP4 or ip6 + * interpreted by the IPv6 layer: should be a numeric IP4 or IP6 * address, or a hostname. **/ char *bind_address; @@ -411,17 +410,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; } @@ -576,13 +570,11 @@ int parse_arguments(int *argc, const char ***argv, int frommain) case OPT_WRITE_BATCH: /* popt stores the filename in batch_prefix for us */ write_batch = 1; - checksum_seed = FIXED_CHECKSUM_SEED; break; case OPT_READ_BATCH: /* popt stores the filename in batch_prefix for us */ read_batch = 1; - checksum_seed = FIXED_CHECKSUM_SEED; break; case OPT_TIMEOUT: @@ -648,6 +640,14 @@ int parse_arguments(int *argc, const char ***argv, int frommain) "write-batch and read-batch can not be used together\n"); exit_cleanup(RERR_SYNTAX); } + if ((write_batch || read_batch) && am_server) { + rprintf(FERROR, + "batch-mode is incompatible with server mode\n"); + /* We don't actually exit_cleanup(), so that we can still service + * older version clients that still send batch args to server. */ + read_batch = write_batch = 0; + batch_prefix = NULL; + } if (batch_prefix && strlen(batch_prefix) > MAX_BATCH_PREFIX_LEN) { rprintf(FERROR, "the batch-file prefix must be %d characters or less.\n", @@ -660,12 +660,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain) exit_cleanup(RERR_SYNTAX); } - if (do_compression && (write_batch || read_batch)) { - rprintf(FERROR, - "compress can not be used with write-batch or read-batch\n"); - exit_cleanup(RERR_SYNTAX); - } - if (archive_mode) { if (!files_from) recurse = 1; @@ -889,13 +883,6 @@ void server_options(char **args,int *argc) args[ac++] = arg; } - if (batch_prefix) { - char *r_or_w = write_batch ? "write" : "read"; - if (asprintf(&arg, "--%s-batch=%s", r_or_w, batch_prefix) < 0) - goto oom; - args[ac++] = arg; - } - if (io_timeout) { if (asprintf(&arg, "--timeout=%d", io_timeout) < 0) goto oom;