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) {
