From c82285d5819c749ede8e7e930d75db6d1be85129 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Thu, 4 Oct 2007 23:55:32 +0000 Subject: [PATCH] Fixed build problem. --- acls.diff | 22 +++++++++++++++------- ignore-case.diff | 14 +++++++++++--- usermap.diff | 30 +++++++++++++++++++----------- 3 files changed, 45 insertions(+), 21 deletions(-) diff --git a/acls.diff b/acls.diff index b7a8a36..41ecca2 100644 --- a/acls.diff +++ b/acls.diff @@ -11,7 +11,15 @@ To use this patch, run these commands for a successful build: --- old/acls.c +++ new/acls.c -@@ -97,6 +97,18 @@ static const char *str_acl_type(SMB_ACL_ +@@ -31,6 +31,7 @@ extern int list_only; + extern int orig_umask; + extern int numeric_ids; + extern int inc_recurse; ++extern int protocol_version; + + /* Flags used to indicate what items are being transmitted for an entry. */ + #define XMIT_USER_OBJ (1<<0) +@@ -97,6 +98,18 @@ static const char *str_acl_type(SMB_ACL_ : "unknown SMB_ACL_TYPE_T"; } @@ -30,7 +38,7 @@ To use this patch, run these commands for a successful build: static int calc_sacl_entries(const rsync_acl *racl) { /* A System ACL always gets user/group/other permission entries. */ -@@ -545,6 +557,96 @@ int get_acl(const char *fname, stat_x *s +@@ -545,6 +558,96 @@ int get_acl(const char *fname, stat_x *s return 0; } @@ -82,9 +90,9 @@ To use this patch, run these commands for a successful build: + } +} + -+/* Send the ACL from the statx structure down the indicated file descriptor. ++/* Send the ACL from the stat_x structure down the indicated file descriptor. + * This also frees the ACL data. */ -+void old_send_acl(statx *sxp, int f) ++void old_send_acl(stat_x *sxp, int f) +{ + SMB_ACL_TYPE_T type; + rsync_acl *racl, *new_racl; @@ -127,7 +135,7 @@ To use this patch, run these commands for a successful build: /* === Send functions === */ /* Send the ida list over the file descriptor. */ -@@ -620,6 +722,11 @@ static void send_rsync_acl(rsync_acl *ra +@@ -620,6 +723,11 @@ static void send_rsync_acl(rsync_acl *ra * This also frees the ACL data. */ void send_acl(stat_x *sxp, int f) { @@ -139,7 +147,7 @@ To use this patch, run these commands for a successful build: if (!sxp->acc_acl) { sxp->acc_acl = create_racl(); rsync_acl_fake_perms(sxp->acc_acl, sxp->st.st_mode); -@@ -637,6 +744,160 @@ void send_acl(stat_x *sxp, int f) +@@ -637,6 +745,160 @@ void send_acl(stat_x *sxp, int f) } } @@ -300,7 +308,7 @@ To use this patch, run these commands for a successful build: /* === Receive functions === */ static uint32 recv_acl_access(uchar *name_follows_ptr, int f) -@@ -759,6 +1020,11 @@ static int recv_rsync_acl(item_list *rac +@@ -759,6 +1021,11 @@ static int recv_rsync_acl(item_list *rac /* Receive the ACL info the sender has included for this file-list entry. */ void receive_acl(struct file_struct *file, int f) { diff --git a/ignore-case.diff b/ignore-case.diff index 3703637..81c28b2 100644 --- a/ignore-case.diff +++ b/ignore-case.diff @@ -14,7 +14,15 @@ TODO: --- old/exclude.c +++ new/exclude.c -@@ -583,16 +583,15 @@ static int rule_matches(char *name, stru +@@ -21,6 +21,7 @@ + */ + + #include "rsync.h" ++#include "ifuncs.h" + + extern int verbose; + extern int am_server; +@@ -583,16 +584,15 @@ static int rule_matches(char *name, stru if (litmatch_array(pattern, strings, slash_handling)) return ret_match; } else if (anchored_match) { @@ -103,8 +111,8 @@ TODO: +{ + extern int ignore_case; + if (ignore_case) -+ return strcasecmp(s1, s2, n) == 0; -+ return strcmp(s1, s2, n) == 0; ++ return strncasecmp(s1, s2, n) == 0; ++ return strncmp(s1, s2, n) == 0; +} + +#define strNE(s1,s2) (!strEQ(s1,s2)) diff --git a/usermap.diff b/usermap.diff index 1a560d0..03c233b 100644 --- a/usermap.diff +++ b/usermap.diff @@ -159,7 +159,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 +176,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 +186,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 +197,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 +220,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 +290,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 +304,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 +320,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 +329,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 +338,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 +347,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 -- 2.34.1