From 4c1f2ca50862d18735c83dda3bc7f7d78bc55186 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 27 Nov 2004 18:35:34 +0000 Subject: [PATCH] Fixed patch fuzz. --- acls.diff | 38 ++++++++++++++++---------------- chmod-option.diff | 28 ++++++++++++------------ date-only.diff | 22 +++++++++---------- filter.diff | 30 ++++++++++++------------- fname-convert.diff | 4 ++-- ignore-case.diff | 12 +++++----- link-by-hash.diff | 4 ++-- openssl-support.diff | 52 ++++++++++++++++++++++---------------------- time-limit.diff | 32 +++++++++++++-------------- 9 files changed, 111 insertions(+), 111 deletions(-) diff --git a/acls.diff b/acls.diff index 022192a..3e4aee7 100644 --- a/acls.diff +++ b/acls.diff @@ -11,7 +11,7 @@ from a disk that doesn't support ACLs. This should be changed to silently notice that no ACLs are available to copy. Of course, trying to write out ACLs to a non-ACL-supporting disk should complain. ---- orig/Makefile.in 2004-10-14 17:11:40 +--- orig/Makefile.in 2004-11-03 11:56:03 +++ Makefile.in 2004-10-20 06:32:26 @@ -25,16 +25,16 @@ VERSION=@VERSION@ .SUFFIXES: @@ -1325,9 +1325,9 @@ ACLs to a non-ACL-supporting disk should complain. if (f != -1) { /* Now send the uid/gid list. This was introduced in * protocol version 15 */ ---- orig/generator.c 2004-10-06 00:12:16 +--- orig/generator.c 2004-11-27 17:53:24 +++ generator.c 2004-07-03 20:11:58 -@@ -338,6 +338,10 @@ static void recv_generator(char *fname, +@@ -342,6 +342,10 @@ static void recv_generator(char *fname, if (set_perms(fname, file, statret ? NULL : &st, 0) && verbose && f_out != -1) rprintf(FINFO, "%s/\n", safe_fname(fname)); @@ -1336,8 +1336,8 @@ ACLs to a non-ACL-supporting disk should complain. + SET_ACL(fname, file); +#endif return; - } - + } else if (max_size && file->length > max_size) { + if (verbose > 1) --- orig/lib/sysacls.c 2004-10-20 15:35:58 +++ lib/sysacls.c 2004-10-20 15:35:58 @@ -0,0 +1,3217 @@ @@ -4597,7 +4597,7 @@ ACLs to a non-ACL-supporting disk should complain. next; } ---- orig/options.c 2004-10-14 17:11:40 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-08-19 17:38:57 @@ -43,6 +43,7 @@ int keep_dirlinks = 0; int copy_links = 0; @@ -4607,7 +4607,7 @@ ACLs to a non-ACL-supporting disk should complain. int preserve_perms = 0; int preserve_devices = 0; int preserve_uid = 0; -@@ -152,6 +153,7 @@ static void print_rsync_version(enum log +@@ -159,6 +160,7 @@ static void print_rsync_version(enum log char const *got_socketpair = "no "; char const *have_inplace = "no "; char const *hardlinks = "no "; @@ -4615,7 +4615,7 @@ ACLs to a non-ACL-supporting disk should complain. char const *links = "no "; char const *ipv6 = "no "; STRUCT_STAT *dumstat; -@@ -168,6 +170,10 @@ static void print_rsync_version(enum log +@@ -175,6 +177,10 @@ static void print_rsync_version(enum log hardlinks = ""; #endif @@ -4626,7 +4626,7 @@ ACLs to a non-ACL-supporting disk should complain. #if SUPPORT_LINKS links = ""; #endif -@@ -182,9 +188,9 @@ static void print_rsync_version(enum log +@@ -189,9 +195,9 @@ static void print_rsync_version(enum log "Copyright (C) 1996-2004 by Andrew Tridgell and others\n"); rprintf(f, "\n"); rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, " @@ -4638,7 +4638,7 @@ ACLs to a non-ACL-supporting disk should complain. /* Note that this field may not have type ino_t. It depends * on the complicated interaction between largefile feature -@@ -249,6 +255,7 @@ void usage(enum logcode F) +@@ -256,6 +262,7 @@ void usage(enum logcode F) rprintf(F," --safe-links ignore \"unsafe\" symlinks\n"); rprintf(F," -H, --hard-links preserve hard links\n"); rprintf(F," -p, --perms preserve permissions\n"); @@ -4646,7 +4646,7 @@ ACLs to a non-ACL-supporting disk should complain. 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"); -@@ -351,6 +358,7 @@ static struct poptOption long_options[] +@@ -361,6 +368,7 @@ static struct poptOption long_options[] {"no-whole-file", 0, POPT_ARG_VAL, &whole_file, 0, 0, 0 }, {"copy-unsafe-links", 0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 }, {"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 }, @@ -4654,9 +4654,9 @@ ACLs to a non-ACL-supporting disk should complain. {"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 }, {"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 }, {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, -@@ -683,6 +691,24 @@ int parse_arguments(int *argc, const cha - return 0; - #endif +@@ -749,6 +757,24 @@ int parse_arguments(int *argc, const cha + basis_dir[basis_dir_cnt++] = (char *)arg; + break; + case 'A': +#if SUPPORT_ACLS @@ -4679,7 +4679,7 @@ ACLs to a non-ACL-supporting disk should complain. default: /* A large opt value means that set_refuse_options() * turned this option off (opt-BASE is its index). */ -@@ -999,6 +1025,8 @@ void server_options(char **args,int *arg +@@ -1072,6 +1098,8 @@ void server_options(char **args,int *arg if (preserve_hard_links) argstr[x++] = 'H'; @@ -4705,9 +4705,9 @@ ACLs to a non-ACL-supporting disk should complain. if (verbose > 1 && flags & PERMS_REPORT) { if (updated) rprintf(FINFO,"%s\n",fname); ---- orig/rsync.h 2004-10-09 03:21:56 +--- orig/rsync.h 2004-11-27 17:53:24 +++ rsync.h 2004-07-03 20:11:58 -@@ -545,6 +545,40 @@ static inline int flist_up(struct file_l +@@ -552,6 +552,40 @@ static inline int flist_up(struct file_l #include "lib/permstring.h" #include "lib/addrinfo.h" @@ -4748,7 +4748,7 @@ ACLs to a non-ACL-supporting disk should complain. #include "proto.h" /* We have replacement versions of these if they're missing. */ ---- orig/rsync.yo 2004-10-06 00:12:16 +--- orig/rsync.yo 2004-11-27 17:53:24 +++ rsync.yo 2004-07-03 20:11:58 @@ -326,6 +326,7 @@ verb( --safe-links ignore "unsafe" symlinks @@ -4758,7 +4758,7 @@ ACLs to a non-ACL-supporting disk should complain. -o, --owner preserve owner (root only) -g, --group preserve group -D, --devices preserve devices (root only) -@@ -585,6 +586,11 @@ source file's permissions and the umask +@@ -594,6 +595,11 @@ source file's permissions and the umask other files (including updated files) retain their existing permissions (which is the same behavior as other file-copy utilities, such as cp). diff --git a/chmod-option.diff b/chmod-option.diff index 1d370d8..8f65574 100644 --- a/chmod-option.diff +++ b/chmod-option.diff @@ -4,7 +4,7 @@ command before "make": make proto ---- orig/Makefile.in 2004-08-13 07:18:58 +--- orig/Makefile.in 2004-11-03 11:56:03 +++ Makefile.in 2004-07-03 20:13:41 @@ -34,7 +34,7 @@ ZLIBOBJ=zlib/deflate.o zlib/infblock.o z OBJS1=rsync.o generator.o receiver.o cleanup.o sender.o exclude.o util.o \ @@ -225,17 +225,17 @@ command before "make": file->uid = st.st_uid; file->gid = st.st_gid; ---- orig/options.c 2004-09-23 17:42:07 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-07-03 20:13:41 -@@ -126,6 +126,7 @@ char *log_format = NULL; +@@ -128,6 +128,7 @@ char *log_format = NULL; char *password_file = NULL; char *rsync_path = RSYNC_PATH; char *backup_dir = NULL; +char *chmod_mode = NULL; char backup_dir_buf[MAXPATHLEN]; - int rsync_port = RSYNC_PORT; - int link_dest = 0; -@@ -138,6 +139,8 @@ int list_only = 0; + int rsync_port = 0; + int copy_dest = 0; +@@ -141,6 +142,8 @@ int list_only = 0; #define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */ char *batch_name = NULL; @@ -243,8 +243,8 @@ command before "make": + static int daemon_opt; /* sets am_daemon after option error-reporting */ static int modify_window_set; - -@@ -253,6 +256,7 @@ void usage(enum logcode F) + static int compare_dest = 0; +@@ -260,6 +263,7 @@ void usage(enum logcode F) rprintf(F," -g, --group preserve group\n"); rprintf(F," -D, --devices preserve devices (root only)\n"); rprintf(F," -t, --times preserve times\n"); @@ -252,7 +252,7 @@ command before "make": 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"); -@@ -360,6 +364,7 @@ static struct poptOption long_options[] +@@ -363,6 +367,7 @@ static struct poptOption long_options[] {"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 }, {"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 }, {"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 }, @@ -260,7 +260,7 @@ command before "make": {"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 }, -@@ -804,6 +809,13 @@ int parse_arguments(int *argc, const cha +@@ -932,6 +937,13 @@ int parse_arguments(int *argc, const cha return 0; } @@ -274,8 +274,8 @@ command before "make": if (do_progress && !verbose) verbose = 1; -@@ -1087,6 +1099,11 @@ void server_options(char **args,int *arg - args[ac++] = compare_dest; +@@ -1225,6 +1237,11 @@ void server_options(char **args,int *arg + } } + if (chmod_mode && !am_sender) { @@ -286,7 +286,7 @@ command before "make": if (files_from && (!am_sender || remote_filesfrom_file)) { if (remote_filesfrom_file) { args[ac++] = "--files-from"; ---- orig/rsync.yo 2004-09-24 16:42:30 +--- orig/rsync.yo 2004-11-27 17:53:24 +++ rsync.yo 2004-07-03 20:13:41 @@ -330,6 +330,7 @@ verb( -g, --group preserve group @@ -296,7 +296,7 @@ command before "make": -S, --sparse handle sparse files efficiently -n, --dry-run show what would have been transferred -W, --whole-file copy whole files, no incremental checks -@@ -610,6 +611,14 @@ cause the next transfer to behave as if +@@ -619,6 +620,14 @@ cause the next transfer to behave as if updated (though the rsync algorithm will make the update fairly efficient if the files haven't actually changed, you're much better off using -t). diff --git a/date-only.diff b/date-only.diff index 2031eee..a984837 100644 --- a/date-only.diff +++ b/date-only.diff @@ -15,7 +15,7 @@ Jeremy Bornstein [Patched update to have context and apply to latest CVS source.] ---- orig/generator.c 2004-11-11 22:13:09 +--- orig/generator.c 2004-11-27 17:53:24 +++ generator.c 2004-11-11 22:15:27 @@ -40,6 +40,7 @@ extern int inplace; extern int make_backups; @@ -25,16 +25,16 @@ Jeremy Bornstein extern int size_only; extern OFF_T max_size; extern int io_timeout; -@@ -63,6 +64,8 @@ extern struct exclude_list_struct server - /* choose whether to skip a particular file */ - static int skip_file(char *fname, struct file_struct *file, STRUCT_STAT *st) +@@ -78,6 +79,8 @@ static int unchanged_attrs(struct file_s + /* Perform our quick-check heuristic for determining if a file is unchanged. */ + static int unchanged_file(char *fn, struct file_struct *file, STRUCT_STAT *st) { + if (date_only) + return cmp_modtime(st->st_mtime, file->modtime) == 0; if (st->st_size != file->length) return 0; - if (link_dest) { ---- orig/options.c 2004-11-17 19:41:31 + +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-11-17 19:41:59 @@ -84,6 +84,7 @@ int keep_partial = 0; int safe_symlinks = 0; @@ -44,7 +44,7 @@ Jeremy Bornstein int daemon_bwlimit = 0; int bwlimit = 0; size_t bwlimit_writemax = 0; -@@ -279,6 +280,7 @@ void usage(enum logcode F) +@@ -283,6 +284,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"); @@ -52,7 +52,7 @@ Jeremy Bornstein 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"); -@@ -327,6 +329,7 @@ static struct poptOption long_options[] +@@ -333,6 +335,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 }, @@ -60,7 +60,7 @@ Jeremy Bornstein {"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 }, -@@ -1135,6 +1138,9 @@ void server_options(char **args,int *arg +@@ -1169,6 +1172,9 @@ void server_options(char **args,int *arg if (size_only) args[ac++] = "--size-only"; @@ -70,7 +70,7 @@ Jeremy Bornstein if (modify_window_set) { if (asprintf(&arg, "--modify-window=%d", modify_window) < 0) goto oom; ---- orig/rsync.yo 2004-11-17 19:41:31 +--- orig/rsync.yo 2004-11-27 17:53:24 +++ rsync.yo 2004-07-03 20:16:51 @@ -353,6 +353,7 @@ verb( --timeout=TIME set I/O timeout in seconds @@ -80,7 +80,7 @@ Jeremy Bornstein --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 -@@ -434,6 +435,12 @@ regardless of timestamp. This is useful +@@ -435,6 +436,12 @@ regardless of timestamp. This is useful after using another mirroring system which may not preserve timestamps exactly. diff --git a/filter.diff b/filter.diff index 862b018..590cda9 100644 --- a/filter.diff +++ b/filter.diff @@ -32,7 +32,7 @@ that's how you can make rules local instead of inherited). ..wayne.. ---- orig/clientserver.c 2004-08-02 02:29:16 +--- orig/clientserver.c 2004-11-27 18:27:35 +++ clientserver.c 2004-08-10 15:44:15 @@ -48,12 +48,14 @@ extern int no_detach; extern int default_af_hint; @@ -870,9 +870,9 @@ that's how you can make rules local instead of inherited). if (link_stat(fname, &st, keep_dirlinks) != 0) { if (f != -1) { io_error |= IOERR_GENERAL; ---- orig/options.c 2004-10-14 17:11:40 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-10-14 17:26:10 -@@ -287,6 +287,7 @@ void usage(enum logcode F) +@@ -296,6 +296,7 @@ void usage(enum logcode F) rprintf(F," --include=PATTERN don't exclude files matching PATTERN\n"); rprintf(F," --include-from=FILE don't exclude patterns listed in FILE\n"); rprintf(F," --files-from=FILE read FILE for list of source-file names\n"); @@ -880,7 +880,7 @@ that's how you can make rules local instead of inherited). rprintf(F," -0, --from0 all *-from file lists are delimited by nulls\n"); rprintf(F," --version print version number\n"); rprintf(F," --blocking-io use blocking I/O for the remote shell\n"); -@@ -380,6 +381,7 @@ static struct poptOption long_options[] +@@ -392,6 +393,7 @@ static struct poptOption long_options[] {"ignore-errors", 0, POPT_ARG_NONE, &ignore_errors, 0, 0, 0 }, {"blocking-io", 0, POPT_ARG_VAL, &blocking_io, 1, 0, 0 }, {"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 }, @@ -888,7 +888,7 @@ that's how you can make rules local instead of inherited). {0, 'P', POPT_ARG_NONE, 0, 'P', 0, 0 }, {"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, -@@ -652,6 +654,11 @@ int parse_arguments(int *argc, const cha +@@ -667,6 +669,11 @@ int parse_arguments(int *argc, const cha am_sender = 1; break; @@ -900,9 +900,9 @@ that's how you can make rules local instead of inherited). case 'P': do_progress = 1; keep_partial = 1; ---- orig/rsync.h 2004-10-09 03:21:56 +--- orig/rsync.h 2004-11-27 17:53:24 +++ rsync.h 2004-09-22 08:48:53 -@@ -109,6 +109,7 @@ +@@ -111,6 +111,7 @@ #define XFLG_WORDS_ONLY (1<<2) #define XFLG_WORD_SPLIT (1<<3) #define XFLG_DIRECTORY (1<<4) @@ -910,7 +910,7 @@ that's how you can make rules local instead of inherited). #define PERMS_REPORT (1<<0) #define PERMS_SKIP_MTIME (1<<1) -@@ -503,11 +504,18 @@ struct map_struct { +@@ -510,11 +511,18 @@ struct map_struct { #define MATCHFLG_INCLUDE (1<<4) /* this is an include, not an exclude */ #define MATCHFLG_DIRECTORY (1<<5) /* this matches only directories */ #define MATCHFLG_CLEAR_LIST (1<<6) /* this item is the "!" token */ @@ -930,17 +930,17 @@ that's how you can make rules local instead of inherited). }; struct exclude_list_struct { ---- orig/rsync.yo 2004-10-06 00:12:16 +--- orig/rsync.yo 2004-11-27 17:53:24 +++ rsync.yo 2004-08-13 00:43:31 -@@ -364,6 +364,7 @@ verb( +@@ -366,6 +366,7 @@ verb( --include=PATTERN don't exclude files matching PATTERN --include-from=FILE don't exclude patterns listed in FILE --files-from=FILE read FILE for list of source-file names + -E same as --exclude='. -p /.rsync-excludes' -0 --from0 all file lists are delimited by nulls --version print version number - --daemon run as an rsync daemon -@@ -1037,24 +1038,32 @@ The exclude and include patterns specifi + --blocking-io use blocking I/O for the remote shell +@@ -1076,24 +1077,32 @@ The exclude and include patterns specifi selection of which files to transfer and which files to skip. Rsync builds an ordered list of include/exclude options as specified on @@ -981,7 +981,7 @@ that's how you can make rules local instead of inherited). Let's say that we want to match two source files, one with an absolute path of "/home/me/foo/bar", and one with a path of "/home/you/bar/baz". -@@ -1101,23 +1110,27 @@ because rsync did not descend through th +@@ -1140,23 +1149,27 @@ because rsync did not descend through th hierarchy. Note also that the --include and --exclude options take one pattern @@ -1020,7 +1020,7 @@ that's how you can make rules local instead of inherited). it() if the pattern ends with a / then it will only match a directory, not a file, link, or device. -@@ -1130,22 +1143,31 @@ itemize( +@@ -1169,22 +1182,31 @@ itemize( single asterisk pattern "*" will stop at slashes. it() if the pattern contains a / (not counting a trailing /) or a "**" @@ -1056,7 +1056,7 @@ that's how you can make rules local instead of inherited). ) The +/- rules are most useful in a list that was read from a file, allowing -@@ -1192,8 +1214,160 @@ itemize( +@@ -1231,8 +1253,160 @@ itemize( it() --include "*/" --include "*.c" --exclude "*" would include all directories and C source files it() --include "foo/" --include "foo/bar.c" --exclude "*" would include diff --git a/fname-convert.diff b/fname-convert.diff index 78fc213..a35ea00 100644 --- a/fname-convert.diff +++ b/fname-convert.diff @@ -418,10 +418,10 @@ Note that you'll need to run 'make proto' after applying this patch. if (dir) free(dir); ---- orig/options.c 2004-11-27 17:53:24 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-11-27 18:09:09 @@ -132,6 +132,7 @@ char backup_dir_buf[MAXPATHLEN]; - int rsync_port = RSYNC_PORT; + int rsync_port = 0; int copy_dest = 0; int link_dest = 0; +char *fname_convert_cmd = NULL; diff --git a/ignore-case.diff b/ignore-case.diff index 3e0cb63..106a28e 100644 --- a/ignore-case.diff +++ b/ignore-case.diff @@ -35,17 +35,17 @@ in a case-insensitive manner. case '?': /* Match anything but '/'. */ if (*text == '/') ---- orig/options.c 2004-10-14 17:11:40 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-10-14 17:22:51 -@@ -92,6 +92,7 @@ int opt_ignore_existing = 0; - int max_delete = 0; +@@ -94,6 +94,7 @@ int max_delete = 0; + OFF_T max_size = 0; int ignore_errors = 0; int modify_window = 0; +int ignore_case = 0; int blocking_io = -1; int checksum_seed = 0; int inplace = 0; -@@ -288,6 +289,7 @@ void usage(enum logcode F) +@@ -297,6 +298,7 @@ void usage(enum logcode F) rprintf(F," --include-from=FILE don't exclude patterns listed in FILE\n"); rprintf(F," --files-from=FILE read FILE for list of source-file names\n"); rprintf(F," -0, --from0 all *-from file lists are delimited by nulls\n"); @@ -53,7 +53,7 @@ in a case-insensitive manner. rprintf(F," --version print version number\n"); rprintf(F," --blocking-io use blocking I/O for the remote shell\n"); rprintf(F," --no-blocking-io turn off --blocking-io\n"); -@@ -336,6 +338,7 @@ static struct poptOption long_options[] +@@ -346,6 +348,7 @@ static struct poptOption long_options[] {"include", 0, POPT_ARG_STRING, 0, OPT_INCLUDE, 0, 0 }, {"exclude-from", 0, POPT_ARG_STRING, 0, OPT_EXCLUDE_FROM, 0, 0 }, {"include-from", 0, POPT_ARG_STRING, 0, OPT_INCLUDE_FROM, 0, 0 }, @@ -61,7 +61,7 @@ in a case-insensitive manner. {"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 }, {"help", 'h', POPT_ARG_NONE, 0, 'h', 0, 0 }, {"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 }, -@@ -1103,6 +1106,9 @@ void server_options(char **args,int *arg +@@ -1181,6 +1184,9 @@ void server_options(char **args,int *arg args[ac++] = arg; } diff --git a/link-by-hash.diff b/link-by-hash.diff index 8ec19f7..188e6bd 100644 --- a/link-by-hash.diff +++ b/link-by-hash.diff @@ -365,7 +365,7 @@ the file's name. +} + +#endif ---- orig/options.c 2004-11-27 17:53:24 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-11-27 18:19:42 @@ -128,6 +128,7 @@ char *log_format = NULL; char *password_file = NULL; @@ -373,7 +373,7 @@ the file's name. char *backup_dir = NULL; +char *link_by_hash_dir = NULL; char backup_dir_buf[MAXPATHLEN]; - int rsync_port = RSYNC_PORT; + int rsync_port = 0; int copy_dest = 0; @@ -288,6 +289,7 @@ void usage(enum logcode F) rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); diff --git a/openssl-support.diff b/openssl-support.diff index baf088f..729f135 100644 --- a/openssl-support.diff +++ b/openssl-support.diff @@ -72,7 +72,7 @@ can't say if I've left any cleanup/compatibility errors in the code. if (verbose > 3) { rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n", code, file, line); ---- orig/clientserver.c 2004-08-02 02:29:16 +--- orig/clientserver.c 2004-11-27 18:27:35 +++ clientserver.c 2004-10-08 20:44:59 @@ -46,6 +46,9 @@ extern int io_timeout; extern int orig_umask; @@ -223,7 +223,7 @@ can't say if I've left any cleanup/compatibility errors in the code. AC_MSG_CHECKING([whether to call shutdown on all sockets]) case $host_os in *cygwin* ) AC_MSG_RESULT(yes) ---- orig/main.c 2004-11-03 20:30:45 +--- orig/main.c 2004-11-27 17:53:24 +++ main.c 2004-10-08 20:15:28 @@ -56,6 +56,9 @@ extern int write_batch; extern int batch_fd; @@ -235,7 +235,7 @@ can't say if I've left any cleanup/compatibility errors in the code. extern pid_t cleanup_child_pid; extern char *files_from; extern char *remote_filesfrom_file; -@@ -790,33 +793,48 @@ static int start_client(int argc, char * +@@ -807,33 +810,48 @@ static int start_client(int argc, char * if ((rc = copy_argv(argv))) return rc; @@ -308,7 +308,7 @@ can't say if I've left any cleanup/compatibility errors in the code. p = find_colon(argv[0]); if (p) { /* source is remote */ if (remote_filesfrom_file -@@ -848,12 +866,26 @@ static int start_client(int argc, char * +@@ -865,12 +883,26 @@ static int start_client(int argc, char * argv++; } else { /* source is local */ am_sender = 1; @@ -338,9 +338,9 @@ can't say if I've left any cleanup/compatibility errors in the code. p = strchr(host,'/'); if (p) { *p = '\0'; ---- orig/options.c 2004-11-11 22:13:09 -+++ options.c 2004-11-11 22:21:10 -@@ -136,6 +136,14 @@ int quiet = 0; +--- orig/options.c 2004-11-27 18:27:35 ++++ options.c 2004-11-27 18:31:46 +@@ -138,6 +138,14 @@ int quiet = 0; int always_checksum = 0; int list_only = 0; @@ -355,7 +355,7 @@ can't say if I've left any cleanup/compatibility errors in the code. #define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */ char *batch_name = NULL; -@@ -156,6 +164,7 @@ static void print_rsync_version(enum log +@@ -161,6 +169,7 @@ static void print_rsync_version(enum log char const *hardlinks = "no "; char const *links = "no "; char const *ipv6 = "no "; @@ -363,7 +363,7 @@ can't say if I've left any cleanup/compatibility errors in the code. STRUCT_STAT *dumstat; #ifdef HAVE_SOCKETPAIR -@@ -178,6 +187,10 @@ static void print_rsync_version(enum log +@@ -183,6 +192,10 @@ static void print_rsync_version(enum log ipv6 = ""; #endif @@ -374,7 +374,7 @@ can't say if I've left any cleanup/compatibility errors in the code. rprintf(f, "%s version %s protocol version %d\n", RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION); rprintf(f, -@@ -191,10 +204,10 @@ static void print_rsync_version(enum log +@@ -196,10 +209,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. */ @@ -387,7 +387,7 @@ can't say if I've left any cleanup/compatibility errors in the code. #ifdef MAINTAINER_MODE rprintf(f, " panic action: \"%s\"\n", get_panic_action()); -@@ -305,6 +318,13 @@ void usage(enum logcode F) +@@ -311,6 +324,13 @@ void usage(enum logcode F) rprintf(F," -4, --ipv4 prefer IPv4\n"); rprintf(F," -6, --ipv6 prefer IPv6\n"); #endif @@ -401,16 +401,16 @@ can't say if I've left any cleanup/compatibility errors in the code. rprintf(F," -h, --help show this help screen\n"); rprintf(F,"\nUse \"rsync --daemon --help\" to see the daemon-mode command-line options.\n"); -@@ -315,7 +335,7 @@ void usage(enum logcode F) - enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, - OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST, +@@ -322,7 +342,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP + OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, + OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, - OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE, + OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE, OPT_USE_SSL, OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -400,6 +420,13 @@ static struct poptOption long_options[] +@@ -408,6 +428,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 @@ -424,9 +424,9 @@ can't say if I've left any cleanup/compatibility errors in the code. /* All these options switch us into daemon-mode option-parsing. */ {"address", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 }, {"config", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 }, -@@ -716,6 +743,12 @@ int parse_arguments(int *argc, const cha - return 0; - #endif +@@ -749,6 +776,12 @@ int parse_arguments(int *argc, const cha + basis_dir[basis_dir_cnt++] = (char *)arg; + break; + case OPT_USE_SSL: +#ifdef HAVE_OPENSSL @@ -437,9 +437,9 @@ can't say if I've left any cleanup/compatibility errors in the code. default: /* A large opt value means that set_refuse_options() * turned this option off (opt-BASE is its index). */ -@@ -897,6 +930,17 @@ int parse_arguments(int *argc, const cha - if (do_progress && !verbose) - verbose = 1; +@@ -943,6 +976,17 @@ int parse_arguments(int *argc, const cha + bwlimit_writemax = 512; + } +#ifdef HAVE_OPENSSL + if (use_ssl) { @@ -452,10 +452,10 @@ can't say if I've left any cleanup/compatibility errors in the code. + } +#endif + - if (bwlimit) { - bwlimit_writemax = (size_t)bwlimit * 128; - if (bwlimit_writemax < 512) ---- orig/rsync.h 2004-11-03 20:30:45 + if (inplace) { + #if HAVE_FTRUNCATE + if (partial_dir) { +--- orig/rsync.h 2004-11-27 17:53:24 +++ rsync.h 2004-10-08 21:01:33 @@ -32,6 +32,7 @@ @@ -465,7 +465,7 @@ can't say if I've left any cleanup/compatibility errors in the code. #define BACKUP_SUFFIX "~" -@@ -338,6 +339,11 @@ enum msgcode { +@@ -340,6 +341,11 @@ enum msgcode { #define uint64 unsigned off_t #endif diff --git a/time-limit.diff b/time-limit.diff index 25c6d3d..dfd2a68 100644 --- a/time-limit.diff +++ b/time-limit.diff @@ -3,9 +3,9 @@ to be simpler and more efficient by Wayne Davison. Do we need configure support for mktime()? ---- orig/io.c 2004-11-03 20:30:45 +--- orig/io.c 2004-11-25 16:32:40 +++ io.c 2004-07-17 15:28:36 -@@ -49,6 +49,7 @@ extern int am_sender; +@@ -50,6 +50,7 @@ extern int am_generator; extern int eol_nulls; extern int checksum_seed; extern int protocol_version; @@ -13,7 +13,7 @@ Do we need configure support for mktime()? extern char *remote_filesfrom_file; extern struct stats stats; -@@ -135,17 +136,22 @@ static void check_timeout(void) +@@ -136,17 +137,22 @@ static void check_timeout(void) { time_t t; @@ -41,9 +41,9 @@ Do we need configure support for mktime()? if (!am_server && !am_daemon) { rprintf(FERROR, "io timeout after %d seconds - exiting\n", (int)(t-last_io)); ---- orig/options.c 2004-11-11 22:13:09 +--- orig/options.c 2004-11-27 18:27:35 +++ options.c 2004-11-11 22:22:25 -@@ -97,6 +97,7 @@ int blocking_io = -1; +@@ -98,6 +98,7 @@ int blocking_io = -1; int checksum_seed = 0; int inplace = 0; unsigned int block_size = 0; @@ -51,7 +51,7 @@ Do we need configure support for mktime()? /** Network address family. **/ -@@ -299,6 +300,8 @@ void usage(enum logcode F) +@@ -305,6 +306,8 @@ void usage(enum logcode F) rprintf(F," --log-format=FORMAT log file transfers using specified format\n"); rprintf(F," --password-file=FILE get password from FILE\n"); rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n"); @@ -60,15 +60,15 @@ Do we need configure support for mktime()? rprintf(F," --write-batch=FILE write a batch to FILE\n"); rprintf(F," --read-batch=FILE read a batch from FILE\n"); #ifdef INET6 -@@ -316,6 +319,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP - OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST, +@@ -323,6 +326,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP + OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE, + OPT_STOP_AT, OPT_TIME_LIMIT, OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -387,6 +391,8 @@ static struct poptOption long_options[] +@@ -395,6 +399,8 @@ static struct poptOption long_options[] {0, 'P', POPT_ARG_NONE, 0, 'P', 0, 0 }, {"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, @@ -77,9 +77,9 @@ Do we need configure support for mktime()? {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, {"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 }, {"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 }, -@@ -716,6 +722,36 @@ int parse_arguments(int *argc, const cha - return 0; - #endif +@@ -749,6 +755,36 @@ int parse_arguments(int *argc, const cha + basis_dir[basis_dir_cnt++] = (char *)arg; + break; + case OPT_STOP_AT: + arg = poptGetOptArg(pc); @@ -114,7 +114,7 @@ Do we need configure support for mktime()? default: /* A large opt value means that set_refuse_options() * turned this option off (opt-BASE is its index). */ -@@ -1100,6 +1136,15 @@ void server_options(char **args,int *arg +@@ -1140,6 +1176,15 @@ void server_options(char **args,int *arg args[ac++] = arg; } @@ -130,9 +130,9 @@ Do we need configure support for mktime()? if (backup_dir) { args[ac++] = "--backup-dir"; args[ac++] = backup_dir; ---- orig/rsync.yo 2004-11-11 22:13:11 +--- orig/rsync.yo 2004-11-27 17:53:24 +++ rsync.yo 2004-07-15 02:44:40 -@@ -379,6 +379,8 @@ verb( +@@ -375,6 +375,8 @@ verb( --log-format=FORMAT log file transfers using specified format --password-file=FILE get password from FILE --bwlimit=KBPS limit I/O bandwidth, KBytes per second @@ -141,7 +141,7 @@ Do we need configure support for mktime()? --write-batch=FILE write a batch to FILE --read-batch=FILE read a batch from FILE --checksum-seed=NUM set block/file checksum seed -@@ -1007,6 +1009,19 @@ transfer was too fast, it will wait befo +@@ -987,6 +989,19 @@ transfer was too fast, it will wait befo result is an average transfer rate equaling the specified limit. A value of zero specifies no limit. -- 2.34.1