#ifdef ICONV_OPTION
int ic_ndx;
-@@ -122,6 +123,8 @@ void setup_protocol(int f_out,int f_in)
+@@ -125,6 +126,8 @@ void setup_protocol(int f_out,int f_in)
uid_ndx = ++file_extra_cnt;
if (preserve_gid)
gid_ndx = ++file_extra_cnt;
if (preserve_xattrs)
--- old/configure.in
+++ new/configure.in
-@@ -560,7 +560,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strd
+@@ -557,7 +557,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strd
memmove lchown vsnprintf snprintf vasprintf asprintf setsid glob strpbrk \
strlcat strlcpy strtol mallinfo getgroups setgroups geteuid getegid \
setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \
+#ifdef SUPPORT_FLAGS
+ static uint32 fileflags;
+#endif
+ #ifdef SUPPORT_HARD_LINKS
static int64 dev;
- static dev_t rdev;
- static uint32 rdev_major;
-@@ -391,6 +395,12 @@ static void send_file_entry(int f, struc
+ #endif
+@@ -393,6 +397,12 @@ static void send_file_entry(int f, struc
xflags |= XMIT_SAME_MODE;
else
mode = file->mode;
if ((preserve_devices && IS_DEVICE(mode))
|| (preserve_specials && IS_SPECIAL(mode))) {
-@@ -511,6 +521,10 @@ static void send_file_entry(int f, struc
+@@ -513,6 +523,10 @@ static void send_file_entry(int f, struc
}
if (!(xflags & XMIT_SAME_MODE))
write_int(f, to_wire_mode(mode));
if (uid_ndx && !(xflags & XMIT_SAME_UID)) {
if (protocol_version < 30)
write_int(f, uid);
-@@ -599,6 +613,9 @@ static struct file_struct *recv_file_ent
+@@ -601,6 +615,9 @@ static struct file_struct *recv_file_ent
{
static int64 modtime;
static mode_t mode;
+#ifdef SUPPORT_FLAGS
+ static uint32 fileflags;
+#endif
+ #ifdef SUPPORT_HARD_LINKS
static int64 dev;
- static dev_t rdev;
- static uint32 rdev_major;
-@@ -728,9 +745,12 @@ static struct file_struct *recv_file_ent
+ #endif
+@@ -732,9 +749,12 @@ static struct file_struct *recv_file_ent
}
if (!(xflags & XMIT_SAME_MODE))
mode = from_wire_mode(read_int(f));
if (uid_ndx && !(xflags & XMIT_SAME_UID)) {
if (protocol_version < 30)
-@@ -850,6 +870,10 @@ static struct file_struct *recv_file_ent
+@@ -854,6 +874,10 @@ static struct file_struct *recv_file_ent
OPT_EXTRA(file, 0)->unum = (uint32)(file_length >> 32);
}
file->mode = mode;
if (uid_ndx)
F_OWNER(file) = uid;
if (gid_ndx) {
-@@ -1178,6 +1202,10 @@ struct file_struct *make_file(const char
+@@ -1182,6 +1206,10 @@ struct file_struct *make_file(const char
OPT_EXTRA(file, 0)->unum = (uint32)(st.st_size >> 32);
}
file->mode = st.st_mode;
/* These flags are used in the live flist data. */
-@@ -419,6 +420,10 @@ enum msgcode {
+@@ -435,6 +436,10 @@ typedef unsigned int size_t;
#endif
#endif
/* Find a variable that is either exactly 32-bits or longer.
* If some code depends on 32-bit truncation, it will need to
* take special action in a "#if SIZEOF_INT32 > 4" section. */
-@@ -586,6 +591,7 @@ extern int file_extra_cnt;
+@@ -602,6 +607,7 @@ extern int file_extra_cnt;
extern int inc_recurse;
extern int uid_ndx;
extern int gid_ndx;
extern int acls_ndx;
extern int xattrs_ndx;
-@@ -623,6 +629,7 @@ extern int xattrs_ndx;
+@@ -639,6 +645,7 @@ extern int xattrs_ndx;
/* When the associated option is on, all entries will have these present: */
#define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
#define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum