svn commit: samba r14698 - branches/SAMBA_3_0/source/nsswitch trunk/source/nsswitch

jerry at samba.org jerry at samba.org
Fri Mar 24 22:04:17 GMT 2006


Author: jerry
Date: 2006-03-24 22:04:16 +0000 (Fri, 24 Mar 2006)
New Revision: 14698

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14698

Log:
Make sure we expand our own local groups and not
just the BUILTIN group when calling winbindd_getgroups.

$ id foo
uid=502(foo) gid=100(users) groups=100(users),10007(RHEL4\staff),
10001(BUILTIN\users)


Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_async.c
   trunk/source/nsswitch/winbindd_async.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_async.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_async.c	2006-03-24 19:13:21 UTC (rev 14697)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_async.c	2006-03-24 22:04:16 UTC (rev 14698)
@@ -956,6 +956,7 @@
 	TALLOC_CTX *mem_ctx;
 	DOM_SID user_sid;
 	struct winbindd_domain *alias_domain;
+	struct winbindd_domain *local_alias_domain;
 	struct winbindd_domain *builtin_domain;
 	DOM_SID *sids;
 	size_t num_sids;
@@ -990,6 +991,7 @@
 	state->mem_ctx = mem_ctx;
 	sid_copy(&state->user_sid, user_sid);
 	state->alias_domain = find_our_domain();
+	state->local_alias_domain = find_domain_from_name( get_global_sam_name() );
 	state->builtin_domain = find_builtin_domain();
 	state->cont = cont;
 	state->private_data = private_data;
@@ -1081,9 +1083,19 @@
 		add_sid_to_array(state->mem_ctx, &aliases[i],
 				 &state->sids, &state->num_sids);
 
+	if (state->local_alias_domain != NULL) {
+		struct winbindd_domain *local_domain = state->local_alias_domain;
+		DEBUG(10, ("Expanding our own local groups\n"));
+		state->local_alias_domain = NULL;
+		winbindd_getsidaliases_async(local_domain, state->mem_ctx,
+					     state->sids, state->num_sids,
+					     gettoken_recvaliases, state);
+		return;
+	}
+
 	if (state->builtin_domain != NULL) {
 		struct winbindd_domain *builtin_domain = state->builtin_domain;
-		DEBUG(10, ("Expanding our own local groups\n"));
+		DEBUG(10, ("Expanding our own BUILTIN groups\n"));
 		state->builtin_domain = NULL;
 		winbindd_getsidaliases_async(builtin_domain, state->mem_ctx,
 					     state->sids, state->num_sids,

Modified: trunk/source/nsswitch/winbindd_async.c
===================================================================
--- trunk/source/nsswitch/winbindd_async.c	2006-03-24 19:13:21 UTC (rev 14697)
+++ trunk/source/nsswitch/winbindd_async.c	2006-03-24 22:04:16 UTC (rev 14698)
@@ -956,6 +956,7 @@
 	TALLOC_CTX *mem_ctx;
 	DOM_SID user_sid;
 	struct winbindd_domain *alias_domain;
+	struct winbindd_domain *local_alias_domain;
 	struct winbindd_domain *builtin_domain;
 	DOM_SID *sids;
 	size_t num_sids;
@@ -990,6 +991,7 @@
 	state->mem_ctx = mem_ctx;
 	sid_copy(&state->user_sid, user_sid);
 	state->alias_domain = find_our_domain();
+	state->local_alias_domain = find_domain_from_name( get_global_sam_name() );
 	state->builtin_domain = find_builtin_domain();
 	state->cont = cont;
 	state->private_data = private_data;
@@ -1081,9 +1083,19 @@
 		add_sid_to_array(state->mem_ctx, &aliases[i],
 				 &state->sids, &state->num_sids);
 
+	if (state->local_alias_domain != NULL) {
+		struct winbindd_domain *local_domain = state->local_alias_domain;
+		DEBUG(10, ("Expanding our own local groups\n"));
+		state->local_alias_domain = NULL;
+		winbindd_getsidaliases_async(local_domain, state->mem_ctx,
+					     state->sids, state->num_sids,
+					     gettoken_recvaliases, state);
+		return;
+	}
+
 	if (state->builtin_domain != NULL) {
 		struct winbindd_domain *builtin_domain = state->builtin_domain;
-		DEBUG(10, ("Expanding our own local groups\n"));
+		DEBUG(10, ("Expanding our own BUILTIN groups\n"));
 		state->builtin_domain = NULL;
 		winbindd_getsidaliases_async(builtin_domain, state->mem_ctx,
 					     state->sids, state->num_sids,



More information about the samba-cvs mailing list