Fixed failing hunks.
[rsync/rsync-patches.git] / usermap.diff
index 1a560d0..515ff48 100644 (file)
@@ -9,16 +9,15 @@ To use this patch, run these commands for a successful build:
 
 --- 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);
@@ -27,7 +26,7 @@ To use this patch, run these commands for a successful build:
                                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);
@@ -36,7 +35,7 @@ To use this patch, run these commands for a successful build:
                                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;
  
@@ -80,8 +79,8 @@ To use this patch, run these commands for a successful build:
    {"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) {
@@ -101,7 +100,7 @@ To use this patch, run these commands for a successful build:
  
 --- 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
@@ -110,7 +109,7 @@ To use this patch, run these commands for a successful build:
       --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.
  
@@ -159,7 +158,15 @@ To use this patch, run these commands for a successful build:
  then rsync will exit. The default is 0, which means no timeout.
 --- old/uidlist.c
 +++ new/uidlist.c
-@@ -32,6 +32,8 @@ extern int preserve_uid;
+@@ -24,6 +24,7 @@
+  * are special. */
+ #include "rsync.h"
++#include "ifuncs.h"
+ #include "io.h"
+ extern int verbose;
+@@ -32,6 +33,8 @@ extern int preserve_uid;
  extern int preserve_gid;
  extern int preserve_acls;
  extern int numeric_ids;
@@ -168,7 +175,7 @@ To use this patch, run these commands for a successful build:
  
  #ifdef HAVE_GETGROUPS
  # ifndef GETGROUPS_T
-@@ -41,6 +43,9 @@ extern int numeric_ids;
+@@ -41,6 +44,9 @@ extern int numeric_ids;
  
  #define GID_NONE ((gid_t)-1)
  
@@ -178,7 +185,7 @@ To use this patch, run these commands for a successful build:
  struct idlist {
        struct idlist *next;
        char *name;
-@@ -48,8 +53,8 @@ struct idlist {
+@@ -48,8 +54,8 @@ struct idlist {
        uint16 flags;
  };
  
@@ -189,7 +196,7 @@ To use this patch, run these commands for a successful build:
  
  static struct idlist *add_to_list(struct idlist **root, id_t id, char *name,
                                  id_t id2, uint16 flags)
-@@ -84,22 +89,6 @@ static char *gid_to_name(gid_t gid)
+@@ -84,22 +90,6 @@ static char *gid_to_name(gid_t gid)
        return NULL;
  }
  
@@ -212,7 +219,7 @@ To use this patch, run these commands for a successful build:
  static int is_in_group(gid_t gid)
  {
  #ifdef HAVE_GETGROUPS
-@@ -159,34 +148,49 @@ static int is_in_group(gid_t gid)
+@@ -159,34 +149,49 @@ static int is_in_group(gid_t gid)
  #endif
  }
  
@@ -282,7 +289,7 @@ To use this patch, run these commands for a successful build:
        }
  
        return node;
-@@ -195,12 +199,9 @@ static struct idlist *recv_add_gid(gid_t
+@@ -195,12 +200,9 @@ static struct idlist *recv_add_gid(gid_t
  /* this function is a definate candidate for a faster algorithm */
  uid_t match_uid(uid_t uid)
  {
@@ -296,7 +303,7 @@ To use this patch, run these commands for a successful build:
        if (uid == last_in)
                return last_out;
  
-@@ -208,10 +209,13 @@ uid_t match_uid(uid_t uid)
+@@ -208,10 +210,13 @@ uid_t match_uid(uid_t uid)
  
        for (list = uidlist; list; list = list->next) {
                if (list->id == uid)
@@ -312,7 +319,7 @@ To use this patch, run these commands for a successful build:
  }
  
  gid_t match_gid(gid_t gid, uint16 *flags_ptr)
-@@ -227,7 +231,7 @@ gid_t match_gid(gid_t gid, uint16 *flags
+@@ -227,7 +232,7 @@ gid_t match_gid(gid_t gid, uint16 *flags
                                break;
                }
                if (!list)
@@ -321,7 +328,7 @@ To use this patch, run these commands for a successful build:
                last = list;
        }
  
-@@ -316,7 +320,7 @@ uid_t recv_user_name(int f, uid_t uid)
+@@ -316,7 +321,7 @@ uid_t recv_user_name(int f, uid_t uid)
        if (!name)
                out_of_memory("recv_user_name");
        read_sbuf(f, name, len);
@@ -330,7 +337,7 @@ To use this patch, run these commands for a successful build:
        return node->id2;
  }
  
-@@ -328,7 +332,7 @@ gid_t recv_group_name(int f, gid_t gid, 
+@@ -328,7 +333,7 @@ gid_t recv_group_name(int f, gid_t gid, 
        if (!name)
                out_of_memory("recv_group_name");
        read_sbuf(f, name, len);
@@ -339,7 +346,7 @@ To use this patch, run these commands for a successful build:
        if (flags_ptr && node->flags & FLAG_SKIP_GROUP)
                *flags_ptr |= FLAG_SKIP_GROUP;
        return node->id2;
-@@ -355,17 +359,96 @@ void recv_id_list(int f, struct file_lis
+@@ -355,17 +360,96 @@ void recv_id_list(int f, struct file_lis
  
        /* Now convert all the uids/gids from sender values to our values. */
  #ifdef SUPPORT_ACLS