./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
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: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
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: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/errcode.h b/errcode.h
--- a/errcode.h
+++ b/errcode.h
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
extern int io_timeout;
extern int no_detach;
extern int write_batch;
-@@ -974,6 +976,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -973,6 +975,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
} else if (am_root < 0) /* Treat --fake-super from client as --super. */
am_root = 2;
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -177,6 +177,7 @@ typedef struct {
+@@ -173,6 +173,7 @@ typedef struct {
BOOL temp_dir_EXP;
BOOL uid_EXP;
int max_connections;
int max_verbosity;
int syslog_facility;
-@@ -294,6 +295,7 @@ static const all_vars Defaults = {
+@@ -290,6 +291,7 @@ static const all_vars Defaults = {
/* temp_dir_EXP; */ False,
/* uid_EXP; */ False,
/* max_connections; */ 0,
/* max_verbosity; */ 1,
/* syslog_facility; */ LOG_DAEMON,
-@@ -396,6 +398,13 @@ static struct enum_list enum_facilities[] = {
+@@ -392,6 +394,13 @@ static struct enum_list enum_facilities[] = {
{ -1, NULL }
};
static struct parm_struct parm_table[] =
{
{"address", P_STRING, P_GLOBAL,&Vars.g.bind_address, NULL,0},
-@@ -411,6 +420,7 @@ static struct parm_struct parm_table[] =
+@@ -407,6 +416,7 @@ static struct parm_struct parm_table[] =
{"auth users", P_STRING, P_LOCAL, &Vars.l.auth_users, NULL,0},
{"charset", P_STRING, P_LOCAL, &Vars.l.charset, NULL,0},
{"comment", P_STRING, P_LOCAL, &Vars.l.comment, NULL,0},
{"dont compress", P_STRING, P_LOCAL, &Vars.l.dont_compress, NULL,0},
{"early exec", P_STRING, P_LOCAL, &Vars.l.early_exec, NULL,0},
-@@ -579,6 +589,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
+@@ -575,6 +585,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
FN_LOCAL_STRING(lp_temp_dir, temp_dir)
FN_LOCAL_STRING(lp_uid, uid)
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -402,6 +402,10 @@ static struct enum_list enum_csum_modes[] = {
+@@ -398,6 +398,10 @@ static struct enum_list enum_csum_modes[] = {
{ CSF_IGNORE_FILES, "none" },
{ CSF_LAX_MODE, "lax" },
{ CSF_STRICT_MODE, "strict" },
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
--compress, -z compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
-@@ -2244,6 +2245,17 @@ your home directory (remove the '=' for that).
+@@ -2246,6 +2247,17 @@ your home directory (remove the '=' for that).
specified (or implied by `-a`). You can work-around this bug by avoiding
the `-o` option when sending to an old rsync.
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -123,6 +123,7 @@ typedef struct {
+@@ -119,6 +119,7 @@ typedef struct {
char *auth_users;
char *charset;
char *comment;
char *dont_compress;
char *early_exec;
char *exclude;
-@@ -152,6 +153,7 @@ typedef struct {
+@@ -148,6 +149,7 @@ typedef struct {
BOOL auth_users_EXP;
BOOL charset_EXP;
BOOL comment_EXP;
BOOL dont_compress_EXP;
BOOL early_exec_EXP;
BOOL exclude_EXP;
-@@ -177,6 +179,7 @@ typedef struct {
+@@ -173,6 +175,7 @@ typedef struct {
BOOL temp_dir_EXP;
BOOL uid_EXP;
int max_connections;
int max_verbosity;
int syslog_facility;
-@@ -241,6 +244,7 @@ static const all_vars Defaults = {
+@@ -237,6 +240,7 @@ static const all_vars Defaults = {
/* auth_users; */ NULL,
/* charset; */ NULL,
/* comment; */ NULL,
/* dont_compress; */ DEFAULT_DONT_COMPRESS,
/* early_exec; */ NULL,
/* exclude; */ NULL,
-@@ -269,6 +273,7 @@ static const all_vars Defaults = {
+@@ -265,6 +269,7 @@ static const all_vars Defaults = {
/* auth_users_EXP; */ False,
/* charset_EXP; */ False,
/* comment_EXP; */ False,
/* dont_compress_EXP; */ False,
/* early_exec_EXP; */ False,
/* exclude_EXP; */ False,
-@@ -294,6 +299,7 @@ static const all_vars Defaults = {
+@@ -290,6 +295,7 @@ static const all_vars Defaults = {
/* temp_dir_EXP; */ False,
/* uid_EXP; */ False,
/* max_connections; */ 0,
/* max_verbosity; */ 1,
/* syslog_facility; */ LOG_DAEMON,
-@@ -412,6 +418,8 @@ static struct parm_struct parm_table[] =
+@@ -408,6 +414,8 @@ static struct parm_struct parm_table[] =
{"auth users", P_STRING, P_LOCAL, &Vars.l.auth_users, NULL,0},
{"charset", P_STRING, P_LOCAL, &Vars.l.charset, NULL,0},
{"comment", P_STRING, P_LOCAL, &Vars.l.comment, NULL,0},
{"dont compress", P_STRING, P_LOCAL, &Vars.l.dont_compress, NULL,0},
{"early exec", P_STRING, P_LOCAL, &Vars.l.early_exec, NULL,0},
{"exclude from", P_STRING, P_LOCAL, &Vars.l.exclude_from, NULL,0},
-@@ -554,6 +562,7 @@ FN_GLOBAL_BOOL(lp_proxy_protocol, proxy_protocol)
+@@ -550,6 +558,7 @@ FN_GLOBAL_BOOL(lp_proxy_protocol, proxy_protocol)
FN_LOCAL_STRING(lp_auth_users, auth_users)
FN_LOCAL_STRING(lp_charset, charset)
FN_LOCAL_STRING(lp_comment, comment)
FN_LOCAL_STRING(lp_dont_compress, dont_compress)
FN_LOCAL_STRING(lp_early_exec, early_exec)
FN_LOCAL_STRING(lp_exclude, exclude)
-@@ -579,6 +588,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
+@@ -575,6 +584,7 @@ FN_LOCAL_STRING(lp_syslog_tag, syslog_tag)
FN_LOCAL_STRING(lp_temp_dir, temp_dir)
FN_LOCAL_STRING(lp_uid, uid)
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
0. `--omit-dir-times`, `-O`
This tells rsync to omit directories when it is preserving modification
-@@ -2537,7 +2543,7 @@ your home directory (remove the '=' for that).
+@@ -2570,7 +2576,7 @@ your home directory (remove the '=' for that).
output of other verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
of update being done, **X** is replaced by the file-type, and the other
letters represent attributes that may be output if they are being modified.
-@@ -2594,6 +2600,8 @@ your home directory (remove the '=' for that).
+@@ -2627,6 +2633,8 @@ your home directory (remove the '=' for that).
happens when a symlink or directory is updated.
- The `a` means that the ACL information changed.
- The `x` means that the extended attribute information changed.
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
-@@ -263,6 +263,8 @@ static void add_rule(filter_rule_list *listp, const char *pat, unsigned int pat_
+@@ -264,6 +264,8 @@ static void add_rule(filter_rule_list *listp, const char *pat, unsigned int pat_
if (!(lp = new_array0(filter_rule_list, 1)))
out_of_memory("add_rule");
if (asprintf(&lp->debug_type, " [per-dir %s]", cp) < 0)
out_of_memory("add_rule");
rule->u.mergelist = lp;
-@@ -532,6 +534,14 @@ void *push_local_filters(const char *dir, unsigned int dirlen)
+@@ -533,6 +535,14 @@ void *push_local_filters(const char *dir, unsigned int dirlen)
set_filter_dir(dir, dirlen);
}
if (strlcpy(dirbuf + dirbuf_len, ex->pattern,
MAXPATHLEN - dirbuf_len) < MAXPATHLEN - dirbuf_len) {
parse_filter_file(lp, dirbuf, ex,
-@@ -1175,6 +1185,7 @@ void parse_filter_file(filter_rule_list *listp, const char *fname, const filter_
+@@ -1166,6 +1176,7 @@ void parse_filter_file(filter_rule_list *listp, const char *fname, const filter_
char line[BIGPATHBUFLEN];
char *eob = line + sizeof line - 1;
BOOL word_split = (template->rflags & FILTRULE_WORD_SPLIT) != 0;
if (!fname || !*fname)
return;
-@@ -1221,6 +1232,24 @@ void parse_filter_file(filter_rule_list *listp, const char *fname, const filter_
+@@ -1212,6 +1223,24 @@ void parse_filter_file(filter_rule_list *listp, const char *fname, const filter_
}
break;
}
if (word_split && isspace(ch))
break;
if (eol_nulls? !ch : (ch == '\n' || ch == '\r'))
-@@ -1230,13 +1259,14 @@ void parse_filter_file(filter_rule_list *listp, const char *fname, const filter_
+@@ -1221,13 +1250,14 @@ void parse_filter_file(filter_rule_list *listp, const char *fname, const filter_
else
overflow = 1;
}
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure
make
-based-on: b5e539fc5aa52b94608dbb976981930c03213a78
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
libdir=@libdir@/rsync
mandir=@mandir@
-@@ -33,8 +34,9 @@ VERSION=@RSYNC_VERSION@
+@@ -34,8 +35,9 @@ VERSION=@RSYNC_VERSION@
SIMD_x86_64=simd-checksum-x86_64.o lib/md5-asm-x86_64.o
HEADERS=byteorder.h config.h errcode.h proto.h rsync.h ifuncs.h itypes.h inums.h \
lib/pool_alloc.h
LIBOBJ=lib/wildmatch.o lib/compat.o lib/snprintf.o lib/mdfour.o lib/md5.o \
-@@ -44,7 +46,7 @@ zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
+@@ -45,7 +47,7 @@ zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
OBJS3=progress.o pipe.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 \
-@@ -76,10 +78,12 @@ install: all
+@@ -77,10 +79,12 @@ install: all
-${MKDIR_P} ${DESTDIR}${bindir}
${INSTALLCMD} ${INSTALL_STRIP} -m 755 rsync$(EXEEXT) ${DESTDIR}${bindir}
${INSTALLCMD} -m 755 rsync-ssl ${DESTDIR}${bindir}
if test -f rsyncd.conf.5; then ${INSTALLMAN} -m 644 rsyncd.conf.5 ${DESTDIR}${mandir}/man5; fi
install-ssl-daemon: stunnel-rsyncd.conf
-@@ -97,9 +101,12 @@ install-strip:
+@@ -98,10 +102,13 @@ install-strip:
rsync$(EXEEXT): $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
$(OBJS): $(HEADERS)
$(CHECK_OBJS): $(HEADERS)
+ tls.o xattrs.o: lib/sysxattrs.h
-options.o: latest-year.h help-rsync.h help-rsyncd.h
+options.o: latest-year.h help-rsync.h help-rsyncd.h help-rsyncdb.h
exclude.o: default-cvsignore.h
loadparm.o: default-dont-compress.h
-@@ -111,6 +118,9 @@ default-cvsignore.h default-dont-compress.h: rsync.1.md define-from-md.awk
+@@ -113,6 +120,9 @@ default-cvsignore.h default-dont-compress.h: rsync.1.md define-from-md.awk
help-rsync.h help-rsyncd.h: rsync.1.md help-from-md.awk
- awk -f $(srcdir)/help-from-md.awk -v hfile=$@ $(srcdir)/rsync.1.md
+ $(AWK) -f $(srcdir)/help-from-md.awk -v hfile=$@ $(srcdir)/rsync.1.md
+help-rsyncdb.h: rsyncdb.1.md help-from-md.awk
+ awk -f $(srcdir)/help-from-md.awk -v hfile=$@ $(srcdir)/rsyncdb.1.md
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 \
-@@ -228,7 +238,7 @@ proto.h-tstamp: $(srcdir)/*.c $(srcdir)/lib/compat.c config.h
- awk -f $(srcdir)/mkproto.awk $(srcdir)/*.c $(srcdir)/lib/compat.c
+@@ -230,7 +240,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
-man: rsync.1 rsync-ssl.1 rsyncd.conf.5
rsync.1: rsync.1.md md2man NEWS.md Makefile
@$(srcdir)/maybe-make-man $(srcdir) rsync.1.md
-@@ -239,9 +249,12 @@ rsync-ssl.1: rsync-ssl.1.md md2man NEWS.md Makefile
+@@ -241,9 +251,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
extern char *bind_address;
extern char *config_file;
extern char *logfile_format;
-@@ -775,6 +778,11 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -774,6 +777,11 @@ 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_early_exec(i) || *lp_prexfer_exec(i) || *lp_postxfer_exec(i))
&& !getenv("RSYNC_NO_XFER_EXEC")) {
-@@ -962,6 +970,8 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -961,6 +969,8 @@ 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;
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 \
+@@ -439,6 +439,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"
+@@ -1288,6 +1289,48 @@ if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"
fi
fi
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -2177,6 +2179,17 @@ your home directory (remove the '=' for that).
+@@ -2179,6 +2181,17 @@ your home directory (remove the '=' for that).
otential alternate-basis files will be removed as the transfer progresses.
This option conflicts with `--inplace` and `--append`.
a file that can't use it, while missing out on giving it to a file
that could use it.
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/backup.c b/backup.c
--- a/backup.c
+++ b/backup.c
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-@@ -2160,6 +2161,22 @@ your home directory (remove the '=' for that).
+@@ -2162,6 +2163,22 @@ your home directory (remove the '=' for that).
fuzzy-match files, so either use `--delete-after` or specify some filename
exclusions if you need to prevent this.
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
--prune-empty-dirs, -m prune empty directory chains from file-list
--numeric-ids don't map uid/gid values by user/group name
--usermap=STRING custom username mapping
-@@ -2813,6 +2814,16 @@ your home directory (remove the '=' for that).
+@@ -2846,6 +2847,16 @@ your home directory (remove the '=' for that).
update algorithm that is even more atomic (it uses `--link-dest` and a
parallel hierarchy of files).
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/compat.c b/compat.c
--- a/compat.c
+++ b/compat.c
0. `--max-delete=NUM`
-@@ -2507,7 +2537,7 @@ your home directory (remove the '=' for that).
+@@ -2540,7 +2570,7 @@ your home directory (remove the '=' for that).
output of other verbose messages).
The "%i" escape has a cryptic output that is 11 letters long. The general
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
-@@ -44,10 +44,13 @@ filter_rule_list filter_list = { .debug_type = "" };
+@@ -45,10 +45,13 @@ filter_rule_list filter_list = { .debug_type = "" };
filter_rule_list cvs_filter_list = { .debug_type = " [global CVS]" };
filter_rule_list daemon_filter_list = { .debug_type = " [daemon]" };
#define SLASH_WILD3_SUFFIX "/***"
-@@ -126,8 +129,27 @@ static void teardown_mergelist(filter_rule *ex)
+@@ -127,8 +130,27 @@ static void teardown_mergelist(filter_rule *ex)
mergelist_cnt--;
}
if (ex->rflags & FILTRULE_PERDIR_MERGE)
teardown_mergelist(ex);
free(ex->pattern);
-@@ -729,7 +751,9 @@ static void report_filter_result(enum logcode code, char const *name,
+@@ -730,7 +752,9 @@ static void report_filter_result(enum logcode code, char const *name,
/* This function is used to check if a file should be included/excluded
* from the list of files based on its name and type etc. The value of
int name_is_excluded(const char *fname, int name_flags, int filter_level)
{
if (daemon_filter_list.head && check_filter(&daemon_filter_list, FLOG, fname, name_flags) < 0) {
-@@ -738,6 +762,9 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
+@@ -739,6 +763,9 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
return 1;
}
if (filter_level != ALL_FILTERS)
return 0;
-@@ -748,7 +775,8 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
+@@ -749,7 +776,8 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
}
/* Return -1 if file "name" is defined to be excluded by the specified
int check_filter(filter_rule_list *listp, enum logcode code,
const char *name, int name_flags)
{
-@@ -771,10 +799,12 @@ int check_filter(filter_rule_list *listp, enum logcode code,
+@@ -772,10 +800,12 @@ int check_filter(filter_rule_list *listp, enum logcode code,
}
if (rule_matches(name, ent, name_flags)) {
report_filter_result(code, name, ent, name_flags, listp->debug_type);
return 0;
}
-@@ -791,9 +821,46 @@ static const uchar *rule_strcmp(const uchar *str, const char *rule, int rule_len
+@@ -792,9 +822,46 @@ static const uchar *rule_strcmp(const uchar *str, const char *rule, int rule_len
return NULL;
}
/* Gets the next include/exclude rule from *rulestr_ptr and advances
* *rulestr_ptr to point beyond it. Stores the pattern's start (within
-@@ -808,6 +875,7 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -809,6 +876,7 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
const char **pat_ptr, unsigned int *pat_len_ptr)
{
const uchar *s = (const uchar *)*rulestr_ptr;
filter_rule *rule;
unsigned int len;
-@@ -827,6 +895,12 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -828,6 +896,12 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
/* Inherit from the template. Don't inherit FILTRULES_SIDES; we check
* that later. */
rule->rflags = template->rflags & FILTRULES_FROM_CONTAINER;
/* Figure out what kind of a filter rule "s" is pointing at. Note
* that if FILTRULE_NO_PREFIXES is set, the rule is either an include
-@@ -972,11 +1046,63 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -973,11 +1047,63 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
goto invalid;
rule->rflags |= FILTRULE_EXCLUDE_SELF;
break;
case 'p':
rule->rflags |= FILTRULE_PERISHABLE;
break;
-@@ -1301,6 +1427,23 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
+@@ -1292,6 +1418,23 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
else if (am_sender)
return NULL;
}
See the `--perms` and `--executability` options for how the resulting
permission value can be applied to the files in the transfer.
-@@ -2444,6 +2446,10 @@ your home directory (remove the '=' for that).
+@@ -2476,6 +2478,10 @@ your home directory (remove the '=' for that).
If you specify "`--chown=foo:bar`", this is exactly the same as specifying
"`--usermap=*:foo --groupmap=*:bar`", only easier.
0. `--timeout=TIMEOUT`
This option allows you to set a maximum I/O timeout in seconds. If no data
-@@ -3382,6 +3388,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
+@@ -3413,6 +3419,15 @@ The following modifiers are accepted after a "`+`" or "`-`":
rules that exclude things like "CVS" and "`*.o`" are marked as perishable,
and will not prevent a directory that was removed on the source from being
deleted on the destination.
- An `x` indicates that a rule affects xattr names in xattr copy/delete
operations (and is thus ignored when matching file/dir names). If no
xattr-matching rules are specified, a default xattr filtering rule is used
-@@ -3439,6 +3454,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
+@@ -3470,6 +3485,12 @@ The following modifiers are accepted after a merge or dir-merge rule:
rules in the file must not specify sides (via a modifier or a rule prefix
such as `hide`).
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
- Make this code handle multibyte character encodings, and honor the
--iconv setting when converting case.
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/exclude.c b/exclude.c
--- a/exclude.c
+++ b/exclude.c
#include "rsync.h"
+#include "ifuncs.h"
+ #include "default-cvsignore.h"
extern int am_server;
- extern int am_sender;
-@@ -690,16 +691,15 @@ static int rule_matches(const char *fname, filter_rule *ex, int name_flags)
+@@ -691,16 +692,15 @@ static int rule_matches(const char *fname, filter_rule *ex, int name_flags)
if (litmatch_array(pattern, strings, slash_handling))
return ret_match;
} else if (anchored_match) {
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
-@@ -2108,6 +2109,12 @@ your home directory (remove the '=' for that).
+@@ -2110,6 +2111,12 @@ your home directory (remove the '=' for that).
> sudo rsync -aive lsh -M--copy-as=joe src/ lh:dest/
./configure
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
-@@ -45,7 +45,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -46,7 +46,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
if (strcmp(line,"@RSYNCD: OK") == 0)
break;
-@@ -651,7 +662,12 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -650,7 +661,12 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
}
read_only = lp_read_only(i); /* may also be overridden by auth_server() */
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -848,6 +848,31 @@ if test x"$enable_iconv" != x"no"; then
+@@ -878,6 +878,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
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -194,6 +194,7 @@ typedef struct {
+@@ -190,6 +190,7 @@ typedef struct {
BOOL strict_modes;
BOOL transfer_logging;
BOOL use_chroot;
BOOL write_only;
} local_vars;
-@@ -311,6 +312,7 @@ static const all_vars Defaults = {
+@@ -307,6 +308,7 @@ static const all_vars Defaults = {
/* strict_modes; */ True,
/* transfer_logging; */ False,
/* use_chroot; */ True,
/* write_only; */ False,
}
};
-@@ -454,6 +456,7 @@ static struct parm_struct parm_table[] =
+@@ -450,6 +452,7 @@ static struct parm_struct parm_table[] =
{"transfer logging", P_BOOL, P_LOCAL, &Vars.l.transfer_logging, NULL,0},
{"uid", P_STRING, P_LOCAL, &Vars.l.uid, NULL,0},
{"use chroot", P_BOOL, P_LOCAL, &Vars.l.use_chroot, NULL,0},
{"write only", P_BOOL, P_LOCAL, &Vars.l.write_only, NULL,0},
{NULL, P_BOOL, P_NONE, NULL, NULL,0}
};
-@@ -596,6 +599,7 @@ FN_LOCAL_BOOL(lp_reverse_lookup, reverse_lookup)
+@@ -592,6 +595,7 @@ FN_LOCAL_BOOL(lp_reverse_lookup, reverse_lookup)
FN_LOCAL_BOOL(lp_strict_modes, strict_modes)
FN_LOCAL_BOOL(lp_transfer_logging, transfer_logging)
FN_LOCAL_BOOL(lp_use_chroot, use_chroot)
./configure
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
-@@ -45,7 +45,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -46,7 +46,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
util.o util2.o main.o checksum.o match.o syscall.o log.o backup.o delete.o
OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
extern char *logfile_format;
extern char *files_from;
extern char *tmpdir;
-@@ -631,6 +632,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -630,6 +631,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
return -1;
}
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -134,6 +134,7 @@ typedef struct {
+@@ -130,6 +130,7 @@ typedef struct {
char *include;
char *include_from;
char *incoming_chmod;
char *lock_file;
char *log_file;
char *log_format;
-@@ -163,6 +164,7 @@ typedef struct {
+@@ -159,6 +160,7 @@ typedef struct {
BOOL include_EXP;
BOOL include_from_EXP;
BOOL incoming_chmod_EXP;
BOOL lock_file_EXP;
BOOL log_file_EXP;
BOOL log_format_EXP;
-@@ -252,6 +254,7 @@ static const all_vars Defaults = {
+@@ -248,6 +250,7 @@ static const all_vars Defaults = {
/* include; */ NULL,
/* include_from; */ NULL,
/* incoming_chmod; */ NULL,
/* lock_file; */ DEFAULT_LOCK_FILE,
/* log_file; */ NULL,
/* log_format; */ "%o %h [%a] %m (%u) %f %l",
-@@ -280,6 +283,7 @@ static const all_vars Defaults = {
+@@ -276,6 +279,7 @@ static const all_vars Defaults = {
/* include_EXP; */ False,
/* include_from_EXP; */ False,
/* incoming_chmod_EXP; */ False,
/* lock_file_EXP; */ False,
/* log_file_EXP; */ False,
/* log_format_EXP; */ False,
-@@ -427,6 +431,7 @@ static struct parm_struct parm_table[] =
+@@ -423,6 +427,7 @@ static struct parm_struct parm_table[] =
{"include from", P_STRING, P_LOCAL, &Vars.l.include_from, NULL,0},
{"include", P_STRING, P_LOCAL, &Vars.l.include, NULL,0},
{"incoming chmod", P_STRING, P_LOCAL, &Vars.l.incoming_chmod, NULL,0},
{"list", P_BOOL, P_LOCAL, &Vars.l.list, NULL,0},
{"lock file", P_STRING, P_LOCAL, &Vars.l.lock_file, NULL,0},
{"log file", P_STRING, P_LOCAL, &Vars.l.log_file, NULL,0},
-@@ -565,6 +570,7 @@ FN_LOCAL_STRING(lp_hosts_deny, hosts_deny)
+@@ -561,6 +566,7 @@ FN_LOCAL_STRING(lp_hosts_deny, hosts_deny)
FN_LOCAL_STRING(lp_include, include)
FN_LOCAL_STRING(lp_include_from, include_from)
FN_LOCAL_STRING(lp_incoming_chmod, incoming_chmod)
--compress, -z compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
-@@ -2244,6 +2245,50 @@ your home directory (remove the '=' for that).
+@@ -2246,6 +2247,50 @@ your home directory (remove the '=' for that).
specified (or implied by `-a`). You can work-around this bug by avoiding
the `-o` option when sending to an old rsync.
fast fallback for the case where xxHash libraries are not available at
build time.
-based-on: 3c56896d2153148da2c3ac876b725968044a815f
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/authenticate.c b/authenticate.c
--- a/authenticate.c
+++ b/authenticate.c
#ifdef HAVE_SIGACTION
static struct sigaction sigact;
-@@ -776,7 +778,7 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -775,7 +777,7 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
log_init(1);
#ifdef HAVE_PUTENV
&& !getenv("RSYNC_NO_XFER_EXEC")) {
set_env_num("RSYNC_PID", (long)getpid());
-@@ -836,6 +838,45 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -835,6 +837,45 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
return -1;
}
}
}
#endif
-@@ -1077,6 +1118,44 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -1076,6 +1117,44 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
return 0;
}
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -138,6 +138,7 @@ typedef struct {
+@@ -134,6 +134,7 @@ typedef struct {
char *log_file;
char *log_format;
char *name;
char *outgoing_chmod;
char *path;
char *postxfer_exec;
-@@ -167,6 +168,7 @@ typedef struct {
+@@ -163,6 +164,7 @@ typedef struct {
BOOL log_file_EXP;
BOOL log_format_EXP;
BOOL name_EXP;
BOOL outgoing_chmod_EXP;
BOOL path_EXP;
BOOL postxfer_exec_EXP;
-@@ -256,6 +258,7 @@ static const all_vars Defaults = {
+@@ -252,6 +254,7 @@ static const all_vars Defaults = {
/* log_file; */ NULL,
/* log_format; */ "%o %h [%a] %m (%u) %f %l",
/* name; */ NULL,
/* outgoing_chmod; */ NULL,
/* path; */ NULL,
/* postxfer_exec; */ NULL,
-@@ -284,6 +287,7 @@ static const all_vars Defaults = {
+@@ -280,6 +283,7 @@ static const all_vars Defaults = {
/* log_file_EXP; */ False,
/* log_format_EXP; */ False,
/* name_EXP; */ False,
/* outgoing_chmod_EXP; */ False,
/* path_EXP; */ False,
/* postxfer_exec_EXP; */ False,
-@@ -435,6 +439,7 @@ static struct parm_struct parm_table[] =
+@@ -431,6 +435,7 @@ static struct parm_struct parm_table[] =
{"max verbosity", P_INTEGER,P_LOCAL, &Vars.l.max_verbosity, NULL,0},
{"munge symlinks", P_BOOL, P_LOCAL, &Vars.l.munge_symlinks, NULL,0},
{"name", P_STRING, P_LOCAL, &Vars.l.name, NULL,0},
{"numeric ids", P_BOOL, P_LOCAL, &Vars.l.numeric_ids, NULL,0},
{"outgoing chmod", P_STRING, P_LOCAL, &Vars.l.outgoing_chmod, NULL,0},
{"path", P_PATH, P_LOCAL, &Vars.l.path, NULL,0},
-@@ -573,6 +578,7 @@ FN_LOCAL_STRING(lp_outgoing_chmod, outgoing_chmod)
+@@ -569,6 +574,7 @@ FN_LOCAL_STRING(lp_outgoing_chmod, outgoing_chmod)
FN_LOCAL_STRING(lp_path, path)
FN_LOCAL_STRING(lp_postxfer_exec, postxfer_exec)
FN_LOCAL_STRING(lp_prexfer_exec, prexfer_exec)
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/access.c b/access.c
--- a/access.c
+++ b/access.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
-@@ -16,6 +16,8 @@ CXX=@CXX@
+@@ -17,6 +17,8 @@ CXX=@CXX@
CXXFLAGS=@CXXFLAGS@
EXEEXT=@EXEEXT@
LDFLAGS=@LDFLAGS@
LIBOBJDIR=lib/
INSTALLCMD=@INSTALL@
-@@ -46,7 +48,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
+@@ -47,7 +49,7 @@ OBJS1=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.o \
OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
OBJS3=progress.o pipe.o
popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
popt/popthelp.o popt/poptparse.o
OBJS=$(OBJS1) $(OBJS2) $(OBJS3) @SIMD@ $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
-@@ -95,7 +97,7 @@ install-strip:
+@@ -96,7 +98,7 @@ install-strip:
$(MAKE) INSTALL_STRIP='-s' install
rsync$(EXEEXT): $(OBJS)
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
-@@ -1351,6 +1351,13 @@ int daemon_main(void)
+@@ -1350,6 +1350,13 @@ int daemon_main(void)
* address too. In fact, why not just do getnameinfo on the
* local address??? */
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
-@@ -907,6 +907,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -937,6 +937,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/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
-@@ -111,6 +111,9 @@ typedef struct {
+@@ -107,6 +107,9 @@ typedef struct {
int listen_backlog;
int rsync_port;
BOOL proxy_protocol;
} global_vars;
-@@ -407,6 +410,9 @@ static struct parm_struct parm_table[] =
+@@ -403,6 +406,9 @@ static struct parm_struct parm_table[] =
{"pid file", P_STRING, P_GLOBAL,&Vars.g.pid_file, NULL,0},
{"port", P_INTEGER,P_GLOBAL,&Vars.g.rsync_port, NULL,0},
{"proxy protocol", P_BOOL, P_LOCAL, &Vars.g.proxy_protocol, NULL,0},
{"socket options", P_STRING, P_GLOBAL,&Vars.g.socket_options, NULL,0},
{"auth users", P_STRING, P_LOCAL, &Vars.l.auth_users, NULL,0},
-@@ -548,6 +554,9 @@ FN_GLOBAL_STRING(lp_socket_options, socket_options)
+@@ -544,6 +550,9 @@ FN_GLOBAL_STRING(lp_socket_options, socket_options)
FN_GLOBAL_INTEGER(lp_listen_backlog, listen_backlog)
FN_GLOBAL_INTEGER(lp_rsync_port, rsync_port)
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
-- Matt McCutchen <hashproduct@gmail.com>
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-@@ -3024,6 +3027,36 @@ your home directory (remove the '=' for that).
+@@ -3057,6 +3060,36 @@ your home directory (remove the '=' for that).
`--write-batch`. If _FILE_ is `-`, the batch data will be read from
standard input. See the "BATCH MODE" section for details.
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/fileio.c b/fileio.c
--- a/fileio.c
+++ b/fileio.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/io.c b/io.c
--- a/io.c
+++ b/io.c
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
-@@ -2993,6 +2995,22 @@ your home directory (remove the '=' for that).
+@@ -3026,6 +3028,22 @@ your home directory (remove the '=' for that).
buffered, while other can show up as very slow when the flushing of the
output buffer occurs. This may be fixed in a future version.
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
--checksum-seed=NUM set block/file checksum seed (advanced)
--ipv4, -4 prefer IPv4
--ipv6, -6 prefer IPv6
-@@ -3066,6 +3067,25 @@ your home directory (remove the '=' for that).
+@@ -3099,6 +3100,25 @@ your home directory (remove the '=' for that).
free to specify just the local charset for a daemon transfer (e.g.
`--iconv=utf8`).
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/syscall.c b/syscall.c
--- a/syscall.c
+++ b/syscall.c
./configure (optional if already run)
make
-based-on: 0b2d5fe4940211ba25a89f18a9889b9ab55d38ef
+based-on: c225330aaf9d6032a79317bda1bf669e90ac7212
diff --git a/checksum.c b/checksum.c
--- a/checksum.c
+++ b/checksum.c