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

Reply via email to