svn commit: samba r8984 - in
branches/SAMBA_4_0/source/rpc_server/drsuapi: .
abartlet at samba.org
abartlet at samba.org
Wed Aug 3 05:28:08 GMT 2005
Author: abartlet
Date: 2005-08-03 05:28:06 +0000 (Wed, 03 Aug 2005)
New Revision: 8984
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8984
Log:
Use the correct cross-reference search in DRSUAPI, rather than making
assumptions about the behaviour of "name" as a NETBIOS domain name.
Andrew Bartlett
Modified:
branches/SAMBA_4_0/source/rpc_server/drsuapi/drsuapi_cracknames.c
Changeset:
Modified: branches/SAMBA_4_0/source/rpc_server/drsuapi/drsuapi_cracknames.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/drsuapi/drsuapi_cracknames.c 2005-08-03 05:26:17 UTC (rev 8983)
+++ branches/SAMBA_4_0/source/rpc_server/drsuapi/drsuapi_cracknames.c 2005-08-03 05:28:06 UTC (rev 8984)
@@ -94,8 +94,9 @@
account = &p[1];
}
- domain_filter = talloc_asprintf(mem_ctx, "(&(objectClass=domainDNS)(name=%s))",
- domain);
+ domain_filter = talloc_asprintf(mem_ctx,
+ "(&(&(nETBIOSName=%s)(objectclass=crossRef))(ncName=*))",
+ domain);
WERR_TALLOC_CHECK(domain_filter);
if (account) {
result_filter = talloc_asprintf(mem_ctx, "(sAMAccountName=%s)",
@@ -115,7 +116,7 @@
/* here we need to set the attrs lists for domain and result lookups */
switch (format_desired) {
case DRSUAPI_DS_NAME_FORMAT_FQDN_1779: {
- const char * const _domain_attrs[] = { "dn", "dnsDomain", NULL};
+ const char * const _domain_attrs[] = { "ncName", "dnsRoot", NULL};
const char * const _result_attrs[] = { "dn", NULL};
domain_attrs = _domain_attrs;
@@ -123,7 +124,7 @@
break;
}
case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: {
- const char * const _domain_attrs[] = { "name", "dnsDomain", "dn", NULL};
+ const char * const _domain_attrs[] = { "ncName", "dnsRoot", "nETBIOSName", NULL};
const char * const _result_attrs[] = { "sAMAccountName", NULL};
domain_attrs = _domain_attrs;
@@ -131,7 +132,7 @@
break;
}
case DRSUAPI_DS_NAME_FORMAT_GUID: {
- const char * const _domain_attrs[] = { "objectGUID", "dnsDomain", "dn", NULL};
+ const char * const _domain_attrs[] = { "ncName", "dnsRoot", NULL};
const char * const _result_attrs[] = { "objectGUID", NULL};
domain_attrs = _domain_attrs;
@@ -159,12 +160,12 @@
return WERR_OK;
}
- info1->dns_domain_name = samdb_result_string(domain_res[0], "dnsDomain", NULL);
+ info1->dns_domain_name = samdb_result_string(domain_res[0], "dnsRoot", NULL);
WERR_TALLOC_CHECK(info1->dns_domain_name);
info1->status = DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY;
if (result_filter) {
- result_basedn = samdb_result_string(domain_res[0], "dn", NULL);
+ result_basedn = samdb_result_string(domain_res[0], "ncName", NULL);
ret = gendb_search(b_state->sam_ctx, mem_ctx, result_basedn, &result_res,
result_attrs, "%s", result_filter);
@@ -187,7 +188,7 @@
/* here we can use result_res[0] and domain_res[0] */
switch (format_desired) {
case DRSUAPI_DS_NAME_FORMAT_FQDN_1779: {
- info1->result_name = samdb_result_string(result_res[0], "dn", NULL);
+ info1->result_name = result_res[0]->dn;
WERR_TALLOC_CHECK(info1->result_name);
info1->status = DRSUAPI_DS_NAME_STATUS_OK;
@@ -197,7 +198,7 @@
const char *_dom;
const char *_acc = "";
- _dom = samdb_result_string(domain_res[0], "name", NULL);
+ _dom = samdb_result_string(domain_res[0], "nETBIOSName", NULL);
WERR_TALLOC_CHECK(_dom);
if (result_filter) {
More information about the samba-cvs
mailing list