summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/dsdb/schema/schema_set.c7
-rw-r--r--source4/torture/libnet/libnet_BecomeDC.c14
2 files changed, 14 insertions, 7 deletions
diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c
index 4a4466af34..21341157fe 100644
--- a/source4/dsdb/schema/schema_set.c
+++ b/source4/dsdb/schema/schema_set.c
@@ -487,6 +487,11 @@ int dsdb_set_global_schema(struct ldb_context *ldb)
return ret;
}
+bool dsdb_uses_global_schema(struct ldb_context *ldb)
+{
+ return (ldb_get_opaque(ldb, "dsdb_use_global_schema") != NULL);
+}
+
/**
* Find the schema object for this ldb
*
@@ -505,7 +510,7 @@ struct dsdb_schema *dsdb_get_schema(struct ldb_context *ldb, TALLOC_CTX *referen
}
/* see if we have a cached copy */
- use_global_schema = (ldb_get_opaque(ldb, "dsdb_use_global_schema") != NULL);
+ use_global_schema = dsdb_uses_global_schema(ldb);
if (use_global_schema) {
schema_in = global_schema;
} else {
diff --git a/source4/torture/libnet/libnet_BecomeDC.c b/source4/torture/libnet/libnet_BecomeDC.c
index 87d646cf92..0fbad00d7b 100644
--- a/source4/torture/libnet/libnet_BecomeDC.c
+++ b/source4/torture/libnet/libnet_BecomeDC.c
@@ -144,16 +144,18 @@ bool torture_net_become_dc(struct torture_context *torture)
lp_ctx = libnet_vampire_cb_lp_ctx(s);
sam_ldb_path = talloc_asprintf(s, "%s/%s", location, "private/sam.ldb");
+ lpcfg_set_cmdline(lp_ctx, "sam database", sam_ldb_path);
torture_comment(torture, "Reopen the SAM LDB with system credentials and all replicated data: %s\n", sam_ldb_path);
- ldb = ldb_wrap_connect(s, torture->ev, lp_ctx, sam_ldb_path,
- system_session(lp_ctx),
- NULL, 0);
- torture_assert_int_equal_goto(torture, (ldb?1:0), 1, ret, cleanup,
+ ldb = samdb_connect(s, torture->ev, lp_ctx, system_session(lp_ctx), 0);
+ torture_assert_goto(torture, ldb != NULL, ret, cleanup,
talloc_asprintf(torture,
"Failed to open '%s'\n", sam_ldb_path));
+ torture_assert_goto(torture, dsdb_uses_global_schema(ldb), ret, cleanup,
+ "Uses global schema");
+
schema = dsdb_get_schema(ldb, s);
- torture_assert_int_equal_goto(torture, (schema?1:0), 1, ret, cleanup,
+ torture_assert_goto(torture, schema != NULL, ret, cleanup,
"Failed to get loaded dsdb_schema\n");
/* Make sure we get this from the command line */
@@ -174,7 +176,7 @@ cleanup:
"libnet_UnbecomeDC() failed - %s %s\n",
nt_errstr(status), u.out.error_string));
- /* Leave domain. */
+ /* Leave domain. */
torture_leave_domain(torture, tj);
talloc_free(s);