./configure (optional if already run)
make
+based-on: 181c9faf928faad08ef095f4667afe460ec3bef6
diff --git a/Makefile.in b/Makefile.in
-index feacb90..f9da8eb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -36,7 +36,7 @@ ZLIBOBJ=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
diff --git a/checksum.c b/checksum.c
-index 811b5b6..a7617af 100644
--- a/checksum.c
+++ b/checksum.c
@@ -23,6 +23,7 @@
unmap_file(buf);
}
diff --git a/cleanup.c b/cleanup.c
-index 19ef072..ca46868 100644
--- a/cleanup.c
+++ b/cleanup.c
@@ -25,6 +25,7 @@
int status;
int pid = wait_process(cleanup_child_pid, &status, WNOHANG);
diff --git a/clientserver.c b/clientserver.c
-index b6afe00..37cad54 100644
--- a/clientserver.c
+++ b/clientserver.c
@@ -42,13 +42,16 @@ extern int numeric_ids;
extern char *bind_address;
extern char *config_file;
extern char *logfile_format;
-@@ -648,6 +651,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -642,6 +645,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
log_init(1);
#ifdef HAVE_PUTENV
if (*lp_prexfer_exec(i) || *lp_postxfer_exec(i)) {
char *modname, *modpath, *hostaddr, *hostname, *username;
-@@ -856,6 +862,10 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -850,6 +856,10 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
am_server = 1; /* Don't let someone try to be tricky. */
quiet = 0;
ignore_errors = 1;
if (write_batch < 0)
diff --git a/configure.in b/configure.in
-index bc7d4a7..43d51ff 100644
--- a/configure.in
+++ b/configure.in
@@ -312,7 +312,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
AC_DEFINE(FORCE_FD_ZERO_MEMSET, 1, [Used to make "checker" understand that FD_ZERO() clears memory.])
diff --git a/db.c b/db.c
new file mode 100644
-index 0000000..6855488
--- /dev/null
+++ b/db.c
@@ -0,0 +1,566 @@
+ return 0;
+}
diff --git a/flist.c b/flist.c
-index 09b4fc5..8d280e9 100644
--- a/flist.c
+++ b/flist.c
@@ -54,6 +54,7 @@ extern int preserve_specials;
extern int eol_nulls;
extern int relative_paths;
extern int implied_dirs;
-@@ -1267,11 +1268,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1276,11 +1277,8 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
extra_len += EXTRA_LEN;
#endif
#if EXTRA_ROUNDING > 0
if (extra_len & (EXTRA_ROUNDING * EXTRA_LEN))
-@@ -1347,8 +1345,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1357,8 +1355,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
return NULL;
}
if (unsort_ndx)
F_NDX(file) = stats.num_dirs;
-@@ -2010,6 +2012,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2020,6 +2022,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
| (eol_nulls || reading_remotely ? RL_EOL_NULLS : 0);
int implied_dot_dir = 0;
if (show_filelist_p())
start_filelist_progress("building file list");
diff --git a/generator.c b/generator.c
-index 12007a1..315463f 100644
--- a/generator.c
+++ b/generator.c
@@ -60,6 +60,7 @@ extern int human_readable;
return memcmp(sum, F_SUM(file), checksum_len) == 0;
}
-@@ -2022,6 +2024,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2017,6 +2019,9 @@ void generate_files(int f_out, const char *local_name)
: "enabled");
}
* waiting for the other 2 processes to do their thing, we don't want
* to exit on a timeout. If the data stops flowing, the receiver will
diff --git a/loadparm.c b/loadparm.c
-index 8e48e6d..e6eaec8 100644
--- a/loadparm.c
+++ b/loadparm.c
@@ -107,6 +107,7 @@ typedef struct {
FN_LOCAL_STRING(lp_exclude, exclude)
FN_LOCAL_STRING(lp_exclude_from, exclude_from)
diff --git a/main.c b/main.c
-index 2ef2f47..ac88e12 100644
--- a/main.c
+++ b/main.c
@@ -49,6 +49,7 @@ extern int copy_unsafe_links;
extern char *shell_cmd;
extern char *batch_name;
extern char *password_file;
-@@ -1565,6 +1567,9 @@ int main(int argc,char *argv[])
+@@ -1577,6 +1579,9 @@ int main(int argc,char *argv[])
exit_cleanup(RERR_SYNTAX);
}
set_nonblocking(STDIN_FILENO);
set_nonblocking(STDOUT_FILENO);
diff --git a/options.c b/options.c
-index e7c6c61..d47cb7c 100644
--- a/options.c
+++ b/options.c
@@ -92,6 +92,7 @@ int use_qsort = 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 },
diff --git a/pipe.c b/pipe.c
-index a33117c..2f6aa21 100644
--- a/pipe.c
+++ b/pipe.c
@@ -27,6 +27,9 @@ extern int am_server;
if (dup2(to_child_pipe[0], STDIN_FILENO) < 0 ||
diff --git a/rsync.yo b/rsync.yo
-index 941f7a5..1b81189 100644
--- a/rsync.yo
+++ b/rsync.yo
@@ -323,6 +323,7 @@ to the detailed description below for a complete description. verb(
-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
-@@ -584,6 +585,47 @@ checksum that is generated as the file is transferred, but that
- automatic after-the-transfer verification has nothing to do with this
- option's before-the-transfer "Does this file need to be updated?" check.
+@@ -587,6 +588,47 @@ option's before-the-transfer "Does this file need to be updated?" check.
+ For protocol 30 and beyond (first supported in 3.0.0), the checksum used is
+ MD5. For older protocols, the checksum used is MD4.
+dit(bf(--db=CONFIG_FILE)) This option specifies a CONFIG_FILE to read
+that holds connection details for a database of checksum information.
way of saying you want recursion and want to preserve almost
everything (with -H being a notable omission).
diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
-index d4978cd..68c588c 100644
--- a/rsyncd.conf.yo
+++ b/rsyncd.conf.yo
@@ -281,6 +281,18 @@ is daemon. This setting has no effect if the "log file" setting is a
generate (since the information goes into the log file). The default is 1,
diff --git a/support/rsyncdb b/support/rsyncdb
new file mode 100755
-index 0000000..801068c
--- /dev/null
+++ b/support/rsyncdb
@@ -0,0 +1,331 @@