#ifdef ICONV_OPTION
int ic_ndx;
-@@ -112,6 +113,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -122,6 +123,8 @@ void setup_protocol(int f_out,int f_in)
uid_ndx = ++file_extra_cnt;
if (preserve_gid)
gid_ndx = ++file_extra_cnt;
setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \
- strerror putenv iconv_open locale_charset nl_langinfo getxattr \
+ chflags strerror putenv iconv_open locale_charset nl_langinfo getxattr \
- extattr_get_link sigaction sigprocmask)
+ extattr_get_link sigaction sigprocmask setattrlist)
AC_CHECK_FUNCS(getpgrp tcgetpgrp)
--- old/flist.c
}
}
-@@ -1258,7 +1269,7 @@ static void recv_generator(char *fname,
+@@ -1263,7 +1274,7 @@ static void recv_generator(char *fname,
* full later (right before we handle its contents). */
if (statret == 0
&& (S_ISDIR(sx.st.st_mode)
goto cleanup; /* Any errors get reported later. */
if (do_mkdir(fname, file->mode & 0700) == 0)
file->flags |= FLAG_DIR_CREATED;
-@@ -1270,7 +1281,7 @@ static void recv_generator(char *fname,
+@@ -1275,7 +1286,7 @@ static void recv_generator(char *fname,
* we need to delete it. If it doesn't exist, then
* (perhaps recursively) create it. */
if (statret == 0 && !S_ISDIR(sx.st.st_mode)) {
goto skipping_dir_contents;
statret = -1;
}
-@@ -1399,7 +1410,7 @@ static void recv_generator(char *fname,
+@@ -1404,7 +1415,7 @@ static void recv_generator(char *fname,
}
/* Not the right symlink (or not a symlink), so
* delete it. */
goto cleanup;
} else if (basis_dir[0] != NULL) {
int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
-@@ -1478,7 +1489,7 @@ static void recv_generator(char *fname,
+@@ -1483,7 +1494,7 @@ static void recv_generator(char *fname,
goto return_with_success;
goto cleanup;
}
goto cleanup;
} else if (basis_dir[0] != NULL) {
int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
-@@ -1569,7 +1580,7 @@ static void recv_generator(char *fname,
+@@ -1574,7 +1585,7 @@ static void recv_generator(char *fname,
fnamecmp_type = FNAMECMP_FNAME;
if (statret == 0 && !S_ISREG(sx.st.st_mode)) {
if (write_batch && read_batch) {
snprintf(err_buf, sizeof err_buf,
"--write-batch and --read-batch can not be used together\n");
-@@ -1790,6 +1807,9 @@ void server_options(char **args, int *ar
+@@ -1792,6 +1809,9 @@ void server_options(char **args, int *ar
if (xfer_dirs && !recurse && delete_mode && am_sender)
args[ac++] = "--no-r";
transfer. The resulting value is treated as though it was the permissions
--- old/syscall.c
+++ new/syscall.c
-@@ -162,6 +162,15 @@ int do_chmod(const char *path, mode_t mo
+@@ -173,6 +173,15 @@ int do_chmod(const char *path, mode_t mo
}
#endif