--- old/flist.c
+++ new/flist.c
-@@ -25,6 +25,7 @@
+@@ -26,6 +26,7 @@
#include "io.h"
extern int verbose;
+extern int dry_run;
- extern int list_only;
extern int am_root;
extern int am_server;
+ extern int am_daemon;
@@ -58,6 +59,7 @@ extern int implied_dirs;
extern int file_extra_cnt;
extern int ignore_perishable;
extern int prune_empty_dirs;
extern int copy_links;
extern int copy_unsafe_links;
-@@ -81,6 +83,9 @@ extern iconv_t ic_send, ic_recv;
+@@ -82,6 +84,9 @@ extern iconv_t ic_send, ic_recv;
#define PTR_SIZE (sizeof (struct file_struct *))
int io_error;
int checksum_len;
dev_t filesystem_dev; /* used to implement -x */
-@@ -116,6 +121,10 @@ static char empty_sum[MAX_DIGEST_LEN];
+@@ -117,6 +122,10 @@ static char empty_sum[MAX_DIGEST_LEN];
static int flist_count_offset; /* for --delete --progress */
static int dir_count = 0;
static int high_hlink_ndx;
static void clean_flist(struct file_list *flist, int strip_root);
static void output_flist(struct file_list *flist);
-@@ -332,6 +341,301 @@ static void flist_done_allocating(struct
+@@ -304,6 +313,301 @@ static void flist_done_allocating(struct
flist->pool_boundary = ptr;
}
int push_pathname(const char *dir, int len)
{
if (dir == pathname)
-@@ -1010,7 +1314,7 @@ struct file_struct *make_file(const char
+@@ -975,7 +1279,7 @@ struct file_struct *make_file(const char
STRUCT_STAT *stp, int flags, int filter_level)
{
static char *lastdir;
struct file_struct *file;
char thisname[MAXPATHLEN];
char linkname[MAXPATHLEN];
-@@ -1097,6 +1401,8 @@ struct file_struct *make_file(const char
+@@ -1065,6 +1369,8 @@ struct file_struct *make_file(const char
if (is_excluded(thisname, S_ISDIR(st.st_mode) != 0, filter_level)) {
if (ignore_perishable)
non_perishable_cnt++;
return NULL;
}
-@@ -1135,9 +1441,16 @@ struct file_struct *make_file(const char
+@@ -1105,9 +1411,16 @@ struct file_struct *make_file(const char
memcpy(lastdir, thisname, len);
lastdir[len] = '\0';
lastdir_len = len;
basename_len = strlen(basename) + 1; /* count the '\0' */
#ifdef SUPPORT_LINKS
-@@ -1213,11 +1526,44 @@ struct file_struct *make_file(const char
+@@ -1183,11 +1496,44 @@ struct file_struct *make_file(const char
}
#endif
/* This code is only used by the receiver when it is building
* a list of files for a delete pass. */
if (keep_dirlinks && linkname_len && flist) {
-@@ -1510,6 +1856,9 @@ static void send_directory(int f, struct
+@@ -1476,6 +1822,9 @@ static void send_directory(int f, struct
closedir(d);
if (f >= 0 && recurse && !divert_dirs) {
int i, end = flist->used - 1;
/* send_if_directory() bumps flist->used, so use "end". */
-@@ -1952,7 +2301,11 @@ struct file_list *send_file_list(int f,
+@@ -2034,7 +2383,11 @@ struct file_list *send_file_list(int f,
* file-list to check if this is a 1-file xfer. */
send_extra_file_list(f, 1);
}
return flist;
}
-@@ -2245,7 +2598,7 @@ void flist_free(struct file_list *flist)
+@@ -2320,7 +2673,7 @@ void flist_free(struct file_list *flist)
if (!flist->prev || !flist_cnt)
pool_destroy(flist->file_pool);
pool_free_old(flist->file_pool, flist->pool_boundary);
if (flist->sorted && flist->sorted != flist->files)
+--- old/ifuncs.h
++++ new/ifuncs.h
+@@ -64,6 +64,12 @@ isDigit(const char *ptr)
+ }
+
+ static inline int
++isXDigit(const char *ptr)
++{
++ return isxdigit(*(unsigned char *)ptr);
++}
++
++static inline int
+ isPrint(const char *ptr)
+ {
+ return isprint(*(unsigned char *)ptr);
--- old/loadparm.c
+++ new/loadparm.c
-@@ -152,6 +152,7 @@ typedef struct
+@@ -153,6 +153,7 @@ typedef struct
int syslog_facility;
int timeout;
BOOL fake_super;
BOOL ignore_errors;
BOOL ignore_nonreadable;
-@@ -200,6 +201,7 @@ static service sDefault =
+@@ -201,6 +202,7 @@ static service sDefault =
/* syslog_facility; */ LOG_DAEMON,
/* timeout; */ 0,
/* fake_super; */ False,
/* ignore_errors; */ False,
/* ignore_nonreadable; */ False,
-@@ -316,6 +318,7 @@ static struct parm_struct parm_table[] =
+@@ -317,6 +319,7 @@ static struct parm_struct parm_table[] =
{"lock file", P_STRING, P_LOCAL, &sDefault.lock_file, NULL,0},
{"log file", P_STRING, P_LOCAL, &sDefault.log_file, NULL,0},
{"log format", P_STRING, P_LOCAL, &sDefault.log_format, NULL,0},
{"max connections", P_INTEGER,P_LOCAL, &sDefault.max_connections, NULL,0},
{"max verbosity", P_INTEGER,P_LOCAL, &sDefault.max_verbosity, NULL,0},
{"name", P_STRING, P_LOCAL, &sDefault.name, NULL,0},
-@@ -421,6 +424,7 @@ FN_LOCAL_BOOL(lp_fake_super, fake_super)
+@@ -422,6 +425,7 @@ FN_LOCAL_BOOL(lp_fake_super, fake_super)
FN_LOCAL_BOOL(lp_ignore_errors, ignore_errors)
FN_LOCAL_BOOL(lp_ignore_nonreadable, ignore_nonreadable)
FN_LOCAL_BOOL(lp_list, list)
FN_LOCAL_BOOL(lp_transfer_logging, transfer_logging)
--- old/options.c
+++ new/options.c
-@@ -109,6 +109,7 @@ size_t bwlimit_writemax = 0;
+@@ -110,6 +110,7 @@ size_t bwlimit_writemax = 0;
int ignore_existing = 0;
int ignore_non_existing = 0;
int need_messages_from_generator = 0;
int max_delete = INT_MIN;
OFF_T max_size = 0;
OFF_T min_size = 0;
-@@ -309,6 +310,7 @@ void usage(enum logcode F)
+@@ -310,6 +311,7 @@ void usage(enum logcode F)
rprintf(F," -q, --quiet suppress non-error messages\n");
rprintf(F," --no-motd suppress daemon-mode MOTD (see manpage caveat)\n");
rprintf(F," -c, --checksum skip based on checksum, not mod-time & size\n");
{"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, 0, OPT_COMPARE_DEST, 0, 0 },
{"copy-dest", 0, POPT_ARG_STRING, 0, OPT_COPY_DEST, 0, 0 },
-@@ -1948,7 +1951,9 @@ void server_options(char **args, int *ar
+@@ -1958,7 +1961,9 @@ void server_options(char **args, int *ar
args[ac++] = basis_dir[i];
}
}
if (append_mode > 1)
--- old/rsync.h
+++ new/rsync.h
-@@ -631,6 +631,10 @@ extern int xattrs_ndx;
+@@ -639,6 +639,10 @@ extern int xattrs_ndx;
#define F_SUM(f) ((char*)OPT_EXTRA(f, LEN64_BUMP(f) + HLINK_BUMP(f) \
+ SUM_EXTRA_CNT - 1))
/* Some utility defines: */
#define F_IS_ACTIVE(f) (f)->basename[0]
#define F_IS_HLINKED(f) ((f)->flags & FLAG_HLINKED)
-@@ -1069,6 +1073,12 @@ isDigit(const char *ptr)
- }
-
- static inline int
-+isXDigit(const char *ptr)
-+{
-+ return isxdigit(*(unsigned char *)ptr);
-+}
-+
-+static inline int
- isPrint(const char *ptr)
- {
- return isprint(*(unsigned char *)ptr);
--- old/rsync.yo
+++ new/rsync.yo
@@ -322,6 +322,7 @@ to the detailed description below for a
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-@@ -519,9 +520,9 @@ uses a "quick check" that (by default) c
+@@ -520,9 +521,9 @@ uses a "quick check" that (by default) c
of last modification match between the sender and receiver. This option
changes this to compare a 128-bit MD4 checksum for each file that has a
matching size. Generating the checksums means that both sides will expend
The sending side generates its checksums while it is doing the file-system
scan that builds the list of the available files. The receiver generates
-@@ -529,12 +530,42 @@ its checksums when it is scanning for ch
+@@ -530,12 +531,42 @@ its checksums when it is scanning for ch
file that has the same size as the corresponding sender's file: files with
either a changed size or a changed checksum are selected for transfer.
everything (with -H being a notable omission).
--- old/rsyncd.conf.yo
+++ new/rsyncd.conf.yo
-@@ -198,6 +198,20 @@ locking on this file to ensure that the
+@@ -199,6 +199,20 @@ locking on this file to ensure that the
exceeded for the modules sharing the lock file.
The default is tt(/var/run/rsyncd.lock).