From c8d895de26a920d8ff8cdde82bde72ea4b20633f Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Fri, 21 May 2004 09:44:32 +0000 Subject: [PATCH] Added the --checksum-seed option. --- options.c | 8 ++++++++ rsync.yo | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/options.c b/options.c index 780a2b5b..153049eb 100644 --- a/options.c +++ b/options.c @@ -290,6 +290,7 @@ void usage(enum logcode F) rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n"); rprintf(F," --write-batch=PREFIX write batch fileset starting with PREFIX\n"); rprintf(F," --read-batch=PREFIX read batch fileset starting with PREFIX\n"); + rprintf(F," --checksum-seed=NUM set block/file checksum seed\n"); #ifdef INET6 rprintf(F," -4 --ipv4 prefer IPv4\n"); rprintf(F," -6 --ipv6 prefer IPv6\n"); @@ -386,6 +387,7 @@ static struct poptOption long_options[] = { {"from0", '0', POPT_ARG_NONE, &eol_nulls, 0, 0, 0}, {"no-implied-dirs", 0, POPT_ARG_VAL, &implied_dirs, 0, 0, 0 }, {"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 }, + {"checksum-seed", 0, POPT_ARG_INT, &checksum_seed, 0, 0, 0 }, #ifdef INET6 {"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 }, {"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 }, @@ -911,6 +913,12 @@ void server_options(char **args,int *argc) args[ac++] = arg; } + if (checksum_seed) { + if (asprintf(&arg, "--checksum_seed=%d", checksum_seed) < 0) + goto oom; + args[ac++] = arg; + } + if (keep_partial) args[ac++] = "--partial"; diff --git a/rsync.yo b/rsync.yo index 0e7b3009..0ad37f0c 100644 --- a/rsync.yo +++ b/rsync.yo @@ -348,6 +348,7 @@ verb( --bwlimit=KBPS limit I/O bandwidth, KBytes per second --write-batch=PREFIX write batch fileset starting with PREFIX --read-batch=PREFIX read batch fileset starting with PREFIX + --checksum-seed=NUM set block/file checksum seed -4 --ipv4 prefer IPv4 -6 --ipv6 prefer IPv6 -h, --help show this help screen @@ -908,6 +909,20 @@ versions of Linux to work around an IPv6 bug in the kernel (if you see an "address already in use" error when nothing else is using the port, try specifying --ipv6 or --ipv4 when starting the daemon). +dit(bf(--checksum-seed=NUM)) Set the MD4 checksum seed to the integer +NUM. This 4 byte checksum seed is included in each block and file +MD4 checksum calculation. By default the checksum seed is generated +by the server and defaults to the current time(), or 32761 if +bf(--write-batch) or bf(--read-batch) are specified. This option +is used to set a specific checksum seed, which is useful for +applications that want repeatable block and file checksums, or +in the case where the user wants a more random checksum seed. +Note that setting NUM to 0 causes rsync to use the default of time() +for checksum seed. Note also that bf(--write-batch) and bf(--read-batch) +set the checksum seed to 32761, so bf(--checksum-seed=NUM) needs to +follow these options if you want to specify a different checksum +seed in batch mode. + enddit() manpagesection(EXCLUDE PATTERNS) -- 2.34.1