[Patched update to have context and apply to latest CVS source.]
--- generator.c 18 May 2004 08:50:17 -0000 1.85
-+++ generator.c 18 May 2004 09:31:22 -0000
++++ generator.c 4 Jun 2004 05:20:27 -0000
@@ -51,6 +51,7 @@ extern int list_only;
extern int only_existing;
extern int orig_umask;
if (st->st_size != file->length) {
return 0;
}
---- options.c 6 May 2004 21:08:01 -0000 1.148
-+++ options.c 18 May 2004 09:31:23 -0000
+--- options.c 27 May 2004 21:51:53 -0000 1.153
++++ options.c 4 Jun 2004 05:20:27 -0000
@@ -82,6 +82,7 @@ int keep_partial = 0;
int safe_symlinks = 0;
int copy_unsafe_links = 0;
int size_only = 0;
+int date_only = 0;
int bwlimit = 0;
+ size_t bwlimit_writemax = 0;
int delete_after = 0;
- int only_existing = 0;
-@@ -262,6 +263,7 @@ void usage(enum logcode F)
+@@ -263,6 +264,7 @@ void usage(enum logcode F)
rprintf(F," --timeout=TIME set I/O timeout in seconds\n");
rprintf(F," -I, --ignore-times turn off mod time & file size quick check\n");
rprintf(F," --size-only ignore mod time for quick check (use size)\n");
rprintf(F," --modify-window=NUM compare mod times with reduced accuracy\n");
rprintf(F," -T --temp-dir=DIR create temporary files in directory DIR\n");
rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n");
-@@ -316,6 +318,7 @@ static struct poptOption long_options[]
+@@ -318,6 +320,7 @@ static struct poptOption long_options[]
{"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
{"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 },
{"modify-window", 0, POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
{"one-file-system", 'x', POPT_ARG_NONE, &one_file_system, 0, 0, 0 },
{"delete", 0, POPT_ARG_NONE, &delete_mode, 0, 0, 0 },
-@@ -905,6 +908,9 @@ void server_options(char **args,int *arg
-
+@@ -918,6 +921,9 @@ void server_options(char **args,int *arg
if (size_only)
args[ac++] = "--size-only";
-+
+
+ if (date_only)
+ args[ac++] = "--date-only";
-
++
if (modify_window_set) {
if (asprintf(&arg, "--modify-window=%d", modify_window) < 0)
---- rsync.yo 7 May 2004 00:18:37 -0000 1.169
-+++ rsync.yo 18 May 2004 09:31:23 -0000
+ goto oom;
+--- rsync.yo 21 May 2004 09:44:32 -0000 1.170
++++ rsync.yo 4 Jun 2004 05:20:28 -0000
@@ -320,6 +320,7 @@ verb(
--timeout=TIME set I/O timeout in seconds
-I, --ignore-times turn off mod time & file size quick check
--modify-window=NUM compare mod times with reduced accuracy
-T --temp-dir=DIR create temporary files in directory DIR
--compare-dest=DIR also compare received files relative to DIR
-@@ -392,6 +393,12 @@ already the same size and have the same
- regardless of timestamp. This is useful when starting to use rsync
+@@ -394,6 +395,12 @@ regardless of timestamp. This is useful
after using another mirroring system which may not preserve timestamps
exactly.
-+
+
+dit(bf(--date-only)) Normally rsync will skip any files that are
+already the same size and have the same modification time-stamp. With the
+--date-only option, files will be skipped if they have the same
+timestamp, regardless of size. This may be useful when the remote
+files have passed through a size-changing filter, e.g. for encryption.
-
++
dit(bf(--modify-window)) When comparing two timestamps rsync treats
the timestamps as being equal if they are within the value of
+ modify_window. This is normally zero, but you may find it useful to
---- options.c 22 May 2004 06:09:22 -0000 1.151
-+++ options.c 22 May 2004 19:31:28 -0000
+--- options.c 27 May 2004 21:51:53 -0000 1.153
++++ options.c 4 Jun 2004 05:26:50 -0000
@@ -46,6 +46,7 @@ int preserve_devices = 0;
int preserve_uid = 0;
int preserve_gid = 0;
int update_only = 0;
int cvs_exclude = 0;
int dry_run = 0;
-@@ -240,7 +241,8 @@ void usage(enum logcode F)
+@@ -241,7 +242,8 @@ void usage(enum logcode F)
rprintf(F," -o, --owner preserve owner (root only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," -D, --devices preserve devices (root only)\n");
rprintf(F," -S, --sparse handle sparse files efficiently\n");
rprintf(F," -n, --dry-run show what would have been transferred\n");
rprintf(F," -W, --whole-file copy whole files, no incremental checks\n");
-@@ -347,6 +349,7 @@ static struct poptOption long_options[]
+@@ -348,6 +350,7 @@ static struct poptOption long_options[]
{"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 },
{"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 },
{"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 },
{"checksum", 'c', POPT_ARG_NONE, &always_checksum, 0, 0, 0 },
{"verbose", 'v', POPT_ARG_NONE, 0, 'v', 0, 0 },
{"quiet", 'q', POPT_ARG_NONE, 0, 'q', 0, 0 },
-@@ -824,6 +827,8 @@ void server_options(char **args,int *arg
+@@ -835,6 +838,8 @@ void server_options(char **args,int *arg
argstr[x++] = 'D';
if (preserve_times)
argstr[x++] = 't';
argstr[x++] = 'p';
if (recurse)
--- rsync.c 21 May 2004 08:43:03 -0000 1.140
-+++ rsync.c 22 May 2004 19:31:28 -0000
++++ rsync.c 4 Jun 2004 05:26:50 -0000
@@ -25,6 +25,7 @@
extern int verbose;
extern int dry_run;
full_fname(fname));
return 0;
--- rsync.yo 21 May 2004 09:44:32 -0000 1.170
-+++ rsync.yo 22 May 2004 19:31:29 -0000
++++ rsync.yo 4 Jun 2004 05:26:51 -0000
@@ -298,7 +298,8 @@ verb(
-o, --owner preserve owner (root only)
-g, --group preserve group
instead it will just report the actions it would have taken.
--- testsuite/chgrp.test 21 May 2004 10:06:09 -0000 1.12
-+++ testsuite/chgrp.test 22 May 2004 19:31:29 -0000
++++ testsuite/chgrp.test 4 Jun 2004 05:26:51 -0000
@@ -26,7 +26,7 @@ do
done
sleep 2
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/chown.test 18 May 2004 00:41:35 -0000 1.5
-+++ testsuite/chown.test 22 May 2004 19:31:29 -0000
++++ testsuite/chown.test 4 Jun 2004 05:26:51 -0000
@@ -28,7 +28,7 @@ chown 5001 "$name2" || test_skipped "Can
chgrp 5002 "$name1" || test_skipped "Can't chgrp (probably need root)"
chgrp 5003 "$name2" || test_skipped "Can't chgrp (probably need root)"
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/daemon-gzip-download.test 18 May 2004 00:41:51 -0000 1.7
-+++ testsuite/daemon-gzip-download.test 22 May 2004 19:31:29 -0000
++++ testsuite/daemon-gzip-download.test 4 Jun 2004 05:26:51 -0000
@@ -29,9 +29,9 @@ export RSYNC_CONNECT_PROG
hands_setup
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/daemon-gzip-upload.test 18 May 2004 00:41:51 -0000 1.7
-+++ testsuite/daemon-gzip-upload.test 22 May 2004 19:31:29 -0000
++++ testsuite/daemon-gzip-upload.test 4 Jun 2004 05:26:51 -0000
@@ -23,9 +23,9 @@ export RSYNC_CONNECT_PROG
hands_setup
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/devices.test 18 May 2004 00:41:35 -0000 1.8
-+++ testsuite/devices.test 22 May 2004 19:31:29 -0000
++++ testsuite/devices.test 4 Jun 2004 05:26:51 -0000
@@ -29,7 +29,7 @@ mknod "$fromdir/block" b 42 69 || test_s
mknod "$fromdir/block2" b 42 73 || test_skipped "Can't create block device node unless root"
mknod "$fromdir/block3" b 105 73 || test_skipped "Can't create block device node unless root"
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/duplicates.test 18 May 2004 00:41:35 -0000 1.10
-+++ testsuite/duplicates.test 22 May 2004 19:31:29 -0000
++++ testsuite/duplicates.test 4 Jun 2004 05:26:51 -0000
@@ -33,7 +33,7 @@ ln -s "$name1" "$name2" || fail "can't c
outfile="$scratchdir/rsync.out"
| tee "$outfile"
# Make sure each file was only copied once...
---- testsuite/exclude.test 22 May 2004 19:29:53 -0000 1.7
-+++ testsuite/exclude.test 22 May 2004 19:31:29 -0000
-@@ -63,7 +63,7 @@ EOF
+--- testsuite/exclude.test 24 May 2004 00:16:07 -0000 1.8
++++ testsuite/exclude.test 4 Jun 2004 05:26:51 -0000
+@@ -66,7 +66,7 @@ EOF
# Create the chk dir with what we expect to be excluded
sleep 1 # Ensures that the rm commands will tweak the directory times.
-@@ -75,11 +75,11 @@ rm "$chkdir"/mid/for/foo/extra
+@@ -78,11 +78,11 @@ rm "$chkdir"/mid/for/foo/extra
# Un-tweak the directory times in our first (weak) exclude test (though
# it's a good test of the --existing option).
# Now, test if rsync excludes the same files.
--checkit "$RSYNC -avv --exclude-from=$excl \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir"
-+checkit "$RSYNC -advv --exclude-from=$excl \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir"
+-checkit "$RSYNC -avv --exclude-from=\"$excl\" \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir"
++checkit "$RSYNC -advv --exclude-from=\"$excl\" \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir"
# Modify the chk dir by removing cvs-ignored files and then tweaking the dir times.
-@@ -89,12 +89,12 @@ rm "$chkdir"/bar/down/to/foo/*.junk
+@@ -92,12 +92,12 @@ rm "$chkdir"/bar/down/to/foo/*.junk
rm "$chkdir"/bar/down/to/home-cvs-exclude
rm "$chkdir"/mid/one-in-one-out
# Now, test if rsync excludes the same files, this time with --cvs-exclude
# and --delete-excluded.
--checkit "$RSYNC -avvC --delete-excluded --exclude-from=$excl \
-+checkit "$RSYNC -advvC --delete-excluded --exclude-from=$excl \
- \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir"
+-checkit "$RSYNC -avvC --exclude-from=\"$excl\" \
++checkit "$RSYNC -advvC --exclude-from=\"$excl\" \
+ --delete-excluded \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir"
# The script would have aborted on error, so getting here means we've won.
--- testsuite/hands.test 18 May 2004 00:41:46 -0000 1.13
-+++ testsuite/hands.test 22 May 2004 19:31:29 -0000
++++ testsuite/hands.test 4 Jun 2004 05:26:51 -0000
@@ -11,19 +11,19 @@ hands_setup
# Main script starts here
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/hardlinks.test 18 May 2004 00:41:40 -0000 1.5
-+++ testsuite/hardlinks.test 22 May 2004 19:31:29 -0000
++++ testsuite/hardlinks.test 4 Jun 2004 05:26:51 -0000
@@ -31,7 +31,7 @@ ln "$name1" "$name2" || fail "Can't crea
ln "$name2" "$name3" || fail "Can't create hardlink"
cp "$name2" "$name4" || fail "Can't copy file"
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/longdir.test 18 May 2004 09:47:42 -0000 1.11
-+++ testsuite/longdir.test 22 May 2004 19:31:29 -0000
++++ testsuite/longdir.test 4 Jun 2004 05:26:51 -0000
@@ -18,7 +18,7 @@ makepath "$longdir" || test_skipped "una
touch "$longdir/1" || test_skipped "unable to create files in long directory"
date > "$longdir/1"
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/merge.test 18 May 2004 00:41:38 -0000 1.6
-+++ testsuite/merge.test 22 May 2004 19:31:29 -0000
++++ testsuite/merge.test 4 Jun 2004 05:26:51 -0000
@@ -40,9 +40,9 @@ cp -p "$from2dir"/sub1/uno "$from3dir"/s
cp -p "$from3dir"/sub2/subby "$chkdir"/sub2
# The script would have aborted on error, so getting here means we've won.
exit 0
--- testsuite/ssh-basic.test 18 May 2004 00:41:46 -0000 1.7
-+++ testsuite/ssh-basic.test 22 May 2004 19:31:29 -0000
++++ testsuite/ssh-basic.test 4 Jun 2004 05:26:51 -0000
@@ -28,7 +28,7 @@ fi
# nothing to do.
hands_setup
-runtest "ssh: renamed file" 'checkit "$RSYNC --delete -avH -e ssh --rsync-path=$RSYNC \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"'
+runtest "ssh: renamed file" 'checkit "$RSYNC --delete -advH -e ssh --rsync-path=$RSYNC \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"'
--- testsuite/unsafe-links.test 18 May 2004 00:41:43 -0000 1.7
-+++ testsuite/unsafe-links.test 22 May 2004 19:31:29 -0000
++++ testsuite/unsafe-links.test 4 Jun 2004 05:26:51 -0000
@@ -35,33 +35,33 @@ ln -s ../../unsafe/unsafefile "from/safe
set -x
Patch from Mark Curtis to implement the --inplace option.
--- match.c 21 May 2004 08:27:04 -0000 1.62
-+++ match.c 21 May 2004 09:03:09 -0000
++++ match.c 4 Jun 2004 05:27:20 -0000
@@ -23,6 +23,7 @@ extern int verbose;
extern int am_server;
extern int do_progress;
if (verbose > 3)
rprintf(FINFO,"potential match at %.0f target=%.0f %.0f sum=%08x\n",
(double)offset,(double)j,(double)i,sum);
---- options.c 6 May 2004 21:08:01 -0000 1.148
-+++ options.c 21 May 2004 09:03:09 -0000
-@@ -91,6 +91,7 @@ int ignore_errors = 0;
+--- options.c 27 May 2004 21:51:53 -0000 1.153
++++ options.c 4 Jun 2004 05:27:21 -0000
+@@ -92,6 +92,7 @@ int ignore_errors = 0;
int modify_window = 0;
int blocking_io = -1;
int checksum_seed = 0;
unsigned int block_size = 0;
-@@ -231,6 +232,7 @@ void usage(enum logcode F)
+@@ -232,6 +233,7 @@ void usage(enum logcode F)
rprintf(F," --backup-dir make backups into this directory\n");
rprintf(F," --suffix=SUFFIX backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
rprintf(F," -u, --update update only (don't overwrite newer files)\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
rprintf(F," -L, --copy-links copy the referent of all symlinks\n");
rprintf(F," --copy-unsafe-links copy the referent of \"unsafe\" symlinks\n");
-@@ -321,6 +323,7 @@ static struct poptOption long_options[]
+@@ -323,6 +325,7 @@ static struct poptOption long_options[]
{"delete", 0, POPT_ARG_NONE, &delete_mode, 0, 0, 0 },
{"existing", 0, POPT_ARG_NONE, &only_existing, 0, 0, 0 },
{"ignore-existing", 0, POPT_ARG_NONE, &opt_ignore_existing, 0, 0, 0 },
{"delete-after", 0, POPT_ARG_NONE, 0, OPT_DELETE_AFTER, 0, 0 },
{"delete-excluded", 0, POPT_ARG_NONE, 0, OPT_DELETE_EXCLUDED, 0, 0 },
{"force", 0, POPT_ARG_NONE, &force_delete, 0, 0, 0 },
-@@ -723,6 +726,9 @@ int parse_arguments(int *argc, const cha
- if (do_progress && !verbose)
- verbose = 1;
+@@ -735,6 +738,9 @@ int parse_arguments(int *argc, const cha
+ bwlimit_writemax = 512;
+ }
+ if (inplace && keep_partial)
+ keep_partial = 0;
if (files_from) {
char *colon;
if (*argc != 2 && !(am_server && am_sender && *argc == 1)) {
-@@ -939,6 +945,9 @@ void server_options(char **args,int *arg
+@@ -957,6 +963,9 @@ void server_options(char **args,int *arg
if (opt_ignore_existing && am_sender)
args[ac++] = "--ignore-existing";
args[ac++] = "--temp-dir";
args[ac++] = tmpdir;
--- receiver.c 21 May 2004 08:27:04 -0000 1.79
-+++ receiver.c 21 May 2004 09:03:09 -0000
++++ receiver.c 4 Jun 2004 05:27:21 -0000
@@ -47,6 +47,7 @@ extern int ignore_errors;
extern int orig_umask;
extern int keep_partial;
cleanup_set(fnametmp, fname, file, mapbuf, fd1, fd2);
--- rsync.c 21 May 2004 08:43:03 -0000 1.140
-+++ rsync.c 21 May 2004 09:03:09 -0000
++++ rsync.c 4 Jun 2004 05:27:21 -0000
@@ -34,6 +34,7 @@ extern int force_delete;
extern int recurse;
extern int make_backups;
/* move tmp file over real file */
ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS);
if (ret < 0) {
---- rsync.yo 7 May 2004 00:18:37 -0000 1.169
-+++ rsync.yo 21 May 2004 09:03:10 -0000
+--- rsync.yo 21 May 2004 09:44:32 -0000 1.170
++++ rsync.yo 4 Jun 2004 05:27:22 -0000
@@ -289,6 +289,7 @@ verb(
--backup-dir make backups into this directory
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
-l, --links copy symlinks as symlinks
-L, --copy-links copy the referent of all symlinks
--copy-unsafe-links copy the referent of "unsafe" symlinks
-@@ -478,6 +479,17 @@ symlink where the destination has a file
+@@ -479,6 +480,17 @@ symlink where the destination has a file
regardless of the timestamps. This might change in the future (feel
free to comment on this on the mailing list if you have an opinion).
can't say if I've left any cleanup/compatibility errors in the code.
---- Makefile.in 2 May 2004 17:04:14 -0000 1.100
-+++ Makefile.in 13 May 2004 19:07:03 -0000
+--- Makefile.in 15 May 2004 00:48:11 -0000 1.101
++++ Makefile.in 4 Jun 2004 05:28:32 -0000
@@ -39,7 +39,7 @@ OBJS3=progress.o pipe.o
DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
TLS_OBJ = tls.o syscall.o lib/permstring.o
--- cleanup.c 13 May 2004 07:08:18 -0000 1.22
-+++ cleanup.c 13 May 2004 19:07:03 -0000
++++ cleanup.c 4 Jun 2004 05:28:32 -0000
@@ -24,6 +24,9 @@
extern int io_error;
extern int keep_partial;
/**
* Close all open sockets and files, allowing a (somewhat) graceful
-@@ -98,6 +101,11 @@ void _exit_cleanup(int code, const char
-
+@@ -99,6 +102,11 @@ void _exit_cleanup(int code, const char
signal(SIGUSR1, SIG_IGN);
signal(SIGUSR2, SIG_IGN);
-+
+
+#ifdef HAVE_OPENSSL
+ if (use_ssl)
+ end_tls();
+#endif
-
++
if (verbose > 3) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
---- clientserver.c 14 Apr 2004 23:33:34 -0000 1.121
-+++ clientserver.c 13 May 2004 19:07:03 -0000
+ code, file, line);
+--- clientserver.c 15 May 2004 19:31:10 -0000 1.122
++++ clientserver.c 4 Jun 2004 05:28:32 -0000
@@ -46,6 +46,9 @@ extern int io_timeout;
extern int orig_umask;
extern int no_detach;
/* this is called when a connection is established to a client
and we want to start talking. The setup of the system is done from
here */
-@@ -543,6 +592,20 @@ int start_daemon(int f_in, int f_out)
- send_listing(f_out);
+@@ -544,6 +593,20 @@ int start_daemon(int f_in, int f_out)
return -1;
}
-+
+
+#if HAVE_OPENSSL
+ if (use_ssl && strcmp(line, "#starttls") == 0) {
+ io_printf(f_out, "@RSYNCD: starttls\n");
+ continue;
+ }
+#endif
-
++
if (*line == '#') {
/* it's some sort of command that I don't understand */
+ io_printf(f_out, "@ERROR: Unknown command '%s'\n", line);
--- config.h.in 29 Apr 2004 19:40:39 -0000 1.90
-+++ config.h.in 13 May 2004 19:07:03 -0000
++++ config.h.in 4 Jun 2004 05:28:32 -0000
@@ -167,6 +167,9 @@
/* */
#undef HAVE_OFF64_T
#undef HAVE_READLINK
--- configure.in 30 Apr 2004 18:03:33 -0000 1.196
-+++ configure.in 13 May 2004 19:07:03 -0000
++++ configure.in 4 Jun 2004 05:28:32 -0000
@@ -271,6 +271,21 @@ yes
AC_SEARCH_LIBS(getaddrinfo, inet6)
fi
AC_MSG_CHECKING([whether to call shutdown on all sockets])
case $host_os in
*cygwin* ) AC_MSG_RESULT(yes)
---- main.c 10 Feb 2004 03:54:47 -0000 1.192
-+++ main.c 13 May 2004 19:07:03 -0000
+--- main.c 19 May 2004 22:19:19 -0000 1.195
++++ main.c 4 Jun 2004 05:28:33 -0000
@@ -51,6 +51,9 @@ extern int rsync_port;
extern int read_batch;
extern int write_batch;
extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
-@@ -701,17 +704,32 @@ static int start_client(int argc, char *
+@@ -705,17 +708,32 @@ static int start_client(int argc, char *
pid_t pid;
int f_in,f_out;
int rc;
p = strchr(host,'/');
if (p) {
*p = 0;
-@@ -760,12 +778,27 @@ static int start_client(int argc, char *
+@@ -764,12 +782,27 @@ static int start_client(int argc, char *
argv++;
} else {
am_sender = 1;
p = strchr(host,'/');
if (p) {
*p = 0;
---- options.c 6 May 2004 21:08:01 -0000 1.148
-+++ options.c 13 May 2004 19:07:04 -0000
-@@ -130,6 +130,14 @@ int quiet = 0;
+--- options.c 27 May 2004 21:51:53 -0000 1.153
++++ options.c 4 Jun 2004 05:28:33 -0000
+@@ -131,6 +131,14 @@ 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;
-@@ -142,13 +150,13 @@ static int modify_window_set;
+@@ -143,13 +151,13 @@ static int modify_window_set;
* address, or a hostname. **/
char *bind_address;
STRUCT_STAT *dumstat;
#ifdef HAVE_SOCKETPAIR
-@@ -167,6 +175,10 @@ static void print_rsync_version(enum log
+@@ -168,6 +176,10 @@ static void print_rsync_version(enum log
ipv6 = "";
#endif
rprintf(f, "%s version %s protocol version %d\n",
RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION);
rprintf(f,
-@@ -180,10 +192,10 @@ static void print_rsync_version(enum log
+@@ -181,10 +193,10 @@ static void print_rsync_version(enum log
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
* macros. */
#ifdef MAINTAINER_MODE
rprintf(f, " panic action: \"%s\"\n",
get_panic_action());
-@@ -294,6 +306,13 @@ void usage(enum logcode F)
+@@ -296,6 +308,13 @@ void usage(enum logcode F)
rprintf(F," -4 --ipv4 prefer IPv4\n");
rprintf(F," -6 --ipv6 prefer IPv6\n");
#endif
rprintf(F," -h, --help show this help screen\n");
rprintf(F,"\n");
-@@ -305,7 +324,7 @@ void usage(enum logcode F)
+@@ -307,7 +326,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_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -390,6 +409,13 @@ static struct poptOption long_options[]
+@@ -393,6 +412,13 @@ static struct poptOption long_options[]
{"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 },
{"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 },
#endif
{0,0,0,0, 0, 0, 0}
};
-@@ -584,6 +610,12 @@ int parse_arguments(int *argc, const cha
+@@ -592,6 +618,12 @@ int parse_arguments(int *argc, const cha
return 0;
#endif
default:
/* A large opt value means that set_refuse_options()
* turned this option off (opt-BASE is its index). */
-@@ -722,6 +754,17 @@ int parse_arguments(int *argc, const cha
-
+@@ -729,6 +761,17 @@ int parse_arguments(int *argc, const cha
if (do_progress && !verbose)
verbose = 1;
-+
+
+#ifdef HAVE_OPENSSL
+ if (use_ssl) {
+ if (init_tls()) {
+ }
+ }
+#endif
-
- if (files_from) {
- char *colon;
---- rsync.h 13 May 2004 18:51:22 -0000 1.203
-+++ rsync.h 13 May 2004 19:07:04 -0000
++
+ if (bwlimit) {
+ bwlimit_writemax = (size_t)bwlimit * 128;
+ if (bwlimit_writemax < 512)
+--- rsync.h 16 May 2004 07:28:24 -0000 1.204
++++ rsync.h 4 Jun 2004 05:28:33 -0000
@@ -32,6 +32,7 @@
#define DEFAULT_LOCK_FILE "/var/run/rsyncd.lock"
#define BACKUP_SUFFIX "~"
-@@ -324,6 +325,11 @@ enum msgcode {
- #else
- /* As long as it gets... */
+@@ -326,6 +327,11 @@ enum msgcode {
#define uint64 unsigned off_t
-+#endif
-+
+ #endif
+
+#if HAVE_OPENSSL
+#include <openssl/ssl.h>
+#include <openssl/err.h>
- #endif
-
++#endif
++
/* Starting from protocol version 26, we always use 64-bit
+ * ino_t and dev_t internally, even if this platform does not
+ * allow files to have 64-bit inums. That's because the
--- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ ssl.c 13 May 2004 19:07:04 -0000
++++ ssl.c 4 Jun 2004 05:28:33 -0000
@@ -0,0 +1,366 @@
+/* -*- c-file-style: "linux" -*-
+ * ssl.c: operations for negotiating SSL rsync connections.
make proto
---- io.c 15 May 2004 19:31:10 -0000 1.121
-+++ io.c 21 May 2004 08:50:06 -0000
-@@ -222,6 +222,14 @@ static void read_msg_fd(void)
+--- io.c 27 May 2004 22:09:31 -0000 1.122
++++ io.c 4 Jun 2004 05:21:59 -0000
+@@ -223,6 +223,14 @@ static void read_msg_fd(void)
read_loop(fd, buf, 4);
redo_list_add(IVAL(buf,0));
break;
case MSG_INFO:
case MSG_ERROR:
case MSG_LOG:
-@@ -636,6 +644,16 @@ static int read_unbuffered(int fd, char
+@@ -637,6 +645,16 @@ static int read_unbuffered(int fd, char
read_loop(fd, buffer, remaining);
bufferIdx = 0;
break;
case MSG_ERROR:
if (remaining >= sizeof line) {
--- main.c 19 May 2004 22:19:19 -0000 1.195
-+++ main.c 21 May 2004 08:50:07 -0000
++++ main.c 4 Jun 2004 05:22:00 -0000
@@ -42,6 +42,7 @@ extern int list_only;
extern int local_server;
extern int log_got_error;
if (argc == 0)
list_only = 1;
---- options.c 6 May 2004 21:08:01 -0000 1.148
-+++ options.c 21 May 2004 08:50:07 -0000
-@@ -84,6 +84,7 @@ int copy_unsafe_links = 0;
- int size_only = 0;
+--- options.c 27 May 2004 21:51:53 -0000 1.153
++++ options.c 4 Jun 2004 05:22:00 -0000
+@@ -85,6 +85,7 @@ int size_only = 0;
int bwlimit = 0;
+ size_t bwlimit_writemax = 0;
int delete_after = 0;
+int delete_sent_files = 0;
int only_existing = 0;
int opt_ignore_existing = 0;
int max_delete = 0;
-@@ -91,6 +92,7 @@ int ignore_errors = 0;
+@@ -92,6 +93,7 @@ int ignore_errors = 0;
int modify_window = 0;
int blocking_io = -1;
int checksum_seed = 0;
unsigned int block_size = 0;
-@@ -254,6 +256,7 @@ void usage(enum logcode F)
+@@ -255,6 +257,7 @@ void usage(enum logcode F)
rprintf(F," --delete delete files that don't exist on the sending side\n");
rprintf(F," --delete-excluded also delete excluded files on the receiving side\n");
rprintf(F," --delete-after receiver deletes after transferring, not before\n");
rprintf(F," --ignore-errors delete even if there are I/O errors\n");
rprintf(F," --max-delete=NUM don't delete more than NUM files\n");
rprintf(F," --partial keep partially transferred files\n");
-@@ -303,8 +306,8 @@ void usage(enum logcode F)
+@@ -305,8 +308,8 @@ void usage(enum logcode F)
}
enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_READ_BATCH, OPT_WRITE_BATCH,
OPT_REFUSED_BASE = 9000};
-@@ -323,6 +326,7 @@ static struct poptOption long_options[]
+@@ -325,6 +328,7 @@ static struct poptOption long_options[]
{"ignore-existing", 0, POPT_ARG_NONE, &opt_ignore_existing, 0, 0, 0 },
{"delete-after", 0, POPT_ARG_NONE, 0, OPT_DELETE_AFTER, 0, 0 },
{"delete-excluded", 0, POPT_ARG_NONE, 0, OPT_DELETE_EXCLUDED, 0, 0 },
{"force", 0, POPT_ARG_NONE, &force_delete, 0, 0, 0 },
{"numeric-ids", 0, POPT_ARG_NONE, &numeric_ids, 0, 0, 0 },
{"exclude", 0, POPT_ARG_STRING, 0, OPT_EXCLUDE, 0, 0 },
-@@ -509,6 +513,11 @@ int parse_arguments(int *argc, const cha
+@@ -514,6 +518,11 @@ int parse_arguments(int *argc, const cha
delete_mode = 1;
break;
+ break;
+
case OPT_EXCLUDE:
- add_exclude(&exclude_list, poptGetOptArg(pc), 0);
- break;
-@@ -965,6 +974,9 @@ void server_options(char **args,int *arg
+ if (am_server || sanitize_paths)
+ return 0; /* Impossible... */
+@@ -983,6 +992,9 @@ void server_options(char **args,int *arg
}
}
return;
--- receiver.c 21 May 2004 08:27:04 -0000 1.79
-+++ receiver.c 21 May 2004 08:50:07 -0000
++++ receiver.c 4 Jun 2004 05:22:00 -0000
@@ -47,6 +47,7 @@ extern int ignore_errors;
extern int orig_umask;
extern int keep_partial;
}
}
--- rsync.h 16 May 2004 07:28:24 -0000 1.204
-+++ rsync.h 21 May 2004 08:50:07 -0000
++++ rsync.h 4 Jun 2004 05:22:00 -0000
@@ -60,6 +60,7 @@
#define FLAG_TOP_DIR (1<<0)
#define FLAG_HLINK_EOL (1<<1) /* generator only */
MSG_DONE=5, /* current phase is done */
MSG_REDO=4, /* reprocess indicated flist index */
MSG_ERROR=FERROR, MSG_INFO=FINFO, MSG_LOG=FLOG, /* remote logging */
---- rsync.yo 7 May 2004 00:18:37 -0000 1.169
-+++ rsync.yo 21 May 2004 08:50:08 -0000
+--- rsync.yo 21 May 2004 09:44:32 -0000 1.170
++++ rsync.yo 4 Jun 2004 05:22:01 -0000
@@ -312,6 +312,7 @@ verb(
--delete delete files that don't exist on sender
--delete-excluded also delete excluded files on receiver
--ignore-errors delete even if there are I/O errors
--max-delete=NUM don't delete more than NUM files
--partial keep partially transferred files
-@@ -597,6 +598,11 @@ receiving side before transferring files
+@@ -598,6 +599,11 @@ receiving side before transferring files
sufficient space on the receiving filesystem. If you want to delete
after transferring, use the --delete-after switch. Implies --delete.
even when there are I/O errors.
--- sender.c 15 May 2004 19:31:10 -0000 1.40
-+++ sender.c 21 May 2004 08:50:08 -0000
++++ sender.c 4 Jun 2004 05:22:01 -0000
@@ -27,6 +27,7 @@ extern int dry_run;
extern int am_server;
extern int am_daemon;