s4-libnet: Improve debugging of libnet_BecomeDC LDAP errors
authorAndrew Bartlett <abartlet@samba.org>
Tue, 14 Aug 2012 12:53:35 +0000 (22:53 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 14 Aug 2012 13:37:22 +0000 (15:37 +0200)
source4/dsdb/common/util.c
source4/libnet/libnet_become_dc.c

index 251e17759b4f27a9add07c0a4da53ec40b4322e0..fd54e4adb94d9af4f1b33951e6960df372430620 100644 (file)
@@ -1590,6 +1590,8 @@ int samdb_reference_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx, struct ldb_
 
        ret = dsdb_search(ldb, mem_ctx, &res, base, LDB_SCOPE_BASE, attrs, DSDB_SEARCH_ONE_ONLY, NULL);
        if (ret != LDB_SUCCESS) {
+               ldb_asprintf_errstring(ldb, "Cannot find DN %s to get attribute %s for reference dn: %s",
+                                      ldb_dn_get_linearized(base), attribute, ldb_errstring(ldb));
                return ret;
        }
 
index 28bb5a1e0ee0ef6385422dc169db033a85910d7f..306671b33c361c7fd8efdb4396e1e337061bf170 100644 (file)
@@ -1047,11 +1047,17 @@ static NTSTATUS becomeDC_ldap1_infrastructure_fsmo(struct libnet_BecomeDC_state
                                DS_GUID_INFRASTRUCTURE_CONTAINER,
                                &basedn);
        if (ret != LDB_SUCCESS) {
+               DEBUG(0,("Failed to get well known DN for DS_GUID_INFRASTRUCTURE_CONTAINER on %s: %s\n", 
+                        ldb_dn_get_linearized(ldb_get_default_basedn(s->ldap1.ldb)), 
+                        ldb_errstring(s->ldap1.ldb)));
                return NT_STATUS_LDAP(ret);
        }
 
        ret = samdb_reference_dn(s->ldap1.ldb, s, basedn, "fSMORoleOwner", &ntds_dn);
        if (ret != LDB_SUCCESS) {
+               DEBUG(0,("Failed to get reference DN from fsmoRoleOwner on %s: %s\n", 
+                        ldb_dn_get_linearized(basedn), 
+                        ldb_errstring(s->ldap1.ldb)));
                talloc_free(basedn);
                return NT_STATUS_LDAP(ret);
        }
@@ -1068,6 +1074,9 @@ static NTSTATUS becomeDC_ldap1_infrastructure_fsmo(struct libnet_BecomeDC_state
        ret = ldb_search(s->ldap1.ldb, s, &r, server_dn, LDB_SCOPE_BASE,
                         dns_attrs, "(objectClass=*)");
        if (ret != LDB_SUCCESS) {
+               DEBUG(0,("Failed to get server DN %s: %s\n", 
+                        ldb_dn_get_linearized(server_dn), 
+                        ldb_errstring(s->ldap1.ldb)));
                return NT_STATUS_LDAP(ret);
        } else if (r->count != 1) {
                talloc_free(r);
@@ -1083,6 +1092,9 @@ static NTSTATUS becomeDC_ldap1_infrastructure_fsmo(struct libnet_BecomeDC_state
        ret = ldb_search(s->ldap1.ldb, s, &r, ntds_dn, LDB_SCOPE_BASE,
                         guid_attrs, "(objectClass=*)");
        if (ret != LDB_SUCCESS) {
+               DEBUG(0,("Failed to get NTDS Settings DN %s: %s\n", 
+                        ldb_dn_get_linearized(ntds_dn), 
+                        ldb_errstring(s->ldap1.ldb)));
                return NT_STATUS_LDAP(ret);
        } else if (r->count != 1) {
                talloc_free(r);