[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-1283-ga3e1f28

Andrew Bartlett abartlet at samba.org
Thu Mar 13 05:36:37 GMT 2008


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 <abartlet at samba.org>
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 <abartlet at samba.org>
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


More information about the samba-cvs mailing list