This probably needs a hashing algorithm to be added if the uid+gid list
gets to be really large.
+To use this patch, run these commands for a successful build:
+
+ patch -p1 <patches/id-pair.diff
+ ./configure (optional if already run)
+ make
+
--- old/flist.c
+++ new/flist.c
@@ -54,6 +54,7 @@ extern int copy_unsafe_links;
file->u.link = NULL;
} else
file->mode = save_mode;
-@@ -1383,7 +1381,7 @@ struct file_list *recv_file_list(int f)
+@@ -1380,7 +1378,7 @@ struct file_list *recv_file_list(int f)
clean_flist(flist, relative_paths, 1);
if (f >= 0) {
/* Recv the io_error flag */
if (lp_ignore_errors(module_id) || ignore_errors)
-@@ -1699,13 +1697,15 @@ static void output_flist(struct file_lis
+@@ -1696,13 +1694,15 @@ static void output_flist(struct file_lis
for (i = 0; i < flist->count; i++) {
file = flist->files[i];
iflags |= ITEM_IS_NEW;
--- old/log.c
+++ new/log.c
-@@ -47,6 +47,7 @@ extern char *auth_user;
+@@ -46,6 +46,7 @@ extern char *auth_user;
extern char *stdout_format;
extern char *logfile_format;
extern char *logfile_name;
#if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
extern iconv_t ic_chck;
#endif
-@@ -479,16 +480,16 @@ static void log_formatted(enum logcode c
+@@ -470,16 +471,16 @@ static void log_formatted(enum logcode c
case 'U':
strlcat(fmt, "ld", sizeof fmt);
snprintf(buf2, sizeof buf2, fmt,