svn commit: samba r16238 - in branches/SAMBA_4_0/source/auth: .

abartlet at samba.org abartlet at samba.org
Wed Jun 14 23:51:00 GMT 2006


Author: abartlet
Date: 2006-06-14 23:50:58 +0000 (Wed, 14 Jun 2006)
New Revision: 16238

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

Log:
Use a baseDN for the auth_sam searches, to allow continued function
with partitions.

Also fix some debug messages.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/auth/auth_sam.c
   branches/SAMBA_4_0/source/auth/sam.c


Changeset:
Modified: branches/SAMBA_4_0/source/auth/auth_sam.c
===================================================================
--- branches/SAMBA_4_0/source/auth/auth_sam.c	2006-06-14 23:49:14 UTC (rev 16237)
+++ branches/SAMBA_4_0/source/auth/auth_sam.c	2006-06-14 23:50:58 UTC (rev 16238)
@@ -45,6 +45,7 @@
 	struct ldb_message **msgs_tmp;
 	struct ldb_message **msgs;
 	struct ldb_message **msgs_domain_ref;
+	const struct ldb_dn *partitions_basedn = ldb_dn_string_compose(mem_ctx, samdb_base_dn(mem_ctx), "CN=Partitions,CN=Configuration");
 
 	int ret;
 	int ret_domain;
@@ -54,7 +55,7 @@
 	if (domain_name) {
 		char *escaped_domain = ldb_binary_encode_string(mem_ctx, domain_name);
 		/* find the domain's DN */
-		ret_domain = gendb_search(sam_ctx, mem_ctx, NULL, &msgs_domain_ref, domain_ref_attrs,
+		ret_domain = gendb_search(sam_ctx, mem_ctx, partitions_basedn, &msgs_domain_ref, domain_ref_attrs,
 					  "(&(&(|(&(dnsRoot=%s)(nETBIOSName=*))(nETBIOSName=%s))(objectclass=crossRef))(ncName=*))", 
 					  escaped_domain, escaped_domain);
 		if (ret_domain == -1) {
@@ -74,6 +75,8 @@
 		}
 
 		domain_dn = samdb_result_dn(mem_ctx, msgs_domain_ref[0], "nCName", NULL);
+	} else {
+		domain_dn = samdb_base_dn(mem_ctx);
 	}
 
 	/* pull the user attributes */
@@ -85,8 +88,8 @@
 	}
 
 	if (ret == 0) {
-		DEBUG(3,("sam_search_user: Couldn't find user [%s] in samdb.\n", 
-			 account_name));
+		DEBUG(3,("sam_search_user: Couldn't find user [%s\\%s] in samdb, under %s\n", 
+			 domain_name, account_name, ldb_dn_linearize(mem_ctx, domain_dn)));
 		return NT_STATUS_NO_SUCH_USER;
 	}
 
@@ -104,7 +107,7 @@
 		}
 
 		/* find the domain's DN */
-		ret = gendb_search(sam_ctx, mem_ctx, NULL, &msgs_tmp, NULL,
+		ret = gendb_search(sam_ctx, mem_ctx, samdb_base_dn(mem_ctx), &msgs_tmp, NULL,
 				   "(&(objectSid=%s)(objectclass=domain))", 
 				   ldap_encode_ndr_dom_sid(mem_ctx, domain_sid));
 		if (ret == -1) {
@@ -123,7 +126,7 @@
 			return NT_STATUS_INTERNAL_DB_CORRUPTION;
 		}
 
-		ret_domain = gendb_search(sam_ctx, mem_ctx, NULL, &msgs_domain_ref, domain_ref_attrs,
+		ret_domain = gendb_search(sam_ctx, mem_ctx, partitions_basedn, &msgs_domain_ref, domain_ref_attrs,
 					  "(nCName=%s)", ldb_dn_linearize(msgs_tmp, msgs_tmp[0]->dn));
 
 		if (ret_domain == -1) {

Modified: branches/SAMBA_4_0/source/auth/sam.c
===================================================================
--- branches/SAMBA_4_0/source/auth/sam.c	2006-06-14 23:49:14 UTC (rev 16237)
+++ branches/SAMBA_4_0/source/auth/sam.c	2006-06-14 23:50:58 UTC (rev 16238)
@@ -206,7 +206,7 @@
 	TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
 
 	group_ret = gendb_search(sam_ctx,
-				 tmp_ctx, NULL, &group_msgs, group_attrs,
+				 tmp_ctx, samdb_base_dn(tmp_ctx), &group_msgs, group_attrs,
 				 "(&(member=%s)(sAMAccountType=*))", 
 				 ldb_dn_linearize(tmp_ctx, msg->dn));
 	if (group_ret == -1) {
@@ -321,6 +321,7 @@
 	NTSTATUS nt_status;
 	TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
 	int ret;
+	const struct ldb_dn *partitions_basedn = ldb_dn_string_compose(mem_ctx, samdb_base_dn(mem_ctx), "CN=Partitions,CN=Configuration");
 
 	if (!tmp_ctx) {
 		return NT_STATUS_NO_MEMORY;
@@ -333,7 +334,7 @@
 	}
 	
 	/* grab domain info from the reference */
-	ret = gendb_search(sam_ctx, tmp_ctx, NULL, msgs_domain_ref, domain_ref_attrs,
+	ret = gendb_search(sam_ctx, tmp_ctx, partitions_basedn, msgs_domain_ref, domain_ref_attrs,
 			   "(ncName=%s)", ldb_dn_linearize(tmp_ctx, domain_dn));
 
 	if (ret != 1) {



More information about the samba-cvs mailing list