From 679e95db033fd11d17c1f1ac5e44f6cc4df2220e Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 15 Nov 2004 11:40:27 +0000 Subject: r3754: merge in ldb modules support from the tmp branch ldbPlugins (This used to be commit 71323f424b4561af1fdddd2358629049be3dad8c) --- source4/lib/ldb/common/ldb.c | 56 ++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 31 deletions(-) (limited to 'source4/lib/ldb/common/ldb.c') diff --git a/source4/lib/ldb/common/ldb.c b/source4/lib/ldb/common/ldb.c index fa4a64c19d..4fe2088daf 100644 --- a/source4/lib/ldb/common/ldb.c +++ b/source4/lib/ldb/common/ldb.c @@ -47,20 +47,32 @@ struct ldb_context *ldb_connect(const char *url, unsigned int flags, const char *options[]) { + struct ldb_context *ldb_ctx = NULL; if (strncmp(url, "tdb:", 4) == 0 || strchr(url, ':') == NULL) { - return ltdb_connect(url, flags, options); + ldb_ctx = ltdb_connect(url, flags, options); } #if HAVE_LDAP if (strncmp(url, "ldap", 4) == 0) { - return lldb_connect(url, flags, options); + ldb_ctx = lldb_connect(url, flags, options); } #endif - errno = EINVAL; - return NULL; + + if (!ldb_ctx) { + errno = EINVAL; + return NULL; + } + + if (ldb_load_modules(ldb_ctx, options) != 0) { + ldb_close(ldb_ctx); + errno = EINVAL; + return NULL; + } + + return ldb_ctx; } /* @@ -68,8 +80,7 @@ struct ldb_context *ldb_connect(const char *url, unsigned int flags, */ int ldb_close(struct ldb_context *ldb) { - ldb_debug(ldb, LDB_DEBUG_TRACE, "ldb_close"); - return ldb->ops->close(ldb); + return ldb->modules->ops->close(ldb->modules); } @@ -84,12 +95,7 @@ int ldb_search(struct ldb_context *ldb, const char *expression, const char * const *attrs, struct ldb_message ***res) { - int ret; - ret = ldb->ops->search(ldb, base, scope, expression, attrs, res); - - ldb_debug(ldb, LDB_DEBUG_TRACE, "ldb_search(%s) -> %d records\n", - expression, ret); - return ret; + return ldb->modules->ops->search(ldb->modules, base, scope, expression, attrs, res); } /* @@ -97,7 +103,7 @@ int ldb_search(struct ldb_context *ldb, */ int ldb_search_free(struct ldb_context *ldb, struct ldb_message **msgs) { - return ldb->ops->search_free(ldb, msgs); + return ldb->modules->ops->search_free(ldb->modules, msgs); } @@ -108,10 +114,7 @@ int ldb_search_free(struct ldb_context *ldb, struct ldb_message **msgs) int ldb_add(struct ldb_context *ldb, const struct ldb_message *message) { - int ret; - ret = ldb->ops->add_record(ldb, message); - ldb_debug(ldb, LDB_DEBUG_TRACE, "ldb_add(%s) -> %d\n", message->dn, ret); - return ret; + return ldb->modules->ops->add_record(ldb->modules, message); } /* @@ -120,11 +123,7 @@ int ldb_add(struct ldb_context *ldb, int ldb_modify(struct ldb_context *ldb, const struct ldb_message *message) { - int ret; - ret = ldb->ops->modify_record(ldb, message); - ldb_debug(ldb, LDB_DEBUG_TRACE, "ldb_modify(%s) -> %d\n", - message->dn, ret); - return ret; + return ldb->modules->ops->modify_record(ldb->modules, message); } @@ -133,10 +132,7 @@ int ldb_modify(struct ldb_context *ldb, */ int ldb_delete(struct ldb_context *ldb, const char *dn) { - int ret; - ret = ldb->ops->delete_record(ldb, dn); - ldb_debug(ldb, LDB_DEBUG_TRACE, "ldb_delete(%s) -> %d\n", dn, ret); - return ret; + return ldb->modules->ops->delete_record(ldb->modules, dn); } /* @@ -144,10 +140,7 @@ int ldb_delete(struct ldb_context *ldb, const char *dn) */ int ldb_rename(struct ldb_context *ldb, const char *olddn, const char *newdn) { - int ret; - ret = ldb->ops->rename_record(ldb, olddn, newdn); - ldb_debug(ldb, LDB_DEBUG_TRACE, "ldb_rename(%s,%s) -> %d\n", olddn, newdn); - return ret; + return ldb->modules->ops->rename_record(ldb->modules, olddn, newdn); } /* @@ -155,5 +148,6 @@ int ldb_rename(struct ldb_context *ldb, const char *olddn, const char *newdn) */ const char *ldb_errstring(struct ldb_context *ldb) { - return ldb->ops->errstring(ldb); + return ldb->modules->ops->errstring(ldb->modules); } + -- cgit