From 4b0e5bd75373ffa2d847706a71fd0349dfa15e71 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 13 Jun 2005 09:10:17 +0000 Subject: r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_tree instead of a search expression. This allows our ldap server to pass its ASN.1 parsed search expressions straight to ldb, instead of going via strings. - updated all the ldb modules code to handle the new interface - got rid of the separate ldb_parse.h now that the ldb_parse structures are exposed externally - moved to C99 structure initialisation in ldb - switched ldap server to using ldb_search_bytree() (This used to be commit 96620ab2ee5d440bbbc51c1bc0cad9977770f897) --- source4/dsdb/samdb/ldb_modules/samldb.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'source4/dsdb/samdb/ldb_modules') diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c index a392f97865..5472bed107 100644 --- a/source4/dsdb/samdb/ldb_modules/samldb.c +++ b/source4/dsdb/samdb/ldb_modules/samldb.c @@ -51,6 +51,14 @@ static int samldb_search(struct ldb_module *module, const char *base, return ldb_next_search(module, base, scope, expression, attrs, res); } +static int samldb_search_bytree(struct ldb_module *module, const char *base, + enum ldb_scope scope, struct ldb_parse_tree *tree, + const char * const *attrs, struct ldb_message ***res) +{ + ldb_debug(module->ldb, LDB_DEBUG_TRACE, "samldb_search\n"); + return ldb_next_search_bytree(module, base, scope, tree, attrs, res); +} + /* allocate a new id, attempting to do it atomically return 0 on failure, the id on success @@ -599,15 +607,16 @@ static int samldb_destructor(void *module_ctx) } static const struct ldb_module_ops samldb_ops = { - "samldb", - samldb_search, - samldb_add_record, - samldb_modify_record, - samldb_delete_record, - samldb_rename_record, - samldb_lock, - samldb_unlock, - samldb_errstring + .name = "samldb", + .search = samldb_search, + .search_bytree = samldb_search_bytree, + .add_record = samldb_add_record, + .modify_record = samldb_modify_record, + .delete_record = samldb_delete_record, + .rename_record = samldb_rename_record, + .named_lock = samldb_lock, + .named_unlock = samldb_unlock, + .errstring = samldb_errstring }; -- cgit