svn commit: samba r9654 - in branches/SAMBA_4_0/source: dsdb/samdb
libnet rpc_server/lsa rpc_server/samr
idra at samba.org
idra at samba.org
Fri Aug 26 16:12:26 GMT 2005
Author: idra
Date: 2005-08-26 16:12:25 +0000 (Fri, 26 Aug 2005)
New Revision: 9654
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9654
Log:
introduce the samdb_search_dn call
Modified:
branches/SAMBA_4_0/source/dsdb/samdb/samdb.c
branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c
branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c
branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c
branches/SAMBA_4_0/source/rpc_server/samr/samr_password.c
Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/samdb.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/samdb.c 2005-08-26 16:06:17 UTC (rev 9653)
+++ branches/SAMBA_4_0/source/dsdb/samdb/samdb.c 2005-08-26 16:12:25 UTC (rev 9654)
@@ -127,6 +127,28 @@
return str;
}
+struct ldb_dn *samdb_search_dn(struct ldb_context *sam_ldb,
+ TALLOC_CTX *mem_ctx,
+ const struct ldb_dn *basedn,
+ const char *format, ...) _PRINTF_ATTRIBUTE(4,5)
+{
+ va_list ap;
+ struct ldb_dn *ret;
+ struct ldb_message **res = NULL;
+ int count;
+
+ va_start(ap, format);
+ count = gendb_search_v(sam_ldb, mem_ctx, basedn, &res, NULL, format, ap);
+ va_end(ap);
+
+ if (count != 1) return NULL;
+
+ ret = talloc_steal(mem_ctx, res[0]->dn);
+ talloc_free(res);
+
+ return ret;
+}
+
/*
search the sam for a dom_sid attribute in exactly 1 record
*/
Modified: branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c 2005-08-26 16:06:17 UTC (rev 9653)
+++ branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c 2005-08-26 16:12:25 UTC (rev 9654)
@@ -58,11 +58,9 @@
{
const char *sidstr = dom_sid_string(mem_ctx, sid);
/* We assume that ForeignSecurityPrincipals are under the BASEDN of the main domain */
- struct ldb_dn *basedn = ldb_dn_explode(mem_ctx,
- samdb_search_string(state->sam_ldb, mem_ctx,
- state->base_dn[SAM_DATABASE_DOMAIN],
- "dn", "(&(objectClass=container)"
- "(cn=ForeignSecurityPrincipals))"));
+ struct ldb_dn *basedn = samdb_search_dn(state->sam_ldb, mem_ctx,
+ state->base_dn[SAM_DATABASE_DOMAIN],
+ "(&(objectClass=container)(cn=ForeignSecurityPrincipals))");
struct ldb_message *msg;
int ret;
Modified: branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c 2005-08-26 16:06:17 UTC (rev 9653)
+++ branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c 2005-08-26 16:12:25 UTC (rev 9654)
@@ -261,18 +261,15 @@
/* work out the builtin_dn - useful for so many calls its worth
fetching here */
- state->builtin_dn = ldb_dn_explode(state,
- samdb_search_string(state->sam_ldb, mem_ctx, NULL,
- "dn", "objectClass=builtinDomain"));
+ state->builtin_dn = samdb_search_dn(state->sam_ldb, mem_ctx, NULL, "objectClass=builtinDomain");
if (!state->builtin_dn) {
return NT_STATUS_NO_SUCH_DOMAIN;
}
/* work out the system_dn - useful for so many calls its worth
fetching here */
- state->system_dn = ldb_dn_explode(state,
- samdb_search_string(state->sam_ldb, mem_ctx, state->domain_dn,
- "dn", "(&(objectClass=container)(cn=System))"));
+ state->system_dn = samdb_search_dn(state->sam_ldb, mem_ctx,
+ state->domain_dn, "(&(objectClass=container)(cn=System))");
if (!state->system_dn) {
return NT_STATUS_NO_SUCH_DOMAIN;
}
@@ -1304,13 +1301,9 @@
}
/* check it really exists */
- astate->account_dn =
- ldb_dn_explode(mem_ctx,
- samdb_search_string(state->sam_ldb, astate,
- NULL, "dn",
- "(&(objectSid=%s)(objectClass=group))",
- ldap_encode_ndr_dom_sid(mem_ctx,
- astate->account_sid)));
+ astate->account_dn = samdb_search_string(state->sam_ldb, astate,
+ NULL, "(&(objectSid=%s)(objectClass=group))",
+ ldap_encode_ndr_dom_sid(mem_ctx, astate->account_sid));
if (astate->account_dn == NULL) {
talloc_free(astate);
return NT_STATUS_NO_SUCH_USER;
@@ -1466,8 +1459,7 @@
return NT_STATUS_NO_MEMORY;
}
- dn = samdb_search_string(state->sam_ldb, mem_ctx, NULL, "dn",
- "objectSid=%s", sidstr);
+ dn = samdb_search_dn(state->sam_ldb, mem_ctx, NULL, "objectSid=%s", sidstr);
if (dn == NULL) {
return NT_STATUS_NO_SUCH_USER;
}
Modified: branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c 2005-08-26 16:06:17 UTC (rev 9653)
+++ branches/SAMBA_4_0/source/rpc_server/samr/dcesrv_samr.c 2005-08-26 16:12:25 UTC (rev 9654)
@@ -2117,11 +2117,8 @@
* cn=For...,cn=Builtin,dc={BASEDN}. -- vl
*/
- basedn = ldb_dn_explode(mem_ctx,
- samdb_search_string(d_state->sam_ctx,
- mem_ctx, NULL, "dn",
- "(&(objectClass=container)"
- "(cn=ForeignSecurityPrincipals))"));
+ basedn = samdb_search_dn(d_state->sam_ctx, mem_ctx, NULL,
+ "(&(objectClass=container)(cn=ForeignSecurityPrincipals))");
if (basedn == NULL) {
DEBUG(0, ("Failed to find DN for "
Modified: branches/SAMBA_4_0/source/rpc_server/samr/samr_password.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/samr/samr_password.c 2005-08-26 16:06:17 UTC (rev 9653)
+++ branches/SAMBA_4_0/source/rpc_server/samr/samr_password.c 2005-08-26 16:12:25 UTC (rev 9654)
@@ -210,10 +210,9 @@
return NT_STATUS_NO_SUCH_USER;
}
- domain_dn = ldb_dn_explode(mem_ctx,
- samdb_search_string(sam_ctx, mem_ctx, NULL, "dn",
- "(objectSid=%s)",
- ldap_encode_ndr_dom_sid(mem_ctx, domain_sid)));
+ domain_dn = samdb_search_dn(sam_ctx, mem_ctx, NULL,
+ "(objectSid=%s)",
+ ldap_encode_ndr_dom_sid(mem_ctx, domain_sid));
if (!domain_dn) {
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
@@ -361,10 +360,9 @@
goto failed;
}
- domain_dn = ldb_dn_explode(mem_ctx,
- samdb_search_string(sam_ctx, mem_ctx, NULL, "dn",
- "(objectSid=%s)",
- ldap_encode_ndr_dom_sid(mem_ctx, domain_sid)));
+ domain_dn = samdb_search_dn(sam_ctx, mem_ctx, NULL,
+ "(objectSid=%s)",
+ ldap_encode_ndr_dom_sid(mem_ctx, domain_sid));
if (!domain_dn) {
status = NT_STATUS_INTERNAL_DB_CORRUPTION;
goto failed;
More information about the samba-cvs
mailing list