diff options
author | Simo Sorce <idra@samba.org> | 2004-11-15 11:40:27 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:51 -0500 |
commit | 679e95db033fd11d17c1f1ac5e44f6cc4df2220e (patch) | |
tree | 2a6138f9c6c66025ac0e68965dc73f32846f0d1b /source4/lib/ldb/common | |
parent | 5b397619ccd3a2189c053209387093b60ff53094 (diff) | |
download | samba-679e95db033fd11d17c1f1ac5e44f6cc4df2220e.tar.gz samba-679e95db033fd11d17c1f1ac5e44f6cc4df2220e.tar.bz2 samba-679e95db033fd11d17c1f1ac5e44f6cc4df2220e.zip |
r3754: merge in ldb modules support from the tmp branch ldbPlugins
(This used to be commit 71323f424b4561af1fdddd2358629049be3dad8c)
Diffstat (limited to 'source4/lib/ldb/common')
-rw-r--r-- | source4/lib/ldb/common/ldb.c | 56 |
1 files changed, 25 insertions, 31 deletions
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); } + |