svn commit: samba r6682 - in branches/SAMBA_3_0/source/nsswitch: .

jerry at samba.org jerry at samba.org
Mon May 9 16:02:58 GMT 2005


Author: jerry
Date: 2005-05-09 16:02:57 +0000 (Mon, 09 May 2005)
New Revision: 6682

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

Log:
patch from Qiao Yang <qyang at stbernard.com> to use out own DC when getting the SID for a domain
Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_util.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c	2005-05-09 14:05:10 UTC (rev 6681)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c	2005-05-09 16:02:57 UTC (rev 6682)
@@ -286,16 +286,19 @@
 	const char *full_name;
 	int retry;
 
-	DEBUG(3,("rpc: name_to_sid name=%s\n", name));
-
-	full_name = talloc_asprintf(mem_ctx, "%s\\%s", domain_name, name);
-	
+        if(name == NULL || *name=='\0') {
+                DEBUG(3,("rpc: name_to_sid name=%s\n", domain_name));
+                full_name = talloc_asprintf(mem_ctx, "%s", domain_name);
+        } else {
+                DEBUG(3,("rpc: name_to_sid name=%s\\%s\n", domain_name, name));
+                full_name = talloc_asprintf(mem_ctx, "%s\\%s", domain_name, name);
+        }
 	if (!full_name) {
 		DEBUG(0, ("talloc_asprintf failed!\n"));
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	DEBUG(3,("name_to_sid [rpc] %s for domain %s\n", name, domain_name ));
+	DEBUG(3,("name_to_sid [rpc] %s for domain %s\n", name?name:"", domain_name ));
 
 	retry = 0;
 	do {

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_util.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_util.c	2005-05-09 14:05:10 UTC (rev 6681)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_util.c	2005-05-09 16:02:57 UTC (rev 6682)
@@ -224,7 +224,7 @@
 			/* if the SID was empty, we better set it now */
 			
 			if ( sid_equal(&dom_sids[i], &null_sid) ) {
-			
+				enum SID_NAME_USE type;
 				new_domain = find_domain_from_name(names[i]);
 				 
 				/* this should never happen */
@@ -237,7 +237,12 @@
 				/* call the cache method; which will operate on the winbindd_domain \
 				   passed in and choose either rpc or ads as appropriate */
 
-				result = domain->methods->domain_sid( new_domain, &new_domain->sid );
+				result = domain->methods->name_to_sid( domain,
+					mem_ctx,
+					new_domain->name,
+					NULL,
+					&new_domain->sid,
+					&type);
 				 
 				if ( NT_STATUS_IS_OK(result) )
 				 	sid_copy( &dom_sids[i], &new_domain->sid );



More information about the samba-cvs mailing list