./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/acls.c b/acls.c
--- a/acls.c
+++ b/acls.c
Fix a bug that could lose some bits when stripping some (supposedly)
superfluous ACL info.
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/lib/sysacls.c b/lib/sysacls.c
--- a/lib/sysacls.c
+++ b/lib/sysacls.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -922,7 +922,8 @@ static struct poptOption long_options[] = {
+@@ -923,7 +923,8 @@ static struct poptOption long_options[] = {
{"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
{"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 0, 0 },
{"no-bwlimit", 0, POPT_ARG_VAL, &bwlimit, 0, 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 },
-@@ -2672,6 +2673,10 @@ void server_options(char **args, int *argc_p)
+@@ -2673,6 +2674,10 @@ void server_options(char **args, int *argc_p)
}
if (am_sender) {
char *sockopts = NULL;
char *usermap = NULL;
char *groupmap = NULL;
-@@ -926,7 +932,9 @@ static struct poptOption long_options[] = {
+@@ -927,7 +933,9 @@ static struct poptOption long_options[] = {
{"backup-deleted", 0, 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 },
{"list-only", 0, POPT_ARG_VAL, &list_only, 2, 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 },
-@@ -2137,6 +2145,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2138,6 +2146,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, SP_DEFAULT);
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, SP_DEFAULT);
}
if (daemon_filter_list.head && !am_sender) {
filter_rule_list *elp = &daemon_filter_list;
-@@ -2158,6 +2168,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2159,6 +2169,14 @@ int parse_arguments(int *argc_p, const char ***argv_p)
if (check_filter(elp, FLOG, dir, 1) < 0)
goto options_rejected;
}
}
if (!backup_suffix)
-@@ -2169,6 +2187,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2170,6 +2188,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
backup_suffix);
return 0;
}
if (backup_dir) {
size_t len;
while (*backup_dir == '.' && backup_dir[1] == '/')
-@@ -2204,6 +2236,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2205,6 +2237,34 @@ int parse_arguments(int *argc_p, const char ***argv_p)
"P *%s", backup_suffix);
parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0);
}
if (preserve_times) {
preserve_times = PRESERVE_FILE_TIMES;
-@@ -2647,6 +2707,10 @@ void server_options(char **args, int *argc_p)
+@@ -2648,6 +2708,10 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
}
/* Only send --suffix if it specifies a non-default value. */
if (strcmp(backup_suffix, backup_dir ? "" : BACKUP_SUFFIX) != 0) {
-@@ -2655,6 +2719,14 @@ void server_options(char **args, int *argc_p)
+@@ -2656,6 +2720,14 @@ void server_options(char **args, int *argc_p)
goto oom;
args[ac++] = arg;
}
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/errcode.h b/errcode.h
--- a/errcode.h
+++ b/errcode.h
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
int max_delete = INT_MIN;
OFF_T max_size = -1;
OFF_T min_size = -1;
-@@ -735,7 +736,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -736,7 +737,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
-@@ -886,6 +887,7 @@ static struct poptOption long_options[] = {
+@@ -887,6 +888,7 @@ static struct poptOption long_options[] = {
{"no-c", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 },
{"checksum-choice", 0, POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
{"cc", 0, POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
{"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 },
-@@ -1720,6 +1722,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1721,6 +1723,23 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
break;
case OPT_INFO:
arg = poptGetOptArg(pc);
parse_output_words(info_words, info_levels, arg, USER_PRIORITY);
-@@ -1989,6 +2008,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1990,6 +2009,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
#endif
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -1724,7 +1724,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1725,7 +1725,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
case OPT_SUMFILES:
arg = poptGetOptArg(pc);
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -736,7 +736,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -737,7 +737,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
-@@ -890,6 +890,7 @@ static struct poptOption long_options[] = {
+@@ -891,6 +891,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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -1145,6 +1146,9 @@ static void set_refuse_options(void)
+@@ -1146,6 +1147,9 @@ static void set_refuse_options(void)
#ifndef SUPPORT_HARD_LINKS
parse_one_refuse_match(0, "link-dest", list_end);
#endif
#ifndef ICONV_OPTION
parse_one_refuse_match(0, "iconv", list_end);
#endif
-@@ -1308,6 +1312,8 @@ char *alt_dest_opt(int type)
+@@ -1309,6 +1313,8 @@ char *alt_dest_opt(int type)
return "--copy-dest";
case LINK_DEST:
return "--link-dest";
default:
assert(0);
}
-@@ -1683,6 +1689,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1684,6 +1690,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
want_dest_type = LINK_DEST;
goto set_dest_dir;
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
int remove_source_files = 0;
int one_file_system = 0;
int protocol_version = PROTOCOL_VERSION;
-@@ -966,6 +968,8 @@ static struct poptOption long_options[] = {
+@@ -967,6 +969,8 @@ static struct poptOption long_options[] = {
{"outbuf", 0, POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 },
{"remote-option", 'M', POPT_ARG_STRING, 0, 'M', 0, 0 },
{"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 },
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int write_devices = 0;
int preserve_links = 0;
int preserve_hard_links = 0;
-@@ -810,6 +811,7 @@ static struct poptOption long_options[] = {
+@@ -811,6 +812,7 @@ static struct poptOption long_options[] = {
{"no-D", 0, POPT_ARG_NONE, 0, OPT_NO_D, 0, 0 },
{"devices", 0, POPT_ARG_VAL, &preserve_devices, 1, 0, 0 },
{"no-devices", 0, POPT_ARG_VAL, &preserve_devices, 0, 0, 0 },
{"write-devices", 0, POPT_ARG_VAL, &write_devices, 1, 0, 0 },
{"no-write-devices", 0, POPT_ARG_VAL, &write_devices, 0, 0, 0 },
{"specials", 0, POPT_ARG_VAL, &preserve_specials, 1, 0, 0 },
-@@ -1104,6 +1106,7 @@ static void set_refuse_options(void)
+@@ -1105,6 +1107,7 @@ static void set_refuse_options(void)
|| strcmp("iconv", longName) == 0
|| strcmp("no-iconv", longName) == 0
|| strcmp("checksum-seed", longName) == 0
|| strcmp("write-devices", longName) == 0 /* disable wild-match (it gets refused below) */
|| strcmp("log-format", longName) == 0 /* aka out-format (NOT log-file-format) */
|| strcmp("sender", longName) == 0
-@@ -1115,6 +1118,7 @@ static void set_refuse_options(void)
+@@ -1116,6 +1119,7 @@ static void set_refuse_options(void)
assert(list_end != NULL);
if (am_daemon) { /* Refused by default, but can be accepted via a negated exact match. */
parse_one_refuse_match(0, "write-devices", list_end);
}
-@@ -2836,6 +2840,9 @@ void server_options(char **args, int *argc_p)
+@@ -2837,6 +2841,9 @@ void server_options(char **args, int *argc_p)
else if (remove_source_files)
args[ac++] = "--remove-sent-files";
int update_only = 0;
int open_noatime = 0;
int cvs_exclude = 0;
-@@ -650,6 +651,11 @@ static void print_capabilities(enum logcode f)
+@@ -651,6 +652,11 @@ static void print_capabilities(enum logcode f)
#endif
"file-flags",
NULL
};
-@@ -799,6 +805,9 @@ static struct poptOption long_options[] = {
+@@ -800,6 +806,9 @@ static struct poptOption long_options[] = {
{"no-U", 0, POPT_ARG_VAL, &preserve_atimes, 0, 0, 0 },
{"open-noatime", 0, POPT_ARG_VAL, &open_noatime, 1, 0, 0 },
{"no-open-noatime", 0, POPT_ARG_VAL, &open_noatime, 0, 0, 0 },
{"omit-dir-times", 'O', POPT_ARG_VAL, &omit_dir_times, 1, 0, 0 },
{"no-omit-dir-times",0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
{"no-O", 0, POPT_ARG_VAL, &omit_dir_times, 0, 0, 0 },
-@@ -1174,6 +1183,9 @@ static void set_refuse_options(void)
+@@ -1175,6 +1184,9 @@ static void set_refuse_options(void)
parse_one_refuse_match(0, "force-uchange", list_end);
parse_one_refuse_match(0, "force-schange", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2515,6 +2527,10 @@ void server_options(char **args, int *argc_p)
+@@ -2516,6 +2528,10 @@ void server_options(char **args, int *argc_p)
if (preserve_atimes > 1)
argstr[x++] = 'U';
}
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int daemon_bwlimit = 0;
int bwlimit = 0;
int fuzzy_basis = 0;
-@@ -837,6 +838,7 @@ static struct poptOption long_options[] = {
+@@ -838,6 +839,7 @@ static struct poptOption long_options[] = {
{"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
{"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 },
{"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 },
{"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
-@@ -2723,6 +2725,9 @@ void server_options(char **args, int *argc_p)
+@@ -2724,6 +2726,9 @@ void server_options(char **args, int *argc_p)
else if (missing_args == 1 && !am_sender)
args[ac++] = "--ignore-missing-args";
./configure
make
-based-on: 0b2a394cbcebc3257f6a222f8123bd6f0bb23bc2
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
rounding.h: rounding.c rsync.h proto.h
@for r in 0 1 3; do \
if $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o rounding -DEXTRA_ROUNDING=$$r -I. $(srcdir)/rounding.c >rounding.out 2>&1; then \
-@@ -224,7 +234,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
+@@ -223,7 +233,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
awk -f $(srcdir)/mkproto.awk $(srcdir)/*.c $(srcdir)/lib/compat.c
.PHONY: man
rsync.1: rsync.1.md md2man NEWS.md Makefile
@$(srcdir)/maybe-make-man $(srcdir) rsync.1.md
-@@ -235,9 +245,12 @@ rsync-ssl.1: rsync-ssl.1.md md2man NEWS.md Makefile
+@@ -234,9 +244,12 @@ rsync-ssl.1: rsync-ssl.1.md md2man NEWS.md Makefile
rsyncd.conf.5: rsyncd.conf.5.md md2man NEWS.md Makefile
@$(srcdir)/maybe-make-man $(srcdir) rsyncd.conf.5.md
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -412,6 +412,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
+@@ -409,6 +409,7 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
unistd.h utime.h grp.h compat.h sys/param.h ctype.h sys/wait.h \
sys/ioctl.h sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h \
sys/un.h sys/attr.h mcheck.h arpa/inet.h arpa/nameser.h locale.h \
netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h \
sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h \
popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netinet/ip.h \
-@@ -1261,6 +1262,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
+@@ -1258,6 +1259,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
fi
fi
int connect_timeout = 0;
int keep_partial = 0;
int safe_symlinks = 0;
-@@ -273,6 +278,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
+@@ -276,6 +281,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
DEBUG_WORD(CHDIR, W_CLI|W_SRV, "Debug when the current directory changes"),
DEBUG_WORD(CONNECT, W_CLI, "Debug connection events (levels 1-2)"),
DEBUG_WORD(CMD, W_CLI, "Debug commands+options that are issued (levels 1-2)"),
DEBUG_WORD(DEL, W_REC, "Debug delete actions (levels 1-3)"),
DEBUG_WORD(DELTASUM, W_SND|W_REC, "Debug delta-transfer checksumming (levels 1-4)"),
DEBUG_WORD(DUP, W_REC, "Debug weeding of duplicate names"),
-@@ -643,6 +649,16 @@ static void print_capabilities(enum logcode f)
+@@ -644,6 +650,16 @@ static void print_capabilities(enum logcode f)
#endif
"SIMD",
NULL
};
-@@ -736,6 +752,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -737,6 +753,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
-@@ -886,6 +903,10 @@ static struct poptOption long_options[] = {
+@@ -887,6 +904,10 @@ static struct poptOption long_options[] = {
{"no-c", 0, POPT_ARG_VAL, &always_checksum, 0, 0, 0 },
{"checksum-choice", 0, POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
{"cc", 0, POPT_ARG_STRING, &checksum_choice, 0, 0, 0 },
{"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 },
-@@ -975,6 +996,9 @@ static struct poptOption long_options[] = {
+@@ -976,6 +997,9 @@ static struct poptOption long_options[] = {
{"dparam", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
{"detach", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 },
{"no-detach", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 },
{0,0,0,0, 0, 0, 0}
};
-@@ -1015,6 +1039,39 @@ static struct poptOption long_daemon_options[] = {
+@@ -1016,6 +1040,39 @@ static struct poptOption long_daemon_options[] = {
{0,0,0,0, 0, 0, 0}
};
static char err_buf[200];
-@@ -1140,6 +1197,8 @@ static void set_refuse_options(void)
+@@ -1141,6 +1198,8 @@ static void set_refuse_options(void)
parse_one_refuse_match(0, "iconv", list_end);
#endif
parse_one_refuse_match(0, "log-file*", list_end);
}
#ifndef SUPPORT_HARD_LINKS
-@@ -1278,6 +1337,102 @@ static void create_refuse_error(int which)
+@@ -1279,6 +1338,102 @@ static void create_refuse_error(int which)
snprintf(err_buf + n, sizeof err_buf - n, " (-%c)\n", op->shortName);
}
/* This is used to make sure that --daemon & --server cannot be aliased to
* something else. These options have always disabled popt aliases for the
* parsing of a daemon or server command-line, but we have to make sure that
-@@ -1334,6 +1489,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1335,6 +1490,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
return 0;
}
set_refuse_options();
#ifdef ICONV_OPTION
-@@ -1452,6 +1613,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1453,6 +1614,12 @@ int parse_arguments(int *argc_p, const char ***argv_p)
am_daemon = 1;
return 1;
case OPT_MODIFY_WINDOW:
/* The value has already been set by popt, but
* we need to remember that we're using a
-@@ -1526,6 +1693,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1527,6 +1694,10 @@ int parse_arguments(int *argc_p, const char ***argv_p)
preserve_devices = preserve_specials = 0;
break;
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -891,7 +891,9 @@ static struct poptOption long_options[] = {
+@@ -892,7 +892,9 @@ 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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -2709,8 +2711,14 @@ void server_options(char **args, int *argc_p)
+@@ -2710,8 +2712,14 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
a file that can't use it, while missing out on giving it to a file
that could use it.
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/backup.c b/backup.c
--- a/backup.c
+++ b/backup.c
int implied_dirs = 1;
int missing_args = 0; /* 0 = FERROR_XFER, 1 = ignore, 2 = delete */
int numeric_ids = 0;
-@@ -890,6 +891,7 @@ static struct poptOption long_options[] = {
+@@ -891,6 +892,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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -2295,7 +2297,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2296,7 +2298,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
inplace = 1;
}
partial_dir = tmp_partialdir;
if (inplace) {
-@@ -2304,6 +2306,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2305,6 +2307,7 @@ int parse_arguments(int *argc_p, const char ***argv_p)
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;
}
-@@ -2706,6 +2709,8 @@ void server_options(char **args, int *argc_p)
+@@ -2707,6 +2710,8 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
extern int module_id;
extern int local_server;
extern int sanitize_paths;
-@@ -910,6 +911,8 @@ static struct poptOption long_options[] = {
+@@ -911,6 +912,8 @@ static struct poptOption long_options[] = {
{"partial-dir", 0, POPT_ARG_STRING, &partial_dir, 0, 0, 0 },
{"delay-updates", 0, POPT_ARG_VAL, &delay_updates, 1, 0, 0 },
{"no-delay-updates", 0, POPT_ARG_VAL, &delay_updates, 0, 0, 0 },
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int update_only = 0;
int open_noatime = 0;
int cvs_exclude = 0;
-@@ -841,6 +842,7 @@ static struct poptOption long_options[] = {
+@@ -842,6 +843,7 @@ static struct poptOption long_options[] = {
{"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 },
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
int io_timeout = 0;
int prune_empty_dirs = 0;
int use_qsort = 0;
-@@ -643,6 +645,11 @@ static void print_capabilities(enum logcode f)
+@@ -644,6 +646,11 @@ static void print_capabilities(enum logcode f)
#endif
"SIMD",
NULL
};
-@@ -775,6 +782,8 @@ static struct poptOption long_options[] = {
+@@ -776,6 +783,8 @@ static struct poptOption long_options[] = {
{"perms", 'p', POPT_ARG_VAL, &preserve_perms, 1, 0, 0 },
{"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"executability", 'E', POPT_ARG_NONE, &preserve_executability, 0, 0, 0 },
{"acls", 'A', POPT_ARG_NONE, 0, 'A', 0, 0 },
{"no-acls", 0, POPT_ARG_VAL, &preserve_acls, 0, 0, 0 },
-@@ -868,6 +877,12 @@ static struct poptOption long_options[] = {
+@@ -869,6 +878,12 @@ static struct poptOption long_options[] = {
{"remove-source-files",0,POPT_ARG_VAL, &remove_source_files, 1, 0, 0 },
{"force", 0, POPT_ARG_VAL, &force_delete, 1, 0, 0 },
{"no-force", 0, POPT_ARG_VAL, &force_delete, 0, 0, 0 },
{"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 },
{"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
-@@ -1151,6 +1166,14 @@ static void set_refuse_options(void)
+@@ -1152,6 +1167,14 @@ static void set_refuse_options(void)
#ifndef HAVE_SETVBUF
parse_one_refuse_match(0, "outbuf", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2597,6 +2620,9 @@ void server_options(char **args, int *argc_p)
+@@ -2598,6 +2621,9 @@ void server_options(char **args, int *argc_p)
if (xfer_dirs && !recurse && delete_mode && am_sender)
args[ac++] = "--no-r";
if (do_compression && do_compression_level != CLVL_NOT_SPECIFIED) {
if (asprintf(&arg, "--compress-level=%d", do_compression_level) < 0)
goto oom;
-@@ -2700,6 +2726,16 @@ void server_options(char **args, int *argc_p)
+@@ -2701,6 +2727,16 @@ void server_options(char **args, int *argc_p)
args[ac++] = "--delete-excluded";
if (force_delete)
args[ac++] = "--force";
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
int ignore_times = 0;
int delete_mode = 0;
int delete_during = 0;
-@@ -945,6 +946,7 @@ static struct poptOption long_options[] = {
+@@ -946,6 +947,7 @@ static struct poptOption long_options[] = {
{"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 },
{"contimeout", 0, POPT_ARG_INT, &connect_timeout, 0, 0, 0 },
{"no-contimeout", 0, POPT_ARG_VAL, &connect_timeout, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
-@@ -2786,6 +2788,9 @@ void server_options(char **args, int *argc_p)
+@@ -2787,6 +2789,9 @@ void server_options(char **args, int *argc_p)
args[ac++] = tmpdir;
}
int preserve_perms = 0;
int preserve_fileflags = 0;
int preserve_executability = 0;
-@@ -892,6 +893,10 @@ static struct poptOption long_options[] = {
+@@ -893,6 +894,10 @@ static struct poptOption long_options[] = {
{"no-force-change", 0, POPT_ARG_VAL, &force_change, 0, 0, 0 },
{"force-uchange", 0, POPT_ARG_VAL, &force_change, USR_IMMUTABLE, 0, 0 },
{"force-schange", 0, POPT_ARG_VAL, &force_change, SYS_IMMUTABLE, 0, 0 },
{"ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 1, 0, 0 },
{"no-ignore-errors", 0, POPT_ARG_VAL, &ignore_errors, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
-@@ -1186,6 +1191,10 @@ static void set_refuse_options(void)
+@@ -1187,6 +1192,10 @@ static void set_refuse_options(void)
#ifndef SUPPORT_CRTIMES
parse_one_refuse_match(0, "crtimes", list_end);
#endif
/* Now we use the descrip values to actually mark the options for refusal. */
for (op = long_options; op != list_end; op++) {
-@@ -2024,6 +2033,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2025,6 +2034,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
#endif
if (block_size) {
/* We may not know the real protocol_version at this point if this is the client
* option parsing, but we still want to check it so that the client can specify
-@@ -2639,6 +2657,11 @@ void server_options(char **args, int *argc_p)
+@@ -2640,6 +2658,11 @@ void server_options(char **args, int *argc_p)
if (preserve_fileflags)
args[ac++] = "--fileflags";
- Make this code handle multibyte character encodings, and honor the
--iconv setting when converting case.
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
int blocking_io = -1;
int checksum_seed = 0;
int inplace = 0;
-@@ -930,6 +931,8 @@ static struct poptOption long_options[] = {
+@@ -931,6 +932,8 @@ static struct poptOption long_options[] = {
{"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 },
{"only-write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 },
{"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 },
{"from0", '0', POPT_ARG_VAL, &eol_nulls, 1, 0, 0},
{"no-from0", 0, POPT_ARG_VAL, &eol_nulls, 0, 0, 0},
-@@ -2736,6 +2739,9 @@ void server_options(char **args, int *argc_p)
+@@ -2737,6 +2740,9 @@ void server_options(char **args, int *argc_p)
args[ac++] = arg;
}
./configure
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -774,6 +774,31 @@ if test x"$enable_iconv" != x"no"; then
+@@ -848,6 +848,31 @@ if test x"$enable_iconv" != x"no"; then
AC_DEFINE(UTF8_CHARSET, "UTF-8", [String to pass to iconv() for the UTF-8 charset.])
fi
./configure
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
char *config_file = NULL;
char *shell_cmd = NULL;
char *logfile_name = NULL;
-@@ -212,7 +213,7 @@ static const char *debug_verbosity[] = {
+@@ -215,7 +216,7 @@ static const char *debug_verbosity[] = {
/*2*/ "BIND,CMD,CONNECT,DEL,DELTASUM,DUP,FILTER,FLIST,ICONV",
/*3*/ "ACL,BACKUP,CONNECT2,DELTASUM2,DEL2,EXIT,FILTER2,FLIST2,FUZZY,GENR,OWN,RECV,SEND,TIME",
/*4*/ "CMD2,DELTASUM3,DEL3,EXIT2,FLIST3,ICONV2,OWN2,PROTO,TIME2",
};
#define MAX_VERBOSITY ((int)(sizeof debug_verbosity / sizeof debug_verbosity[0]) - 1)
-@@ -282,6 +283,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
+@@ -285,6 +286,7 @@ static struct output_struct debug_words[COUNT_DEBUG+1] = {
DEBUG_WORD(FUZZY, W_REC, "Debug fuzzy scoring (levels 1-2)"),
DEBUG_WORD(GENR, W_REC, "Debug generator functions"),
DEBUG_WORD(HASH, W_SND|W_REC, "Debug hashtable code"),
DEBUG_WORD(HLINK, W_SND|W_REC, "Debug hard-link actions (levels 1-3)"),
DEBUG_WORD(ICONV, W_CLI|W_SRV, "Debug iconv character conversions (levels 1-2)"),
DEBUG_WORD(IO, W_CLI|W_SRV, "Debug I/O routines (levels 1-4)"),
-@@ -735,7 +737,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -736,7 +738,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
-@@ -890,6 +892,7 @@ static struct poptOption long_options[] = {
+@@ -891,6 +893,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, 0, 'y', 0, 0 },
{"no-fuzzy", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
{"no-y", 0, POPT_ARG_VAL, &fuzzy_basis, 0, 0, 0 },
-@@ -1134,6 +1137,9 @@ static void set_refuse_options(void)
+@@ -1135,6 +1138,9 @@ static void set_refuse_options(void)
ref = cp + 1;
}
if (am_daemon) {
#ifdef ICONV_OPTION
if (!*lp_charset(module_id))
-@@ -1832,6 +1838,21 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1833,6 +1839,21 @@ int parse_arguments(int *argc_p, const char ***argv_p)
return 0;
#endif
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -2136,6 +2157,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2137,6 +2158,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, SP_DEFAULT);
if (backup_dir)
backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, SP_DEFAULT);
}
if (daemon_filter_list.head && !am_sender) {
filter_rule_list *elp = &daemon_filter_list;
-@@ -2811,6 +2834,12 @@ void server_options(char **args, int *argc_p)
+@@ -2812,6 +2835,12 @@ void server_options(char **args, int *argc_p)
} else if (inplace)
args[ac++] = "--inplace";
fast fallback for the case where xxHash libraries are not available at
build time.
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
zlib/trees.o zlib/zutil.o zlib/adler32.o zlib/compress.o zlib/crc32.o
@@ -127,6 +127,9 @@ rounding.h: rounding.c rsync.h proto.h
simd-checksum-x86_64.o: simd-checksum-x86_64.cpp
- $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
+ $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $(srcdir)/simd-checksum-x86_64.cpp
+simd-md5-parallel-x86_64.o: simd-md5-parallel-x86_64.cpp
+ $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
+
lib/md5-asm-x86_64.o: lib/md5-asm-x86_64.s
- $(CC) -c -o $@ $<
+ $(CC) -c -o $@ $(srcdir)/lib/md5-asm-x86_64.s
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/authenticate.c b/authenticate.c
--- a/authenticate.c
+++ b/authenticate.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/access.c b/access.c
--- a/access.c
+++ b/access.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
int one_file_system = 0;
int protocol_version = PROTOCOL_VERSION;
int sparse_files = 0;
-@@ -796,6 +797,7 @@ static struct poptOption long_options[] = {
+@@ -797,6 +798,7 @@ static struct poptOption long_options[] = {
{"omit-link-times", 'J', POPT_ARG_VAL, &omit_link_times, 1, 0, 0 },
{"no-omit-link-times",0, POPT_ARG_VAL, &omit_link_times, 0, 0, 0 },
{"no-J", 0, POPT_ARG_VAL, &omit_link_times, 0, 0, 0 },
{"modify-window", '@', POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 },
{"super", 0, POPT_ARG_VAL, &am_root, 2, 0, 0 },
{"no-super", 0, POPT_ARG_VAL, &am_root, 0, 0, 0 },
-@@ -2204,6 +2206,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2205,6 +2207,9 @@ int parse_arguments(int *argc_p, const char ***argv_p)
parse_filter_str(&filter_list, backup_dir_buf, rule_template(0), 0);
}
if (preserve_times) {
preserve_times = PRESERVE_FILE_TIMES;
if (!omit_dir_times)
-@@ -2456,6 +2461,8 @@ void server_options(char **args, int *argc_p)
+@@ -2457,6 +2462,8 @@ void server_options(char **args, int *argc_p)
argstr[x++] = 'O';
if (omit_link_times)
argstr[x++] = 'J';
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
size_t bwlimit_writemax = 0;
int ignore_existing = 0;
int ignore_non_existing = 0;
-@@ -920,6 +921,7 @@ static struct poptOption long_options[] = {
+@@ -921,6 +922,7 @@ static struct poptOption long_options[] = {
{"itemize-changes", 'i', POPT_ARG_NONE, 0, 'i', 0, 0 },
{"no-itemize-changes",0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
{"no-i", 0, POPT_ARG_VAL, &itemize_changes, 0, 0, 0 },
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -833,6 +833,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -907,6 +907,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
fi
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -643,6 +643,11 @@ static void print_capabilities(enum logcode f)
+@@ -644,6 +644,11 @@ static void print_capabilities(enum logcode f)
#endif
"SIMD",
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
-- Matt McCutchen <hashproduct@gmail.com>
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
/**
* If 1, send the whole file as literal data rather than trying to
-@@ -923,6 +924,7 @@ static struct poptOption long_options[] = {
+@@ -924,6 +925,7 @@ static struct poptOption long_options[] = {
{"bwlimit", 0, POPT_ARG_STRING, &bwlimit_arg, OPT_BWLIMIT, 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 },
-@@ -2714,6 +2716,8 @@ void server_options(char **args, int *argc_p)
+@@ -2715,6 +2717,8 @@ void server_options(char **args, int *argc_p)
goto oom;
args[ac++] = arg;
}
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
char *rsync_path = RSYNC_PATH;
char *backup_dir = NULL;
char backup_dir_buf[MAXPATHLEN];
-@@ -837,6 +840,7 @@ static struct poptOption long_options[] = {
+@@ -838,6 +841,7 @@ static struct poptOption long_options[] = {
{"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
{"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 },
{"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 },
{"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
-@@ -963,6 +967,8 @@ static struct poptOption long_options[] = {
+@@ -964,6 +968,8 @@ static struct poptOption long_options[] = {
{"password-file", 0, POPT_ARG_STRING, &password_file, 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 },
{"outbuf", 0, POPT_ARG_STRING, &outbuf_mode, 0, 0, 0 },
{"remote-option", 'M', POPT_ARG_STRING, 0, 'M', 0, 0 },
{"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 },
-@@ -2339,6 +2345,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2340,6 +2346,16 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
}
if (files_from) {
char *h, *p;
int q;
-@@ -2723,6 +2739,25 @@ void server_options(char **args, int *argc_p)
+@@ -2724,6 +2740,25 @@ void server_options(char **args, int *argc_p)
else if (missing_args == 1 && !am_sender)
args[ac++] = "--ignore-missing-args";
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/fileio.c b/fileio.c
--- a/fileio.c
+++ b/fileio.c
int preallocate_files = 0;
int do_compression = 0;
int do_compression_level = CLVL_NOT_SPECIFIED;
-@@ -849,6 +850,7 @@ static struct poptOption long_options[] = {
+@@ -850,6 +851,7 @@ static struct poptOption long_options[] = {
{"sparse", 'S', POPT_ARG_VAL, &sparse_files, 1, 0, 0 },
{"no-sparse", 0, POPT_ARG_VAL, &sparse_files, 0, 0, 0 },
{"no-S", 0, POPT_ARG_VAL, &sparse_files, 0, 0, 0 },
{"preallocate", 0, POPT_ARG_NONE, &preallocate_files, 0, 0, 0},
{"inplace", 0, POPT_ARG_VAL, &inplace, 1, 0, 0 },
{"no-inplace", 0, POPT_ARG_VAL, &inplace, 0, 0, 0 },
-@@ -2630,6 +2632,12 @@ void server_options(char **args, int *argc_p)
+@@ -2631,6 +2633,12 @@ void server_options(char **args, int *argc_p)
args[ac++] = arg;
}
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/io.c b/io.c
--- a/io.c
+++ b/io.c
int max_delete = INT_MIN;
OFF_T max_size = -1;
OFF_T min_size = -1;
-@@ -738,6 +739,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
+@@ -739,6 +740,7 @@ enum {OPT_SERVER = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG,
OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT,
OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -945,6 +947,8 @@ static struct poptOption long_options[] = {
+@@ -946,6 +948,8 @@ static struct poptOption long_options[] = {
{"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 },
{"contimeout", 0, POPT_ARG_INT, &connect_timeout, 0, 0, 0 },
{"no-contimeout", 0, POPT_ARG_VAL, &connect_timeout, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
-@@ -1832,6 +1836,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1833,6 +1837,36 @@ int parse_arguments(int *argc_p, const char ***argv_p)
return 0;
#endif
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -2642,6 +2676,15 @@ void server_options(char **args, int *argc_p)
+@@ -2643,6 +2677,15 @@ void server_options(char **args, int *argc_p)
args[ac++] = arg;
}
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
#define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */
char *batch_name = NULL;
-@@ -950,6 +951,7 @@ static struct poptOption long_options[] = {
+@@ -951,6 +952,7 @@ static struct poptOption long_options[] = {
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
{"iconv", 0, POPT_ARG_STRING, &iconv_opt, 0, 0, 0 },
{"no-iconv", 0, POPT_ARG_NONE, 0, OPT_NO_ICONV, 0, 0 },
{"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 },
{"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 },
{"8-bit-output", '8', POPT_ARG_VAL, &allow_8bit_chars, 1, 0, 0 },
-@@ -2385,6 +2387,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2386,6 +2388,24 @@ int parse_arguments(int *argc_p, const char ***argv_p)
}
}
am_starting_up = 0;
return 1;
-@@ -2828,6 +2848,12 @@ void server_options(char **args, int *argc_p)
+@@ -2829,6 +2849,12 @@ void server_options(char **args, int *argc_p)
if (relative_paths && !implied_dirs && (!am_sender || protocol_version >= 30))
args[ac++] = "--no-implied-dirs";
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
./configure (optional if already run)
make
-based-on: 6f0c56304fdb3131a5c2a3af90761f0cfdc07f62
+based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
+++ b/checksum.c