summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2010-10-10 16:56:55 +0200
committerJelmer Vernooij <jelmer@samba.org>2010-10-10 23:08:45 +0200
commit6280725b47391c69dd7db1133c15bd0ce7418da6 (patch)
tree3b88438a48aded9cca475c557634a695b59f2121
parent614c8ea98650405b461a6ce034ee5e5acc45a952 (diff)
downloadsamba-6280725b47391c69dd7db1133c15bd0ce7418da6.tar.gz
samba-6280725b47391c69dd7db1133c15bd0ce7418da6.tar.bz2
samba-6280725b47391c69dd7db1133c15bd0ce7418da6.zip
samdb: Handle schema setup in samdb, not in more generic ldbsamba.
-rw-r--r--source4/dsdb/samdb/samdb.c9
-rw-r--r--source4/lib/ldb-samba/ldb_wrap.c11
-rw-r--r--source4/lib/ldb-samba/ldif_handlers.c1
-rw-r--r--source4/lib/ldb-samba/wscript_build2
4 files changed, 12 insertions, 11 deletions
diff --git a/source4/dsdb/samdb/samdb.c b/source4/dsdb/samdb/samdb.c
index 637da4fcf2..081ee7e2ee 100644
--- a/source4/dsdb/samdb/samdb.c
+++ b/source4/dsdb/samdb/samdb.c
@@ -126,13 +126,22 @@ struct ldb_context *samdb_connect(TALLOC_CTX *mem_ctx,
struct auth_session_info *session_info)
{
struct ldb_context *ldb;
+ struct dsdb_schema *schema;
ldb = ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx,
lpcfg_sam_url(lp_ctx), session_info,
samdb_credentials(ev_ctx, lp_ctx),
0);
+
if (!ldb) {
return NULL;
}
+
+ schema = dsdb_get_schema(ldb, NULL);
+ /* make the resulting schema global */
+ if (schema) {
+ dsdb_make_schema_global(ldb, schema);
+ }
+
return ldb;
}
diff --git a/source4/lib/ldb-samba/ldb_wrap.c b/source4/lib/ldb-samba/ldb_wrap.c
index ebc1818c76..7cf9128e96 100644
--- a/source4/lib/ldb-samba/ldb_wrap.c
+++ b/source4/lib/ldb-samba/ldb_wrap.c
@@ -61,7 +61,7 @@ static void ldb_wrap_debug(void *context, enum ldb_debug_level level,
case LDB_DEBUG_TRACE:
samba_level = 5;
break;
-
+
};
vasprintf(&s, fmt, ap);
if (!s) return;
@@ -117,6 +117,7 @@ static int ldb_wrap_destructor(struct ldb_wrap *w)
return 0;
}
+
/*
wrapped connection to a ldb database
to close just talloc_free() the returned ldb_context
@@ -267,14 +268,6 @@ static int ldb_wrap_destructor(struct ldb_wrap *w)
DLIST_ADD(ldb_wrap_list, w);
- /* make the resulting schema global */
- if (lp_ctx != NULL && strcmp(lpcfg_sam_url(lp_ctx), url) == 0) {
- struct dsdb_schema *schema = dsdb_get_schema(ldb, NULL);
- if (schema) {
- dsdb_make_schema_global(ldb, schema);
- }
- }
-
DEBUG(3,("ldb_wrap open of %s\n", url));
talloc_set_destructor(w, ldb_wrap_destructor);
diff --git a/source4/lib/ldb-samba/ldif_handlers.c b/source4/lib/ldb-samba/ldif_handlers.c
index 324209b836..7cb42e36dc 100644
--- a/source4/lib/ldb-samba/ldif_handlers.c
+++ b/source4/lib/ldb-samba/ldif_handlers.c
@@ -1299,7 +1299,6 @@ int ldb_register_samba_handlers(struct ldb_context *ldb)
return ret;
}
-
}
return LDB_SUCCESS;
diff --git a/source4/lib/ldb-samba/wscript_build b/source4/lib/ldb-samba/wscript_build
index 7fdaac8b90..d647884353 100644
--- a/source4/lib/ldb-samba/wscript_build
+++ b/source4/lib/ldb-samba/wscript_build
@@ -9,7 +9,7 @@ bld.SAMBA_SUBSYSTEM('LDBSAMBA',
autoproto='ldif_handlers_proto.h',
public_deps='ldb',
public_headers='ldb_wrap.h',
- deps='LIBSECURITY SAMDB_SCHEMA LIBNDR NDR_DRSBLOBS CREDENTIALS UTIL_LDB NDR_DNSP'
+ deps='LIBSECURITY LIBNDR NDR_DRSBLOBS CREDENTIALS UTIL_LDB NDR_DNSP'
)