#include "case_N.h"
--- old/clientserver.c
+++ new/clientserver.c
-@@ -396,6 +396,9 @@ static int rsync_module(int f_in, int f_
+@@ -410,6 +410,9 @@ static int rsync_module(int f_in, int f_
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
log_init(1);
#ifdef HAVE_PUTENV
if (*lp_prexfer_exec(i) || *lp_postxfer_exec(i)) {
-@@ -642,6 +645,9 @@ static int rsync_module(int f_in, int f_
+@@ -649,6 +652,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);
am_sender ? "on" : "to",
--- old/configure.in
+++ new/configure.in
-@@ -643,6 +643,12 @@ if test x"$with_included_popt" != x"yes"
+@@ -659,6 +659,12 @@ if test x"$with_included_popt" != x"yes"
AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes])
fi
+ automatically generates unique IDs). Defaults to True.
--- old/loadparm.c
+++ new/loadparm.c
-@@ -121,9 +121,16 @@ typedef struct
+@@ -124,9 +124,16 @@ typedef struct
{
char *auth_users;
char *comment;
char *filter;
char *gid;
char *hosts_allow;
-@@ -141,15 +148,21 @@ typedef struct
+@@ -144,15 +151,21 @@ typedef struct
char *prexfer_exec;
char *refuse_options;
char *secrets_file;
BOOL ignore_errors;
BOOL ignore_nonreadable;
BOOL list;
-@@ -169,9 +182,16 @@ static service sDefault =
+@@ -172,9 +185,16 @@ static service sDefault =
{
/* auth_users; */ NULL,
/* comment; */ NULL,
+ /* database_password; */ NULL,
+ /* database_username; */ NULL,
+ /* delete_table_name; */ NULL,
- /* dont_compress; */ "*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz",
+ /* dont_compress; */ DEFAULT_DONT_COMPRESS,
+ /* error_table_name; */ NULL,
/* exclude; */ NULL,
/* exclude_from; */ NULL,
/* filter; */ NULL,
/* gid; */ NOBODY_GROUP,
/* hosts_allow; */ NULL,
-@@ -189,15 +209,21 @@ static service sDefault =
+@@ -192,15 +212,21 @@ static service sDefault =
/* prexfer_exec; */ NULL,
/* refuse_options; */ NULL,
/* secrets_file; */ NULL,
/* ignore_errors; */ False,
/* ignore_nonreadable; */ False,
/* list; */ True,
-@@ -296,11 +322,20 @@ static struct parm_struct parm_table[] =
+@@ -299,11 +325,20 @@ static struct parm_struct parm_table[] =
{"auth users", P_STRING, P_LOCAL, &sDefault.auth_users, NULL,0},
{"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL,0},
{"gid", P_STRING, P_LOCAL, &sDefault.gid, NULL,0},
{"hosts allow", P_STRING, P_LOCAL, &sDefault.hosts_allow, NULL,0},
{"hosts deny", P_STRING, P_LOCAL, &sDefault.hosts_deny, NULL,0},
-@@ -325,12 +360,16 @@ static struct parm_struct parm_table[] =
+@@ -328,12 +363,16 @@ static struct parm_struct parm_table[] =
{"read only", P_BOOL, P_LOCAL, &sDefault.read_only, NULL,0},
{"refuse options", P_STRING, P_LOCAL, &sDefault.refuse_options, NULL,0},
{"secrets file", P_STRING, P_LOCAL, &sDefault.secrets_file, NULL,0},
{"use chroot", P_BOOL, P_LOCAL, &sDefault.use_chroot, NULL,0},
{"write only", P_BOOL, P_LOCAL, &sDefault.write_only, NULL,0},
{NULL, P_BOOL, P_NONE, NULL, NULL,0}
-@@ -386,9 +425,16 @@ FN_GLOBAL_INTEGER(lp_rsync_port, &Global
+@@ -389,9 +428,16 @@ FN_GLOBAL_INTEGER(lp_rsync_port, &Global
FN_LOCAL_STRING(lp_auth_users, auth_users)
FN_LOCAL_STRING(lp_comment, comment)
FN_LOCAL_STRING(lp_filter, filter)
FN_LOCAL_STRING(lp_gid, gid)
FN_LOCAL_STRING(lp_hosts_allow, hosts_allow)
-@@ -406,15 +452,21 @@ FN_LOCAL_STRING(lp_postxfer_exec, postxf
+@@ -409,15 +455,21 @@ FN_LOCAL_STRING(lp_postxfer_exec, postxf
FN_LOCAL_STRING(lp_prexfer_exec, prexfer_exec)
FN_LOCAL_STRING(lp_refuse_options, refuse_options)
FN_LOCAL_STRING(lp_secrets_file, secrets_file)
FN_LOCAL_BOOL(lp_list, list)
--- old/log.c
+++ new/log.c
-@@ -94,7 +94,7 @@ struct {
+@@ -96,7 +96,7 @@ struct {
/*
* Map from rsync error code to name, or return NULL.
*/
} else {
if (remove_source_files
|| (preserve_hard_links && F_IS_HLINKED(file)))
-@@ -447,6 +469,9 @@ int recv_files(int f_in, char *local_nam
+@@ -450,6 +472,9 @@ int recv_files(int f_in, char *local_nam
if (server_filter_list.head
&& check_filter(&server_filter_list, fname, 0) < 0) {
rprintf(FERROR, "attempt to hack rsync failed.\n");
exit_cleanup(RERR_PROTOCOL);
}
-@@ -503,6 +528,11 @@ int recv_files(int f_in, char *local_nam
+@@ -508,6 +533,11 @@ int recv_files(int f_in, char *local_nam
rprintf(FERROR,
"invalid basis_dir index: %d.\n",
fnamecmp_type);
exit_cleanup(RERR_PROTOCOL);
}
pathjoin(fnamecmpbuf, sizeof fnamecmpbuf,
-@@ -551,6 +581,9 @@ int recv_files(int f_in, char *local_nam
+@@ -556,6 +586,9 @@ int recv_files(int f_in, char *local_nam
} else if (do_fstat(fd1,&st) != 0) {
rsyserr(FERROR, errno, "fstat %s failed",
full_fname(fnamecmp));
+#endif
discard_receive_data(f_in, F_LENGTH(file));
close(fd1);
- continue;
-@@ -564,6 +597,9 @@ int recv_files(int f_in, char *local_nam
+ if (inc_recurse)
+@@ -571,6 +604,9 @@ int recv_files(int f_in, char *local_nam
*/
rprintf(FERROR,"recv_files: %s is a directory\n",
full_fname(fnamecmp));
+#endif
discard_receive_data(f_in, F_LENGTH(file));
close(fd1);
- continue;
-@@ -596,6 +632,9 @@ int recv_files(int f_in, char *local_nam
+ if (inc_recurse)
+@@ -605,6 +641,9 @@ int recv_files(int f_in, char *local_nam
if (fd2 == -1) {
rsyserr(FERROR, errno, "open %s failed",
full_fname(fname));
discard_receive_data(f_in, F_LENGTH(file));
if (fd1 != -1)
close(fd1);
-@@ -629,6 +668,10 @@ int recv_files(int f_in, char *local_nam
+@@ -642,6 +681,10 @@ int recv_files(int f_in, char *local_nam
if (fd2 == -1) {
rsyserr(FERROR, errno, "mkstemp %s failed",
full_fname(fnametmp));
discard_receive_data(f_in, F_LENGTH(file));
if (fd1 != -1)
close(fd1);
-@@ -649,12 +692,19 @@ int recv_files(int f_in, char *local_nam
+@@ -664,12 +707,19 @@ int recv_files(int f_in, char *local_nam
fname, fd2, F_LENGTH(file));
log_item(log_code, file, &initial_stats, iflags, NULL);
exit_cleanup(RERR_FILEIO);
}
-@@ -711,6 +761,12 @@ int recv_files(int f_in, char *local_nam
+@@ -726,6 +776,12 @@ int recv_files(int f_in, char *local_nam
rprintf(msgtype,
"%s: %s failed verification -- update %s%s.\n",
errstr, fname, keptstr, redostr);
send_msg_int(MSG_REDO, ndx);
--- old/sender.c
+++ new/sender.c
-@@ -341,6 +341,9 @@ void send_files(int f_in, int f_out)
+@@ -344,6 +344,9 @@ void send_files(int f_in, int f_out)
end_progress(st.st_size);
log_item(log_code, file, &initial_stats, iflags, NULL);
int numeric_ids = 0;
int allow_8bit_chars = 0;
int force_delete = 0;
-@@ -374,6 +375,7 @@ void usage(enum logcode F)
+@@ -375,6 +376,7 @@ void usage(enum logcode F)
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," -y, --fuzzy find similar file for basis if no dest file\n");
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");
-@@ -546,6 +548,7 @@ static struct poptOption long_options[]
+@@ -548,6 +550,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 },
{"fuzzy", 'y', POPT_ARG_NONE, &fuzzy_basis, 0, 0, 0 },
{"compress", 'z', POPT_ARG_NONE, 0, 'z', 0, 0 },
{"no-compress", 0, POPT_ARG_VAL, &do_compression, 0, 0, 0 },
-@@ -1488,7 +1491,7 @@ int parse_arguments(int *argc, const cha
+@@ -1491,7 +1494,7 @@ int parse_arguments(int *argc, const cha
inplace = 1;
}
partial_dir = tmp_partialdir;
if (inplace) {
-@@ -1497,6 +1500,7 @@ int parse_arguments(int *argc, const cha
+@@ -1500,6 +1503,7 @@ int parse_arguments(int *argc, const cha
snprintf(err_buf, sizeof err_buf,
"--%s cannot be used with --%s\n",
append_mode ? "append" : "inplace",
delay_updates ? "delay-updates" : "partial-dir");
return 0;
}
-@@ -1839,6 +1843,8 @@ void server_options(char **args,int *arg
+@@ -1842,6 +1846,8 @@ void server_options(char **args,int *arg
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
+ if (detect_renamed)
+ args[ac++] = "--detect-renamed";
- }
-
- if (modify_window_set) {
+ } else {
+ if (skip_compress) {
+ if (asprintf(&arg, "--skip-compress=%s", skip_compress) < 0)
--- old/rsync.yo
+++ new/rsync.yo
@@ -373,6 +373,7 @@ to the detailed description below for a
--compare-dest=DIR also compare received files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -1360,6 +1361,15 @@ Note that the use of the bf(--delete) op
+@@ -1361,6 +1362,15 @@ Note that the use of the bf(--delete) op
fuzzy-match files, so either use bf(--delete-after) or specify some
filename exclusions if you need to prevent this.
/**
* If 1, send the whole file as literal data rather than trying to
-@@ -351,6 +352,7 @@ void usage(enum logcode F)
+@@ -352,6 +353,7 @@ void usage(enum logcode F)
rprintf(F," --existing skip creating new files on receiver\n");
rprintf(F," --ignore-existing skip updating files that already exist on receiver\n");
rprintf(F," --remove-source-files sender removes synchronized files (non-dirs)\n");
rprintf(F," --del an alias for --delete-during\n");
rprintf(F," --delete delete extraneous files from destination dirs\n");
rprintf(F," --delete-before receiver deletes before transfer, not during\n");
-@@ -570,6 +572,7 @@ static struct poptOption long_options[]
+@@ -573,6 +575,7 @@ static struct poptOption long_options[]
{"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 },
{"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 0, 0 },
{"backup", 'b', POPT_ARG_VAL, &make_backups, 1, 0, 0 },
{"no-backup", 0, POPT_ARG_VAL, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-@@ -1836,7 +1839,8 @@ void server_options(char **args,int *arg
- args[ac++] = "--super";
- if (size_only)
- args[ac++] = "--size-only";
-- }
-+ } else if (make_source_backups)
-+ args[ac++] = "--source-backup";
+@@ -1848,6 +1851,8 @@ void server_options(char **args,int *arg
+ goto oom;
+ args[ac++] = arg;
+ }
++ if (make_source_backups)
++ args[ac++] = "--source-backup";
+ }
if (modify_window_set) {
- if (asprintf(&arg, "--modify-window=%d", modify_window) < 0)
--- old/rsync.yo
+++ new/rsync.yo
@@ -350,6 +350,7 @@ to the detailed description below for a
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
-@@ -1004,6 +1005,14 @@ dit(bf(--remove-source-files)) This tell
+@@ -1012,6 +1013,14 @@ dit(bf(--remove-source-files)) This tell
side the files (meaning non-directories) that are a part of the transfer
and have been successfully duplicated on the receiving side.