From ac23c3343de86c3e85e1f6a604dc5cec76f3c4f2 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 25 Jan 2005 03:39:03 +0000 Subject: [PATCH] Got rid of patch fuzz. --- ODBC-dblog.diff | 40 ++++++++++++++++---------------- atimes.diff | 52 +++++++++++++++++++++--------------------- backup-dir-dels.diff | 32 +++++++++++++------------- chmod-option.diff | 28 +++++++++++------------ date-only.diff | 24 +++++++++---------- flist_stats.diff | 18 +++++++-------- fname-convert.diff | 28 +++++++++++------------ link-by-hash.diff | 48 +++++++++++++++++++------------------- openssl-support.diff | 50 ++++++++++++++++++++-------------------- remove-sent-files.diff | 42 +++++++++++++++++----------------- time-limit.diff | 22 +++++++++--------- 11 files changed, 192 insertions(+), 192 deletions(-) diff --git a/ODBC-dblog.diff b/ODBC-dblog.diff index efb7b40..2c89be5 100644 --- a/ODBC-dblog.diff +++ b/ODBC-dblog.diff @@ -88,7 +88,7 @@ This patch adds the following options: automatically generates unique IDs). Defaults to True. ---- orig/Makefile.in 2004-08-13 07:18:58 +--- orig/Makefile.in 2004-11-03 11:56:03 +++ Makefile.in 2004-07-03 20:22:18 @@ -32,7 +32,7 @@ ZLIBOBJ=zlib/deflate.o zlib/infblock.o z zlib/inflate.o zlib/inftrees.o zlib/infutil.o zlib/trees.o \ @@ -99,9 +99,9 @@ This patch adds the following options: OBJS2=options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o \ fileio.o batch.o clientname.o OBJS3=progress.o pipe.o ---- orig/cleanup.c 2004-07-29 16:08:03 +--- orig/cleanup.c 2005-01-10 09:46:11 +++ cleanup.c 2004-07-03 20:22:18 -@@ -139,8 +139,12 @@ void _exit_cleanup(int code, const char +@@ -143,8 +143,12 @@ void _exit_cleanup(int code, const char code = RERR_VANISHED; } @@ -115,10 +115,10 @@ This patch adds the following options: if (verbose > 2) { rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): about to call exit(%d)\n", ---- orig/clientserver.c 2004-08-02 02:29:16 +--- orig/clientserver.c 2005-01-25 00:53:58 +++ clientserver.c 2004-07-03 20:22:18 -@@ -322,6 +322,9 @@ static int rsync_module(int f_in, int f_ - exclude_path_prefix = NULL; +@@ -341,6 +341,9 @@ static int rsync_module(int f_in, int f_ + XFLG_WORD_SPLIT | XFLG_ABS_PATH | XFLG_DEF_EXCLUDE); log_init(); +#ifdef HAVE_LIBODBC @@ -127,7 +127,7 @@ This patch adds the following options: if (use_chroot) { /* -@@ -440,6 +443,9 @@ static int rsync_module(int f_in, int f_ +@@ -459,6 +462,9 @@ static int rsync_module(int f_in, int f_ rprintf(FLOG, "rsync %s %s from %s@%s (%s)\n", am_sender ? "on" : "to", request, auth_user, host, addr); @@ -137,7 +137,7 @@ This patch adds the following options: } else { rprintf(FLOG, "rsync %s %s from %s (%s)\n", am_sender ? "on" : "to", ---- orig/configure.in 2004-09-23 17:42:07 +--- orig/configure.in 2005-01-10 00:21:12 +++ configure.in 2004-07-03 20:22:18 @@ -94,6 +94,8 @@ AC_ARG_WITH(rsync-path, [ --with-rsync-path=PATH set default --rsync-path to PATH (default: rsync)], @@ -148,7 +148,7 @@ This patch adds the following options: AC_DEFINE_UNQUOTED(RSYNC_PATH, "$RSYNC_PATH", [location of rsync on remote machine]) -@@ -466,6 +468,14 @@ then +@@ -500,6 +502,14 @@ then AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes]) fi @@ -612,9 +612,9 @@ This patch adds the following options: + rprintf(FERROR,"Error at db_log_exit: Not connected to database!\n"); + } +} ---- orig/loadparm.c 2004-07-31 16:41:04 +--- orig/loadparm.c 2005-01-25 00:53:58 +++ loadparm.c 2004-07-03 20:22:18 -@@ -123,6 +123,17 @@ typedef struct +@@ -125,6 +125,17 @@ typedef struct BOOL list; BOOL use_chroot; BOOL transfer_logging; @@ -632,7 +632,7 @@ This patch adds the following options: BOOL ignore_errors; char *uid; char *gid; -@@ -156,6 +167,17 @@ static service sDefault = +@@ -159,6 +170,17 @@ static service sDefault = True, /* list */ True, /* use chroot */ False, /* transfer logging */ @@ -650,7 +650,7 @@ This patch adds the following options: False, /* ignore errors */ "nobody",/* uid */ -@@ -295,6 +317,17 @@ static struct parm_struct parm_table[] = +@@ -302,6 +324,17 @@ static struct parm_struct parm_table[] = {"include", P_STRING, P_LOCAL, &sDefault.include, NULL, 0}, {"include from", P_STRING, P_LOCAL, &sDefault.include_from,NULL, 0}, {"transfer logging", P_BOOL, P_LOCAL, &sDefault.transfer_logging,NULL,0}, @@ -668,7 +668,7 @@ This patch adds the following options: {"ignore errors", P_BOOL, P_LOCAL, &sDefault.ignore_errors,NULL,0}, {"log format", P_STRING, P_LOCAL, &sDefault.log_format, NULL, 0}, {"refuse options", P_STRING, P_LOCAL, &sDefault.refuse_options,NULL, 0}, -@@ -363,6 +396,17 @@ FN_LOCAL_BOOL(lp_write_only, write_only) +@@ -372,6 +405,17 @@ FN_LOCAL_BOOL(lp_write_only, write_only) FN_LOCAL_BOOL(lp_list, list) FN_LOCAL_BOOL(lp_use_chroot, use_chroot) FN_LOCAL_BOOL(lp_transfer_logging, transfer_logging) @@ -697,9 +697,9 @@ This patch adds the following options: { int i; for (i = 0; rerr_names[i].name; i++) { ---- orig/main.c 2004-09-29 17:58:26 +--- orig/main.c 2005-01-24 01:43:10 +++ main.c 2004-07-03 20:22:18 -@@ -136,6 +136,9 @@ static void report(int f) +@@ -139,6 +139,9 @@ static void report(int f) if (am_daemon) { log_exit(0, __FILE__, __LINE__); @@ -709,9 +709,9 @@ This patch adds the following options: if (f == -1 || !am_sender) return; } ---- orig/receiver.c 2004-09-21 09:40:27 +--- orig/receiver.c 2005-01-24 01:43:10 +++ receiver.c 2004-07-20 21:47:47 -@@ -546,6 +546,9 @@ int recv_files(int f_in, struct file_lis +@@ -490,6 +490,9 @@ int recv_files(int f_in, struct file_lis fname, fd2, file->length); log_recv(file, &initial_stats); @@ -721,9 +721,9 @@ This patch adds the following options: if (fd1 != -1) close(fd1); ---- orig/sender.c 2004-09-20 05:10:48 +--- orig/sender.c 2005-01-25 00:00:31 +++ sender.c 2004-07-15 02:37:48 -@@ -239,6 +239,9 @@ void send_files(struct file_list *flist, +@@ -231,6 +231,9 @@ void send_files(struct file_list *flist, match_sums(f_out, s, mbuf, st.st_size); log_send(file, &initial_stats); diff --git a/atimes.diff b/atimes.diff index 9e7f7d8..2b01e9f 100644 --- a/atimes.diff +++ b/atimes.diff @@ -15,9 +15,9 @@ command before "make": rprintf(FINFO, "flist->length=%.0f\n", (double) fptr[i]->length); rprintf(FINFO, "flist->mode=%#o\n", (int) fptr[i]->mode); ---- orig/flist.c 2005-01-24 01:43:09 +--- orig/flist.c 2005-01-25 00:53:58 +++ flist.c 2004-07-03 20:15:41 -@@ -64,6 +64,7 @@ extern int make_backups; +@@ -63,6 +63,7 @@ extern int make_backups; extern int backup_suffix_len; extern int copy_links; extern int copy_unsafe_links; @@ -25,7 +25,7 @@ command before "make": extern int protocol_version; extern int sanitize_paths; extern int delete_excluded; -@@ -149,17 +150,17 @@ static void list_file_entry(struct file_ +@@ -147,17 +148,17 @@ static void list_file_entry(struct file_ #if SUPPORT_LINKS if (preserve_links && S_ISLNK(f->mode)) { @@ -47,7 +47,7 @@ command before "make": } } -@@ -340,6 +341,7 @@ void send_file_entry(struct file_struct +@@ -333,6 +334,7 @@ void send_file_entry(struct file_struct { unsigned short flags; static time_t modtime; @@ -55,7 +55,7 @@ command before "make": static mode_t mode; static int64 dev; static dev_t rdev; -@@ -355,7 +357,7 @@ void send_file_entry(struct file_struct +@@ -348,7 +350,7 @@ void send_file_entry(struct file_struct if (!file) { write_byte(f, 0); @@ -64,7 +64,7 @@ command before "make": dev = 0, rdev = makedev(0, 0); rdev_major = 0; uid = 0, gid = 0; -@@ -404,6 +406,12 @@ void send_file_entry(struct file_struct +@@ -397,6 +399,12 @@ void send_file_entry(struct file_struct flags |= XMIT_SAME_TIME; else modtime = file->modtime; @@ -77,7 +77,7 @@ command before "make": #if SUPPORT_HARD_LINKS if (file->link_u.idev) { -@@ -459,6 +467,8 @@ void send_file_entry(struct file_struct +@@ -452,6 +460,8 @@ void send_file_entry(struct file_struct write_int(f, modtime); if (!(flags & XMIT_SAME_MODE)) write_int(f, to_wire_mode(mode)); @@ -86,7 +86,7 @@ command before "make": if (preserve_uid && !(flags & XMIT_SAME_UID)) { if (!numeric_ids) add_uid(uid); -@@ -532,6 +542,7 @@ void receive_file_entry(struct file_stru +@@ -525,6 +535,7 @@ void receive_file_entry(struct file_stru struct file_list *flist, int f) { static time_t modtime; @@ -94,7 +94,7 @@ command before "make": static mode_t mode; static int64 dev; static dev_t rdev; -@@ -550,7 +561,7 @@ void receive_file_entry(struct file_stru +@@ -543,7 +554,7 @@ void receive_file_entry(struct file_stru struct file_struct *file; if (!fptr) { @@ -103,7 +103,7 @@ command before "make": dev = 0, rdev = makedev(0, 0); rdev_major = 0; uid = 0, gid = 0; -@@ -606,6 +617,8 @@ void receive_file_entry(struct file_stru +@@ -599,6 +610,8 @@ void receive_file_entry(struct file_stru modtime = (time_t)read_int(f); if (!(flags & XMIT_SAME_MODE)) mode = from_wire_mode(read_int(f)); @@ -112,7 +112,7 @@ command before "make": if (preserve_uid && !(flags & XMIT_SAME_UID)) uid = (uid_t)read_int(f); -@@ -656,6 +669,7 @@ void receive_file_entry(struct file_stru +@@ -649,6 +662,7 @@ void receive_file_entry(struct file_stru file->flags = 0; file->modtime = modtime; @@ -120,7 +120,7 @@ command before "make": file->length = file_length; file->mode = mode; file->uid = uid; -@@ -896,6 +910,7 @@ skip_excludes: +@@ -889,6 +903,7 @@ skip_excludes: file->flags = flags; file->modtime = st.st_mtime; @@ -128,9 +128,9 @@ command before "make": file->length = st.st_size; file->mode = st.st_mode; file->uid = st.st_uid; ---- orig/generator.c 2005-01-24 01:43:09 +--- orig/generator.c 2005-01-24 06:20:37 +++ generator.c 2004-11-03 23:02:12 -@@ -97,7 +97,7 @@ static int unchanged_file(char *fn, stru +@@ -99,7 +99,7 @@ static int unchanged_file(char *fn, stru if (ignore_times) return 0; @@ -139,7 +139,7 @@ command before "make": } -@@ -497,7 +497,7 @@ static void recv_generator(char *fname, +@@ -499,7 +499,7 @@ static void recv_generator(char *fname, } if (update_only && fnamecmp_type == FNAMECMP_FNAME @@ -148,7 +148,7 @@ command before "make": if (verbose > 1) rprintf(FINFO, "%s is newer\n", safe_fname(fname)); return; ---- orig/options.c 2005-01-24 01:43:10 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2005-01-24 01:51:48 @@ -49,6 +49,7 @@ int preserve_uid = 0; int preserve_gid = 0; @@ -158,7 +158,7 @@ command before "make": int update_only = 0; int cvs_exclude = 0; int dry_run = 0; -@@ -265,6 +266,7 @@ void usage(enum logcode F) +@@ -266,6 +267,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"); @@ -166,7 +166,7 @@ command before "make": rprintf(F," -O, --omit-dir-times omit directories when preserving times\n"); rprintf(F," -S, --sparse handle sparse files efficiently\n"); rprintf(F," -n, --dry-run show what would have been transferred\n"); -@@ -376,6 +378,7 @@ static struct poptOption long_options[] +@@ -382,6 +384,7 @@ static struct poptOption long_options[] {"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 }, {"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 }, {"omit-dir-times", 'O', POPT_ARG_NONE, &omit_dir_times, 0, 0, 0 }, @@ -174,7 +174,7 @@ command before "make": {"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 }, -@@ -1088,6 +1091,8 @@ void server_options(char **args,int *arg +@@ -1128,6 +1131,8 @@ void server_options(char **args,int *arg argstr[x++] = 'D'; if (preserve_times) argstr[x++] = 't'; @@ -236,7 +236,7 @@ command before "make": } change_uid = am_root && preserve_uid && st->st_uid != file->uid; ---- orig/rsync.h 2005-01-21 00:35:26 +--- orig/rsync.h 2005-01-25 00:53:58 +++ rsync.h 2004-07-03 20:15:41 @@ -54,6 +54,7 @@ #define XMIT_HAS_IDEV_DATA (1<<9) @@ -246,7 +246,7 @@ command before "make": /* These flags are used in the live flist data. */ -@@ -115,6 +116,7 @@ +@@ -117,6 +118,7 @@ #define PERMS_REPORT (1<<0) #define PERMS_SKIP_MTIME (1<<1) @@ -254,7 +254,7 @@ command before "make": #define FULL_FLUSH 1 #define NORMAL_FLUSH 0 -@@ -433,6 +435,7 @@ struct file_struct { +@@ -435,6 +437,7 @@ struct file_struct { struct hlink *links; } link_u; time_t modtime; @@ -262,7 +262,7 @@ command before "make": uid_t uid; gid_t gid; mode_t mode; ---- orig/rsync.yo 2005-01-24 01:43:10 +--- orig/rsync.yo 2005-01-25 03:26:51 +++ rsync.yo 2005-01-24 01:57:18 @@ -332,6 +332,7 @@ verb( -D, --devices preserve devices (root only) @@ -272,9 +272,9 @@ 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 -@@ -644,6 +645,11 @@ dit(bf(-O, --omit-dir-times)) This tells - the preserving of modification times is enabled (see --times). If NFS - is sharing the files on the receiving end, it is a good idea to use -O. +@@ -648,6 +649,11 @@ dit(bf(-O, --omit-dir-times)) This tells + it is preserving modification times (see --times). If NFS is sharing + the directories on the receiving side, it is a good idea to use -O. +dit(bf(-A, --copy-atimes)) This tells rsync to transfer access times +along with the files and update them on the remote system. Note that diff --git a/backup-dir-dels.diff b/backup-dir-dels.diff index b6f94a4..02f92e6 100644 --- a/backup-dir-dels.diff +++ b/backup-dir-dels.diff @@ -106,10 +106,10 @@ Marc St-Onge + deleting = 0; + return ret; +} ---- orig/flist.c 2005-01-24 01:43:09 +--- orig/flist.c 2005-01-25 00:53:58 +++ flist.c 2005-01-24 02:21:33 -@@ -48,6 +48,8 @@ extern int xfer_dirs; - extern char curr_dir[MAXPATHLEN]; +@@ -47,6 +47,8 @@ extern char curr_dir[MAXPATHLEN]; + extern unsigned int curr_dir_len; extern char *backup_dir; extern char *backup_suffix; +extern char *delete_dir; @@ -117,7 +117,7 @@ Marc St-Onge extern int filesfrom_fd; extern int one_file_system; -@@ -62,6 +64,7 @@ extern int relative_paths; +@@ -61,6 +63,7 @@ extern int relative_paths; extern int implied_dirs; extern int make_backups; extern int backup_suffix_len; @@ -125,7 +125,7 @@ Marc St-Onge extern int copy_links; extern int copy_unsafe_links; extern int protocol_version; -@@ -1670,10 +1673,14 @@ char *f_name(struct file_struct *f) +@@ -1661,10 +1664,14 @@ char *f_name(struct file_struct *f) return f_name_to(f, names[n]); } @@ -141,7 +141,7 @@ Marc St-Onge } void delete_in_dir(struct file_list *flist, char *fname) -@@ -1727,11 +1734,12 @@ void delete_in_dir(struct file_list *fli +@@ -1718,11 +1725,12 @@ void delete_in_dir(struct file_list *fli || (delete_during && S_ISDIR(mode) && !S_ISDIR(flist->files[j]->mode))) { char *f = f_name(del_flist->files[i]); @@ -157,7 +157,7 @@ Marc St-Onge safe_fname(f)); } } else { ---- orig/options.c 2005-01-24 01:43:10 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2004-11-27 18:37:18 @@ -119,10 +119,14 @@ int no_detach = 0; int write_batch = 0; @@ -184,7 +184,7 @@ Marc St-Onge int rsync_port = 0; int compare_dest = 0; int copy_dest = 0; -@@ -250,7 +256,9 @@ void usage(enum logcode F) +@@ -251,7 +257,9 @@ void usage(enum logcode F) rprintf(F," --no-implied-dirs don't send implied dirs with -R\n"); rprintf(F," -b, --backup make backups (see --suffix & --backup-dir)\n"); rprintf(F," --backup-dir make backups into this directory\n"); @@ -194,7 +194,7 @@ Marc St-Onge rprintf(F," -u, --update update only (don't overwrite newer files)\n"); rprintf(F," --inplace update destination files in-place (SEE MAN PAGE)\n"); rprintf(F," -d, --dirs transfer directories without recursing\n"); -@@ -337,6 +345,7 @@ static struct poptOption long_options[] +@@ -342,6 +350,7 @@ static struct poptOption long_options[] /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */ {"version", 0, POPT_ARG_NONE, 0, OPT_VERSION, 0, 0}, {"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 }, @@ -202,7 +202,7 @@ Marc St-Onge {"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 }, {"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 }, {"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 }, -@@ -409,6 +418,7 @@ static struct poptOption long_options[] +@@ -416,6 +425,7 @@ static struct poptOption long_options[] {"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, @@ -210,7 +210,7 @@ Marc St-Onge {"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 }, {"write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 }, -@@ -878,6 +888,8 @@ int parse_arguments(int *argc, const cha +@@ -918,6 +928,8 @@ int parse_arguments(int *argc, const cha partial_dir = sanitize_path(NULL, partial_dir, NULL, 0); if (backup_dir) backup_dir = sanitize_path(NULL, backup_dir, NULL, 0); @@ -219,7 +219,7 @@ Marc St-Onge if (files_from) files_from = sanitize_path(NULL, files_from, NULL, 0); } -@@ -904,6 +916,12 @@ int parse_arguments(int *argc, const cha +@@ -944,6 +956,12 @@ int parse_arguments(int *argc, const cha if (check_exclude(elp, backup_dir, 1) < 0) goto options_rejected; } @@ -232,7 +232,7 @@ Marc St-Onge } if (server_exclude_list.head && files_from) { clean_fname(files_from, 1); -@@ -924,6 +942,16 @@ int parse_arguments(int *argc, const cha +@@ -964,6 +982,16 @@ int parse_arguments(int *argc, const cha backup_suffix); return 0; } @@ -249,7 +249,7 @@ Marc St-Onge if (backup_dir) { backup_dir_len = strlcpy(backup_dir_buf, backup_dir, sizeof backup_dir_buf); backup_dir_remainder = sizeof backup_dir_buf - backup_dir_len; -@@ -943,6 +971,31 @@ int parse_arguments(int *argc, const cha +@@ -983,6 +1011,31 @@ int parse_arguments(int *argc, const cha "--suffix cannot be a null string without --backup-dir\n"); return 0; } @@ -281,7 +281,7 @@ Marc St-Onge if (do_progress && !verbose) verbose = 1; -@@ -1156,6 +1209,10 @@ void server_options(char **args,int *arg +@@ -1196,6 +1249,10 @@ void server_options(char **args,int *arg args[ac++] = "--backup-dir"; args[ac++] = backup_dir; } @@ -292,7 +292,7 @@ Marc St-Onge /* Only send --suffix if it specifies a non-default value. */ if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) { -@@ -1164,7 +1221,13 @@ void server_options(char **args,int *arg +@@ -1204,7 +1261,13 @@ void server_options(char **args,int *arg goto oom; args[ac++] = arg; } diff --git a/chmod-option.diff b/chmod-option.diff index 8ec525a..c87c553 100644 --- a/chmod-option.diff +++ b/chmod-option.diff @@ -202,9 +202,9 @@ command before "make": + } + return 0; +} ---- orig/flist.c 2005-01-24 01:43:09 +--- orig/flist.c 2005-01-25 00:53:58 +++ flist.c 2004-09-18 01:51:11 -@@ -71,6 +71,8 @@ extern int max_delete; +@@ -70,6 +70,8 @@ extern int max_delete; extern int orig_umask; extern int list_only; @@ -212,8 +212,8 @@ command before "make": + extern struct exclude_list_struct exclude_list; extern struct exclude_list_struct server_exclude_list; - extern struct exclude_list_struct local_exclude_list; -@@ -897,7 +899,10 @@ skip_excludes: + +@@ -890,7 +892,10 @@ skip_excludes: file->flags = flags; file->modtime = st.st_mtime; file->length = st.st_size; @@ -225,7 +225,7 @@ command before "make": file->uid = st.st_uid; file->gid = st.st_gid; ---- orig/options.c 2005-01-24 01:43:10 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2005-01-24 01:48:30 @@ -132,6 +132,7 @@ char *log_format = NULL; char *password_file = NULL; @@ -242,9 +242,9 @@ command before "make": +struct chmod_mode_struct *chmod_modes = NULL; + static int daemon_opt; /* sets am_daemon after option error-reporting */ + static int F_option_cnt = 0; static int modify_window_set; - static char *dest_option = NULL; -@@ -266,6 +269,7 @@ void usage(enum logcode F) +@@ -267,6 +270,7 @@ void usage(enum logcode F) rprintf(F," -D, --devices preserve devices (root only)\n"); rprintf(F," -t, --times preserve times\n"); rprintf(F," -O, --omit-dir-times omit directories when preserving 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"); -@@ -373,6 +377,7 @@ static struct poptOption long_options[] +@@ -379,6 +383,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 }, {"omit-dir-times", 'O', POPT_ARG_NONE, &omit_dir_times, 0, 0, 0 }, -@@ -944,6 +949,13 @@ int parse_arguments(int *argc, const cha +@@ -984,6 +989,13 @@ int parse_arguments(int *argc, const cha return 0; } @@ -274,7 +274,7 @@ command before "make": if (do_progress && !verbose) verbose = 1; -@@ -1239,6 +1251,11 @@ void server_options(char **args,int *arg +@@ -1277,6 +1289,11 @@ void server_options(char **args,int *arg } } @@ -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 2005-01-24 01:43:10 +--- orig/rsync.yo 2005-01-25 03:26:51 +++ rsync.yo 2005-01-24 01:48:43 @@ -332,6 +332,7 @@ verb( -D, --devices preserve devices (root only) @@ -296,9 +296,9 @@ 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 -@@ -644,6 +645,14 @@ dit(bf(-O, --omit-dir-times)) This tells - the preserving of modification times is enabled (see --times). If NFS - is sharing the files on the receiving end, it is a good idea to use -O. +@@ -648,6 +649,14 @@ dit(bf(-O, --omit-dir-times)) This tells + it is preserving modification times (see --times). If NFS is sharing + the directories on the receiving side, it is a good idea to use -O. +dit(bf(--chmod)) This options tells rsync to apply the listed "chmod" pattern +to the permission of the files on the destination. In addition to the normal diff --git a/date-only.diff b/date-only.diff index a984837..4d42512 100644 --- a/date-only.diff +++ b/date-only.diff @@ -15,9 +15,9 @@ Jeremy Bornstein [Patched update to have context and apply to latest CVS source.] ---- orig/generator.c 2004-11-27 17:53:24 +--- orig/generator.c 2005-01-24 06:20:37 +++ generator.c 2004-11-11 22:15:27 -@@ -40,6 +40,7 @@ extern int inplace; +@@ -43,6 +43,7 @@ extern int inplace; extern int make_backups; extern int csum_length; extern int ignore_times; @@ -25,7 +25,7 @@ Jeremy Bornstein extern int size_only; extern OFF_T max_size; extern int io_timeout; -@@ -78,6 +79,8 @@ static int unchanged_attrs(struct file_s +@@ -81,6 +82,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) { @@ -34,9 +34,9 @@ Jeremy Bornstein if (st->st_size != file->length) return 0; ---- orig/options.c 2004-11-27 18:27:35 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2004-11-17 19:41:59 -@@ -84,6 +84,7 @@ int keep_partial = 0; +@@ -89,6 +89,7 @@ int keep_partial = 0; int safe_symlinks = 0; int copy_unsafe_links = 0; int size_only = 0; @@ -44,7 +44,7 @@ Jeremy Bornstein int daemon_bwlimit = 0; int bwlimit = 0; size_t bwlimit_writemax = 0; -@@ -283,6 +284,7 @@ void usage(enum logcode F) +@@ -292,6 +293,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,15 +52,15 @@ 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"); -@@ -333,6 +335,7 @@ static struct poptOption long_options[] +@@ -346,6 +348,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 }, + {"date-only", 0, POPT_ARG_NONE, &date_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 }, -@@ -1169,6 +1172,9 @@ void server_options(char **args,int *arg + {"existing", 0, POPT_ARG_NONE, &only_existing, 0, 0, 0 }, +@@ -1221,6 +1224,9 @@ void server_options(char **args,int *arg if (size_only) args[ac++] = "--size-only"; @@ -70,9 +70,9 @@ Jeremy Bornstein if (modify_window_set) { if (asprintf(&arg, "--modify-window=%d", modify_window) < 0) goto oom; ---- orig/rsync.yo 2004-11-27 17:53:24 +--- orig/rsync.yo 2005-01-25 03:26:51 +++ rsync.yo 2004-07-03 20:16:51 -@@ -353,6 +353,7 @@ verb( +@@ -357,6 +357,7 @@ verb( --timeout=TIME set I/O timeout in seconds -I, --ignore-times turn off mod time & file size quick check --size-only ignore mod time for quick check (use size) @@ -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 -@@ -435,6 +436,12 @@ regardless of timestamp. This is useful +@@ -444,6 +445,12 @@ regardless of timestamp. This is useful after using another mirroring system which may not preserve timestamps exactly. diff --git a/flist_stats.diff b/flist_stats.diff index 2149951..089a0a7 100644 --- a/flist_stats.diff +++ b/flist_stats.diff @@ -1,14 +1,14 @@ ---- orig/flist.c 2004-09-21 09:40:27 +--- orig/flist.c 2005-01-25 00:53:58 +++ flist.c 2004-09-03 14:17:31 -@@ -1078,6 +1078,7 @@ struct file_list *send_file_list(int f, +@@ -1087,6 +1087,7 @@ struct file_list *send_file_list(int f, start_filelist_progress("building file list"); start_write = stats.total_written; + stats.flist_buildtime = time(NULL); flist = flist_new(f == -1 ? WITHOUT_HLINK : WITH_HLINK, - "send_file_list"); -@@ -1224,6 +1225,9 @@ struct file_list *send_file_list(int f, + "send_file_list"); +@@ -1251,6 +1252,9 @@ struct file_list *send_file_list(int f, } } @@ -18,7 +18,7 @@ if (f != -1) { send_file_entry(NULL, f, 0); -@@ -1231,6 +1235,8 @@ struct file_list *send_file_list(int f, +@@ -1258,6 +1262,8 @@ struct file_list *send_file_list(int f, finish_filelist_progress(flist); } @@ -27,9 +27,9 @@ if (flist->hlink_pool) { pool_destroy(flist->hlink_pool); flist->hlink_pool = NULL; ---- orig/main.c 2004-09-29 17:58:26 +--- orig/main.c 2005-01-24 01:43:10 +++ main.c 2004-09-03 14:18:47 -@@ -178,6 +178,10 @@ static void report(int f) +@@ -181,6 +181,10 @@ static void report(int f) rprintf(FINFO,"Matched data: %.0f bytes\n", (double)stats.matched_data); rprintf(FINFO,"File list size: %d\n", stats.flist_size); @@ -40,9 +40,9 @@ rprintf(FINFO,"Total bytes sent: %.0f\n", (double)total_written); rprintf(FINFO,"Total bytes received: %.0f\n", ---- orig/rsync.h 2004-09-22 08:47:31 +--- orig/rsync.h 2005-01-25 00:53:58 +++ rsync.h 2004-09-03 14:05:13 -@@ -521,6 +521,8 @@ struct stats { +@@ -540,6 +540,8 @@ struct stats { int64 literal_data; int64 matched_data; int flist_size; diff --git a/fname-convert.diff b/fname-convert.diff index 88d8043..9747b1f 100644 --- a/fname-convert.diff +++ b/fname-convert.diff @@ -87,9 +87,9 @@ Note that you'll need to run 'make proto' after applying this patch. #define RERR_SIGNAL 20 /* status returned when sent SIGUSR1, SIGINT */ #define RERR_WAITCHILD 21 /* some error returned by waitpid() */ ---- orig/flist.c 2005-01-24 01:43:09 +--- orig/flist.c 2005-01-25 00:53:58 +++ flist.c 2005-01-21 19:10:03 -@@ -70,6 +70,7 @@ extern int delete_excluded; +@@ -69,6 +69,7 @@ extern int delete_excluded; extern int max_delete; extern int orig_umask; extern int list_only; @@ -97,7 +97,7 @@ Note that you'll need to run 'make proto' after applying this patch. extern struct exclude_list_struct exclude_list; extern struct exclude_list_struct server_exclude_list; -@@ -365,7 +366,10 @@ void send_file_entry(struct file_struct +@@ -358,7 +359,10 @@ void send_file_entry(struct file_struct io_write_phase = "send_file_entry"; @@ -109,7 +109,7 @@ Note that you'll need to run 'make proto' after applying this patch. flags = base_flags; -@@ -581,6 +585,9 @@ void receive_file_entry(struct file_stru +@@ -574,6 +578,9 @@ void receive_file_entry(struct file_stru strlcpy(lastname, thisname, MAXPATHLEN); @@ -119,7 +119,7 @@ Note that you'll need to run 'make proto' after applying this patch. clean_fname(thisname, 0); if (sanitize_paths) -@@ -1110,6 +1117,9 @@ struct file_list *send_file_list(int f, +@@ -1088,6 +1095,9 @@ struct file_list *send_file_list(int f, start_write = stats.total_written; @@ -129,7 +129,7 @@ Note that you'll need to run 'make proto' after applying this patch. flist = flist_new(f == -1 ? WITHOUT_HLINK : WITH_HLINK, "send_file_list"); -@@ -1287,6 +1297,9 @@ struct file_list *send_file_list(int f, +@@ -1278,6 +1288,9 @@ struct file_list *send_file_list(int f, stats.num_files = flist->count; } @@ -139,7 +139,7 @@ Note that you'll need to run 'make proto' after applying this patch. if (verbose > 3) output_flist(flist, f < 0 ? "delete" : who_am_i()); -@@ -1308,6 +1321,9 @@ struct file_list *recv_file_list(int f) +@@ -1299,6 +1312,9 @@ struct file_list *recv_file_list(int f) start_read = stats.total_read; @@ -149,7 +149,7 @@ Note that you'll need to run 'make proto' after applying this patch. flist = flist_new(WITH_HLINK, "recv_file_list"); received_flist = flist; -@@ -1361,6 +1377,9 @@ struct file_list *recv_file_list(int f) +@@ -1352,6 +1368,9 @@ struct file_list *recv_file_list(int f) io_error |= read_int(f); } @@ -382,9 +382,9 @@ Note that you'll need to run 'make proto' after applying this patch. + if (verbose > 2) + rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest); +} ---- orig/generator.c 2005-01-24 01:43:09 +--- orig/generator.c 2005-01-24 06:20:37 +++ generator.c 2004-07-03 20:18:02 -@@ -233,6 +233,12 @@ static void generate_and_send_sums(int f +@@ -235,6 +235,12 @@ static void generate_and_send_sums(int f * * @note This comment was added later by mbp who was trying to work it * out. It might be wrong. @@ -418,7 +418,7 @@ Note that you'll need to run 'make proto' after applying this patch. if (dir) free(dir); ---- orig/options.c 2005-01-24 01:43:10 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2005-01-15 21:28:07 @@ -129,6 +129,7 @@ char *basis_dir[MAX_BASIS_DIRS+1]; char *config_file = NULL; @@ -428,15 +428,15 @@ Note that you'll need to run 'make proto' after applying this patch. char *password_file = NULL; char *rsync_path = RSYNC_PATH; char *backup_dir = NULL; -@@ -296,6 +297,7 @@ void usage(enum logcode F) +@@ -298,6 +299,7 @@ void usage(enum logcode F) rprintf(F," --copy-dest=DIR ... and include copies of unchanged files\n"); rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n"); rprintf(F," -P equivalent to --partial --progress\n"); + rprintf(F," --fname-convert=CMD invoke CMD for filename conversion\n"); rprintf(F," -z, --compress compress file data\n"); rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n"); - rprintf(F," --exclude=PATTERN exclude files matching PATTERN\n"); -@@ -395,6 +397,7 @@ static struct poptOption long_options[] + rprintf(F," -f, --filter=RULE add a file-filtering RULE\n"); +@@ -401,6 +403,7 @@ static struct poptOption long_options[] {"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 }, {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 }, {"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 }, diff --git a/link-by-hash.diff b/link-by-hash.diff index 2e6523d..efe3c14 100644 --- a/link-by-hash.diff +++ b/link-by-hash.diff @@ -365,9 +365,9 @@ the file's name. +} + +#endif ---- orig/options.c 2005-01-15 21:23:15 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2004-11-27 18:19:42 -@@ -128,6 +128,7 @@ char *log_format = NULL; +@@ -132,6 +132,7 @@ char *log_format = NULL; char *password_file = NULL; char *rsync_path = RSYNC_PATH; char *backup_dir = NULL; @@ -375,7 +375,7 @@ the file's name. char backup_dir_buf[MAXPATHLEN]; int rsync_port = 0; int compare_dest = 0; -@@ -288,6 +289,7 @@ void usage(enum logcode F) +@@ -297,6 +298,7 @@ void usage(enum logcode F) rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); rprintf(F," --copy-dest=DIR ... and include copies of unchanged files\n"); rprintf(F," --link-dest=DIR hardlink to files in DIR when unchanged\n"); @@ -383,16 +383,16 @@ the file's name. rprintf(F," -P equivalent to --partial --progress\n"); rprintf(F," -z, --compress compress file data\n"); rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n"); -@@ -323,7 +325,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP - OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, - OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, +@@ -335,7 +337,7 @@ void usage(enum logcode F) + enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, + OPT_FILTER, 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_LINK_BY_HASH, OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -384,6 +386,7 @@ static struct poptOption long_options[] +@@ -401,6 +403,7 @@ static struct poptOption long_options[] {"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 }, {"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 }, {"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 }, @@ -400,7 +400,7 @@ the file's name. /* TODO: Should this take an optional int giving the compression level? */ {"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 }, {"stats", 0, POPT_ARG_NONE, &do_stats, 0, 0, 0 }, -@@ -750,6 +753,21 @@ int parse_arguments(int *argc, const cha +@@ -788,6 +791,21 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -422,7 +422,7 @@ the file's name. default: /* A large opt value means that set_refuse_options() * turned this option off (opt-BASE is its index). */ -@@ -1226,6 +1244,11 @@ void server_options(char **args,int *arg +@@ -1277,6 +1295,11 @@ void server_options(char **args,int *arg } } @@ -434,17 +434,17 @@ the file's name. if (files_from && (!am_sender || remote_filesfrom_file)) { if (remote_filesfrom_file) { args[ac++] = "--files-from"; ---- orig/receiver.c 2005-01-15 21:18:09 +--- orig/receiver.c 2005-01-24 01:43:10 +++ receiver.c 2005-01-15 21:29:13 -@@ -38,6 +38,7 @@ extern int preserve_perms; - extern int cvs_exclude; +@@ -36,6 +36,7 @@ extern int preserve_hard_links; + extern int preserve_perms; extern int io_error; extern char *tmpdir; +extern char *link_by_hash_dir; extern char *partial_dir; extern char *basis_dir[]; extern int basis_dir_cnt; -@@ -204,12 +205,13 @@ static int get_tmpname(char *fnametmp, c +@@ -131,12 +132,13 @@ static int get_tmpname(char *fnametmp, c static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, @@ -459,7 +459,7 @@ the file's name. int32 len; OFF_T offset = 0; OFF_T offset2; -@@ -229,6 +231,9 @@ static int receive_data(int f_in, char * +@@ -156,6 +158,9 @@ static int receive_data(int f_in, char * } else mapbuf = NULL; @@ -469,7 +469,7 @@ the file's name. sum_init(checksum_seed); while ((i = recv_token(f_in, &data)) != 0) { -@@ -245,6 +250,8 @@ static int receive_data(int f_in, char * +@@ -172,6 +177,8 @@ static int receive_data(int f_in, char * cleanup_got_literal = 1; sum_update(data, i); @@ -478,7 +478,7 @@ the file's name. if (fd != -1 && write_file(fd,data,i) != i) goto report_write_error; -@@ -271,6 +278,8 @@ static int receive_data(int f_in, char * +@@ -198,6 +205,8 @@ static int receive_data(int f_in, char * see_token(map, len); sum_update(map, len); @@ -487,7 +487,7 @@ the file's name. } if (inplace) { -@@ -311,6 +320,8 @@ static int receive_data(int f_in, char * +@@ -238,6 +247,8 @@ static int receive_data(int f_in, char * } sum_end(file_sum1); @@ -496,7 +496,7 @@ the file's name. if (mapbuf) unmap_file(mapbuf); -@@ -326,7 +337,7 @@ static int receive_data(int f_in, char * +@@ -253,7 +264,7 @@ static int receive_data(int f_in, char * static void discard_receive_data(int f_in, OFF_T length) { @@ -505,7 +505,7 @@ the file's name. } -@@ -559,8 +570,12 @@ int recv_files(int f_in, struct file_lis +@@ -486,8 +497,12 @@ int recv_files(int f_in, struct file_lis rprintf(FINFO, "%s\n", safe_fname(fname)); /* recv file data */ @@ -519,9 +519,9 @@ the file's name. log_recv(file, &initial_stats); ---- orig/rsync.c 2005-01-10 09:50:46 +--- orig/rsync.c 2005-01-24 00:57:24 +++ rsync.c 2004-08-13 18:14:34 -@@ -34,6 +34,7 @@ extern int force_delete; +@@ -35,6 +35,7 @@ extern int force_delete; extern int recurse; extern int keep_dirlinks; extern int make_backups; @@ -529,7 +529,7 @@ the file's name. extern char *backup_dir; extern int inplace; -@@ -259,7 +260,12 @@ void finish_transfer(char *fname, char * +@@ -280,7 +281,12 @@ void finish_transfer(char *fname, char * /* move tmp file over real file */ if (verbose > 2) rprintf(FINFO, "renaming %s to %s\n", fnametmp, fname); @@ -543,9 +543,9 @@ the file's name. if (ret < 0) { rsyserr(FERROR, errno, "%s %s -> \"%s\"", ret == -2 ? "copy" : "rename", ---- orig/rsync.h 2005-01-15 21:18:09 +--- orig/rsync.h 2005-01-25 00:53:58 +++ rsync.h 2004-07-03 20:20:15 -@@ -538,6 +538,14 @@ struct stats { +@@ -545,6 +545,14 @@ struct stats { int current_file_index; }; diff --git a/openssl-support.diff b/openssl-support.diff index cf4e771..ffaa795 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 2005-01-22 22:48:52 +--- orig/clientserver.c 2005-01-25 00:53:58 +++ clientserver.c 2004-10-08 20:44:59 @@ -47,6 +47,9 @@ extern int select_timeout; extern int orig_umask; @@ -83,8 +83,8 @@ can't say if I've left any cleanup/compatibility errors in the code. +#endif extern char *bind_address; extern struct exclude_list_struct server_exclude_list; - extern char *exclude_path_prefix; -@@ -98,8 +101,18 @@ int start_socket_client(char *host, char + extern char *config_file; +@@ -100,8 +103,18 @@ int start_socket_client(char *host, char exit_cleanup(RERR_SOCKETIO); ret = start_inband_exchange(user, path, fd, fd, argc); @@ -104,7 +104,7 @@ can't say if I've left any cleanup/compatibility errors in the code. } int start_inband_exchange(char *user, char *path, int f_in, int f_out, -@@ -160,6 +173,33 @@ int start_inband_exchange(char *user, ch +@@ -162,6 +175,33 @@ int start_inband_exchange(char *user, ch if (verbose > 1) print_child_argv(sargs); @@ -138,7 +138,7 @@ can't say if I've left any cleanup/compatibility errors in the code. p = strchr(path,'/'); if (p) *p = 0; io_printf(f_out, "%s\n", path); -@@ -188,6 +228,10 @@ int start_inband_exchange(char *user, ch +@@ -190,6 +230,10 @@ int start_inband_exchange(char *user, ch * server to terminate the listing of modules. * We don't want to go on and transfer * anything; just exit. */ @@ -149,7 +149,7 @@ can't say if I've left any cleanup/compatibility errors in the code. exit(0); } -@@ -195,6 +239,10 @@ int start_inband_exchange(char *user, ch +@@ -197,6 +241,10 @@ int start_inband_exchange(char *user, ch rprintf(FERROR, "%s\n", line); /* This is always fatal; the server will now * close the socket. */ @@ -160,7 +160,7 @@ can't say if I've left any cleanup/compatibility errors in the code. return RERR_STARTCLIENT; } else { rprintf(FINFO,"%s\n", line); -@@ -510,6 +558,7 @@ static void send_listing(int fd) +@@ -519,6 +567,7 @@ static void send_listing(int fd) io_printf(fd,"@RSYNCD: EXIT\n"); } @@ -168,7 +168,7 @@ can't say if I've left any cleanup/compatibility errors in the code. /* 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 */ -@@ -559,6 +608,9 @@ int start_daemon(int f_in, int f_out) +@@ -568,6 +617,9 @@ int start_daemon(int f_in, int f_out) if (protocol_version > remote_protocol) protocol_version = remote_protocol; @@ -178,7 +178,7 @@ can't say if I've left any cleanup/compatibility errors in the code. line[0] = 0; if (!read_line(f_in, line, sizeof line - 1)) return -1; -@@ -568,6 +620,20 @@ int start_daemon(int f_in, int f_out) +@@ -577,6 +629,20 @@ int start_daemon(int f_in, int f_out) return -1; } @@ -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 2005-01-23 07:27:24 +--- orig/main.c 2005-01-24 01:43:10 +++ main.c 2004-10-08 20:15:28 @@ -57,6 +57,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; -@@ -806,33 +809,48 @@ static int start_client(int argc, char * +@@ -808,33 +811,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 -@@ -864,12 +882,26 @@ static int start_client(int argc, char * +@@ -866,12 +884,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 2005-01-24 00:18:21 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2004-11-27 18:31:46 -@@ -142,6 +142,14 @@ int quiet = 0; +@@ -144,6 +144,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; -@@ -163,6 +171,7 @@ static void print_rsync_version(enum log +@@ -166,6 +174,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 -@@ -185,6 +194,10 @@ static void print_rsync_version(enum log +@@ -188,6 +197,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, -@@ -198,10 +211,10 @@ static void print_rsync_version(enum log +@@ -201,10 +214,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()); -@@ -316,6 +329,13 @@ void usage(enum logcode F) +@@ -325,6 +338,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"); -@@ -326,7 +346,7 @@ void usage(enum logcode F) +@@ -335,7 +355,7 @@ void usage(enum logcode F) enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM, - OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, + OPT_FILTER, 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[] = { -@@ -415,6 +435,13 @@ static struct poptOption long_options[] +@@ -428,6 +448,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,7 +424,7 @@ 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 }, -@@ -747,6 +774,12 @@ int parse_arguments(int *argc, const cha +@@ -788,6 +815,12 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -437,7 +437,7 @@ 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). */ -@@ -949,6 +982,17 @@ int parse_arguments(int *argc, const cha +@@ -995,6 +1028,17 @@ int parse_arguments(int *argc, const cha bwlimit_writemax = 512; } @@ -455,7 +455,7 @@ can't say if I've left any cleanup/compatibility errors in the code. if (inplace) { #if HAVE_FTRUNCATE if (partial_dir) { ---- orig/rsync.h 2005-01-21 00:35:26 +--- orig/rsync.h 2005-01-25 00:53:58 +++ 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 "~" -@@ -337,6 +338,11 @@ enum msgcode { +@@ -339,6 +340,11 @@ enum msgcode { #define INT64_IS_OFF_T #endif diff --git a/remove-sent-files.diff b/remove-sent-files.diff index 917d11c..6255f92 100644 --- a/remove-sent-files.diff +++ b/remove-sent-files.diff @@ -67,7 +67,7 @@ command before "make": if (argc == 0) list_only |= 1; ---- orig/options.c 2005-01-24 01:43:10 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2005-01-23 07:30:51 @@ -59,6 +59,7 @@ int delete_during = 0; int delete_before = 0; @@ -85,25 +85,25 @@ command before "make": int max_delete = 0; OFF_T max_size = 0; int ignore_errors = 0; -@@ -280,6 +282,7 @@ void usage(enum logcode F) - rprintf(F," --delete-before receiver deletes before transfer, not during\n"); - rprintf(F," --delete-after receiver deletes after transfer, not during\n"); +@@ -282,6 +284,7 @@ void usage(enum logcode F) + rprintf(F," --delete-during receiver deletes during transfer, not before\n"); + rprintf(F," --delete-after receiver deletes after transfer, not before\n"); rprintf(F," --delete-excluded also delete excluded files on the receiving side\n"); + rprintf(F," --delete-sent-files updated/sent files are removed from sending side\n"); rprintf(F," --ignore-errors delete even if there are I/O errors\n"); rprintf(F," --force force deletion of directories even if not empty\n"); rprintf(F," --max-delete=NUM don't delete more than NUM files\n"); -@@ -349,6 +352,7 @@ static struct poptOption long_options[] - {"delete-before", 0, POPT_ARG_NONE, &delete_before, 0, 0, 0 }, +@@ -354,6 +357,7 @@ static struct poptOption long_options[] + {"delete-during", 0, POPT_ARG_NONE, &delete_during, 0, 0, 0 }, {"delete-after", 0, POPT_ARG_NONE, &delete_after, 0, 0, 0 }, {"delete-excluded", 0, POPT_ARG_NONE, &delete_excluded, 0, 0, 0 }, + {"delete-sent-files",0, POPT_ARG_NONE, &delete_sent_files, 0, 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 }, -@@ -865,6 +869,9 @@ int parse_arguments(int *argc, const cha - if (delete_excluded && !delete_mode) - delete_mode = delete_during = 1; + {"filter", 'f', POPT_ARG_STRING, 0, OPT_FILTER, 0, 0 }, +@@ -905,6 +909,9 @@ int parse_arguments(int *argc, const cha + else if (delete_mode || delete_excluded) + delete_mode = delete_before = 1; + if (delete_sent_files) + need_messages_from_generator = 1; @@ -111,7 +111,7 @@ command before "make": *argv = poptGetArgs(pc); *argc = count_args(*argv); -@@ -1255,6 +1262,9 @@ void server_options(char **args,int *arg +@@ -1293,6 +1300,9 @@ void server_options(char **args,int *arg if (!implied_dirs && !am_sender) args[ac++] = "--no-implied-dirs"; @@ -166,7 +166,7 @@ command before "make": } } } ---- orig/rsync.h 2005-01-21 00:35:26 +--- orig/rsync.h 2005-01-25 00:53:58 +++ rsync.h 2004-07-03 20:17:10 @@ -60,6 +60,7 @@ #define FLAG_DEL_START (1<<0) @@ -176,7 +176,7 @@ command before "make": /* update this if you make incompatible changes */ #define PROTOCOL_VERSION 29 -@@ -142,6 +143,7 @@ enum logcode { FERROR=1, FINFO=2, FLOG=3 +@@ -144,6 +145,7 @@ enum logcode { FERROR=1, FINFO=2, FLOG=3 /* Messages types that are sent over the message channel. The logcode * values must all be present here with identical numbers. */ enum msgcode { @@ -184,19 +184,19 @@ command before "make": 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 */ ---- orig/rsync.yo 2005-01-24 01:43:10 +--- orig/rsync.yo 2005-01-25 03:26:51 +++ rsync.yo 2005-01-23 07:31:03 -@@ -346,6 +346,7 @@ verb( - --delete-before receiver deletes before xfer, not during - --delete-after receiver deletes after transfer, not during +@@ -347,6 +347,7 @@ verb( + --delete-during receiver deletes during xfer, not before + --delete-after receiver deletes after transfer, not before --delete-excluded also delete excluded files on receiver + --delete-sent-files updated/sent files are removed from sender --ignore-errors delete even if there are I/O errors --force force deletion of dirs even if not empty --max-delete=NUM don't delete more than NUM files -@@ -720,6 +721,11 @@ receiving side that are not on the sendi +@@ -725,6 +726,11 @@ receiving side that are not on the sendi delete any files on the receiving side that are excluded (see --exclude). - Implies --delete. + See --delete (which is implied) for more details on file-deletion. +dit(bf(--delete-sent-files)) This tells rsync to remove the source files +on the sending side that are successfully transferred to the receiving @@ -206,7 +206,7 @@ command before "make": dit(bf(--ignore-errors)) Tells --delete to go ahead and delete files even when there are I/O errors. ---- orig/sender.c 2005-01-17 23:11:46 +--- orig/sender.c 2005-01-25 00:00:31 +++ sender.c 2004-07-26 16:49:19 @@ -26,6 +26,7 @@ extern int io_error; extern int dry_run; @@ -255,7 +255,7 @@ command before "make": while (1) { unsigned int offset; -@@ -248,6 +273,9 @@ void send_files(struct file_list *flist, +@@ -249,6 +274,9 @@ void send_files(struct file_list *flist, rprintf(FINFO, "sender finished %s\n", safe_fname(fname)); } diff --git a/time-limit.diff b/time-limit.diff index 9cc1469..a02ece7 100644 --- a/time-limit.diff +++ b/time-limit.diff @@ -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 2005-01-24 00:18:21 +--- orig/options.c 2005-01-25 03:26:51 +++ options.c 2005-01-01 21:19:56 -@@ -100,6 +100,7 @@ int blocking_io = -1; +@@ -102,6 +102,7 @@ int blocking_io = -1; int checksum_seed = 0; int inplace = 0; long block_size = 0; /* "long" because popt can't set an int32. */ @@ -51,7 +51,7 @@ Do we need configure support for mktime()? /** Network address family. **/ -@@ -310,6 +311,8 @@ void usage(enum logcode F) +@@ -319,6 +320,8 @@ void usage(enum logcode F) rprintf(F," --password-file=FILE get password from FILE\n"); rprintf(F," --list-only list the files instead of copying them\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 -@@ -327,6 +330,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP - OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, +@@ -336,6 +339,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP + OPT_FILTER, 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[] = { -@@ -402,6 +406,8 @@ static struct poptOption long_options[] +@@ -415,6 +419,8 @@ static struct poptOption long_options[] {"port", 0, POPT_ARG_INT, &rsync_port, 0, 0, 0 }, {"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, @@ -77,7 +77,7 @@ 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 }, -@@ -747,6 +753,36 @@ int parse_arguments(int *argc, const cha +@@ -788,6 +794,36 @@ int parse_arguments(int *argc, const cha basis_dir[basis_dir_cnt++] = (char *)arg; break; @@ -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). */ -@@ -1144,6 +1180,15 @@ void server_options(char **args,int *arg +@@ -1192,6 +1228,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 2005-01-24 00:18:21 +--- orig/rsync.yo 2005-01-25 03:26:51 +++ rsync.yo 2004-07-15 02:44:40 -@@ -378,6 +378,8 @@ verb( +@@ -384,6 +384,8 @@ verb( --password-file=FILE get password from FILE --list-only list the files instead of copying them --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 -@@ -1040,6 +1042,19 @@ transfer was too fast, it will wait befo +@@ -1090,6 +1092,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