svn commit: samba r11194 - in
branches/SAMBA_4_0/source/rpc_server/drsuapi: .
abartlet at samba.org
abartlet at samba.org
Thu Oct 20 01:48:12 GMT 2005
Author: abartlet
Date: 2005-10-20 01:48:11 +0000 (Thu, 20 Oct 2005)
New Revision: 11194
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11194
Log:
Use the special ldb attribute "canonicalName" (therefore testing that
codepath) in DRSUAPI CrackNames.
Fix the NT4 account return value.
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-10-19 21:53:03 UTC (rev 11193)
+++ branches/SAMBA_4_0/source/rpc_server/drsuapi/drsuapi_cracknames.c 2005-10-20 01:48:11 UTC (rev 11194)
@@ -501,7 +501,6 @@
/* here we need to set the attrs lists for domain and result lookups */
switch (format_desired) {
case DRSUAPI_DS_NAME_FORMAT_FQDN_1779:
- case DRSUAPI_DS_NAME_FORMAT_CANONICAL:
case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: {
const char * const _domain_attrs[] = { "ncName", "dnsRoot", NULL};
const char * const _result_attrs[] = { NULL};
@@ -510,6 +509,14 @@
result_attrs = _result_attrs;
break;
}
+ case DRSUAPI_DS_NAME_FORMAT_CANONICAL: {
+ const char * const _domain_attrs[] = { "ncName", "dnsRoot", NULL};
+ const char * const _result_attrs[] = { "canonicalName", NULL };
+
+ domain_attrs = _domain_attrs;
+ result_attrs = _result_attrs;
+ break;
+ }
case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: {
const char * const _domain_attrs[] = { "ncName", "dnsRoot", "nETBIOSName", NULL};
const char * const _result_attrs[] = { "sAMAccountName", "objectSid", NULL};
@@ -614,16 +621,18 @@
info1->status = DRSUAPI_DS_NAME_STATUS_OK;
return WERR_OK;
}
- case DRSUAPI_DS_NAME_FORMAT_CANONICAL:
+ case DRSUAPI_DS_NAME_FORMAT_CANONICAL: {
+ info1->result_name = samdb_result_string(result_res[0], "canonicalName", NULL);
+ info1->status = DRSUAPI_DS_NAME_STATUS_OK;
+ return WERR_OK;
+ }
+ case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: {
+ /* Not in the virtual ldb attribute */
return DsCrackNameOneSyntactical(mem_ctx,
DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
- DRSUAPI_DS_NAME_FORMAT_CANONICAL,
- result_res[0]->dn, name, info1);
- case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX:
- return DsCrackNameOneSyntactical(mem_ctx,
- DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX,
result_res[0]->dn, name, info1);
+ }
case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: {
const struct dom_sid *sid = samdb_result_dom_sid(mem_ctx, result_res[0], "objectSid");
const char *_acc = "", *_dom = "";
@@ -651,14 +660,14 @@
return WERR_OK;
}
dom_sid->num_auths--;
- ldb_ret = gendb_search(b_state->sam_ctx, mem_ctx, NULL, &domain_res2, attrs,
+ ldb_ret = gendb_search(b_state->sam_ctx, mem_ctx, NULL, &domain_res, attrs,
"(objectSid=%s)", ldap_encode_ndr_dom_sid(mem_ctx, dom_sid));
if (ldb_ret != 1) {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
return WERR_OK;
}
- ldb_ret = gendb_search(b_state->sam_ctx, mem_ctx, NULL, &domain_res, domain_attrs,
- "(ncName=%s)", ldb_dn_linearize(mem_ctx, domain_res2[0]->dn));
+ ldb_ret = gendb_search(b_state->sam_ctx, mem_ctx, NULL, &domain_res2, domain_attrs,
+ "(ncName=%s)", ldb_dn_linearize(mem_ctx, domain_res[0]->dn));
if (ldb_ret != 1) {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
return WERR_OK;
@@ -711,7 +720,7 @@
drsuapi_DsCrackNames
*/
WERROR dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct drsuapi_DsCrackNames *r)
+ struct drsuapi_DsCrackNames *r)
{
WERROR status;
struct drsuapi_bind_state *b_state;
More information about the samba-cvs
mailing list