Added the --checksum-seed option.
authorWayne Davison <wayned@samba.org>
Fri, 21 May 2004 09:44:32 +0000 (09:44 +0000)
committerWayne Davison <wayned@samba.org>
Fri, 21 May 2004 09:44:32 +0000 (09:44 +0000)
options.c
rsync.yo

index 780a2b5..153049e 100644 (file)
--- 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";
 
index 0e7b300..0ad37f0 100644 (file)
--- 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)