--- old/flist.c
+++ new/flist.c
-@@ -63,6 +63,8 @@ extern int copy_links;
- extern int copy_unsafe_links;
- extern int protocol_version;
- extern int sanitize_paths;
-+extern char *usermap;
-+extern char *groupmap;
+@@ -67,6 +67,7 @@ extern int need_unsorted_flist;
+ extern int unsort_ndx;
extern struct stats stats;
extern char *filesfrom_host;
++extern char *usermap, *groupmap;
+
+ extern char curr_dir[MAXPATHLEN];
-@@ -733,7 +735,7 @@ static struct file_struct *recv_file_ent
+@@ -747,7 +748,7 @@ static struct file_struct *recv_file_ent
uid = (uid_t)read_varint(f);
if (xflags & XMIT_USER_NAME_FOLLOWS)
uid = recv_user_name(f, uid);
uid = match_uid(uid);
}
}
-@@ -745,7 +747,7 @@ static struct file_struct *recv_file_ent
+@@ -759,7 +760,7 @@ static struct file_struct *recv_file_ent
gid_flags = 0;
if (xflags & XMIT_GROUP_NAME_FOLLOWS)
gid = recv_group_name(f, gid, &gid_flags);
gid = match_gid(gid, &gid_flags);
}
}
-@@ -2045,8 +2047,13 @@ struct file_list *recv_file_list(int f)
+@@ -2076,8 +2077,13 @@ struct file_list *recv_file_list(int f)
int dstart, flags;
int64 start_read;
{"timeout", 0, POPT_ARG_INT, &io_timeout, 0, 0, 0 },
{"no-timeout", 0, POPT_ARG_VAL, &io_timeout, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
-@@ -1935,6 +1941,18 @@ void server_options(char **args, int *ar
- args[ac++] = "--no-i-r";
+@@ -1931,6 +1937,18 @@ void server_options(char **args, int *ar
+ args[ac++] = "--use-qsort";
if (am_sender) {
+ if (usermap) {
--- old/rsync.yo
+++ new/rsync.yo
-@@ -379,6 +379,8 @@ to the detailed description below for a
+@@ -378,6 +378,8 @@ to the detailed description below for a
--delay-updates put all updated files into place at end
-m, --prune-empty-dirs prune empty directory chains from file-list
--numeric-ids don't map uid/gid values by user/group name
--timeout=TIME set I/O timeout in seconds
-I, --ignore-times don't skip files that match size and time
--size-only skip files that match in size
-@@ -1553,6 +1555,46 @@ from the source system is used instead.
+@@ -1566,6 +1568,46 @@ from the source system is used instead.
the chroot setting affects rsync's ability to look up the names of the
users and groups and what you can do about it.