The branch, v4-0-test has been updated via a3e1f2830679a56366f0080115de504cdb0144f7 (commit) via 9bfc4757887ceabb4c621d62c140515794679250 (commit) from def46f6852075e1efe2bb7c5a7cffa5defdbb4ee (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test - Log ----------------------------------------------------------------- commit a3e1f2830679a56366f0080115de504cdb0144f7 Author: Andrew Bartlett <[EMAIL PROTECTED]> Date: Thu Mar 13 16:35:53 2008 +1100 Don't use 'dn', this attribute does not exist with the LDAP backend, or in AD. Andrew Bartlett commit 9bfc4757887ceabb4c621d62c140515794679250 Author: Andrew Bartlett <[EMAIL PROTECTED]> Date: Thu Mar 13 16:35:11 2008 +1100 Show why a LookupName fails (help debugging) Andrew Bartlett ----------------------------------------------------------------------- Summary of changes: source/dsdb/samdb/cracknames.c | 2 +- source/rpc_server/lsa/dcesrv_lsa.c | 23 ++++++++++++++++++++--- source/rpc_server/lsa/lsa_lookup.c | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) Changeset truncated at 500 lines: diff --git a/source/dsdb/samdb/cracknames.c b/source/dsdb/samdb/cracknames.c index 93da46d..b9333e4 100644 --- a/source/dsdb/samdb/cracknames.c +++ b/source/dsdb/samdb/cracknames.c @@ -329,7 +329,7 @@ static WERROR DsCrackNameUPN(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx, result_filter = talloc_asprintf(mem_ctx, "(&(objectClass=user)(samAccountName=%s))", ldb_binary_encode_string(mem_ctx, unparsed_name_short)); - domain_filter = talloc_asprintf(mem_ctx, "(dn=%s)", ldb_dn_get_linearized(domain_res->msgs[0]->dn)); + domain_filter = talloc_asprintf(mem_ctx, "(distinguishedName=%s)", ldb_dn_get_linearized(domain_res->msgs[0]->dn)); if (!result_filter || !domain_filter) { free(unparsed_name_short); diff --git a/source/rpc_server/lsa/dcesrv_lsa.c b/source/rpc_server/lsa/dcesrv_lsa.c index 4375088..4d381ea 100644 --- a/source/rpc_server/lsa/dcesrv_lsa.c +++ b/source/rpc_server/lsa/dcesrv_lsa.c @@ -644,9 +644,26 @@ static NTSTATUS dcesrv_lsa_CreateTrustedDomain(struct dcesrv_call_state *dce_cal /* create the trusted_domain */ ret = ldb_add(trusted_domain_state->policy->sam_ldb, msg); - if (ret != LDB_SUCCESS) { - DEBUG(0,("Failed to create trusted_domain record %s: %s\n", - ldb_dn_get_linearized(msg->dn), ldb_errstring(trusted_domain_state->policy->sam_ldb))); + switch (ret) { + case LDB_SUCCESS: + break; + case LDB_ERR_ENTRY_ALREADY_EXISTS: + ldb_transaction_cancel(trusted_domain_state->policy->sam_ldb); + DEBUG(0,("Failed to create trusted domain record %s: %s\n", + ldb_dn_get_linearized(msg->dn), + ldb_errstring(trusted_domain_state->policy->sam_ldb))); + return NT_STATUS_DOMAIN_EXISTS; + case LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS: + ldb_transaction_cancel(trusted_domain_state->policy->sam_ldb); + DEBUG(0,("Failed to create trusted domain record %s: %s\n", + ldb_dn_get_linearized(msg->dn), + ldb_errstring(trusted_domain_state->policy->sam_ldb))); + return NT_STATUS_ACCESS_DENIED; + default: + ldb_transaction_cancel(trusted_domain_state->policy->sam_ldb); + DEBUG(0,("Failed to create user record %s: %s\n", + ldb_dn_get_linearized(msg->dn), + ldb_errstring(trusted_domain_state->policy->sam_ldb))); return NT_STATUS_INTERNAL_DB_CORRUPTION; } diff --git a/source/rpc_server/lsa/lsa_lookup.c b/source/rpc_server/lsa/lsa_lookup.c index bcc2af9..e01efa8 100644 --- a/source/rpc_server/lsa/lsa_lookup.c +++ b/source/rpc_server/lsa/lsa_lookup.c @@ -220,6 +220,7 @@ static NTSTATUS dcesrv_lsa_lookup_name(struct loadparm_context *lp_ctx, } else if (strchr_m(name, '@')) { status = crack_name_to_nt4_name(mem_ctx, lp_ctx, DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL, name, &domain, &username); if (!NT_STATUS_IS_OK(status)) { + DEBUG(3, ("Failed to crack name %s into an NT4 name: %s\n", name, nt_errstr(status))); return status; } } else { -- Samba Shared Repository