summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/include/ldb_module.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-04-02 16:42:21 +1100
committerAndrew Tridgell <tridge@samba.org>2009-04-02 16:42:21 +1100
commit9539e2b508b3340b49575e5022c365ec382b2097 (patch)
tree57f28e0743b527bcb28fad2a79863e47be9b1416 /source4/lib/ldb/include/ldb_module.h
parent1bc9c3923574d548810733b512716d5758814328 (diff)
downloadsamba-9539e2b508b3340b49575e5022c365ec382b2097.tar.gz
samba-9539e2b508b3340b49575e5022c365ec382b2097.tar.bz2
samba-9539e2b508b3340b49575e5022c365ec382b2097.zip
major upgrade to the ldb attribute handling
This is all working towards supporting the full WSPP schema without a major performance penalty. We now use binary searches when looking up classes and attributes. We also avoid the loop loading the attributes into ldb, by adding a hook to override the ldb attribute search function in a module. The attributes can thus be loaded once, and then saved as part of the global schema. Also added support for a few more key attribute syntaxes, as needed for the full schema.
Diffstat (limited to 'source4/lib/ldb/include/ldb_module.h')
-rw-r--r--source4/lib/ldb/include/ldb_module.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/lib/ldb/include/ldb_module.h b/source4/lib/ldb/include/ldb_module.h
index e07fd43e27..d9950d6649 100644
--- a/source4/lib/ldb/include/ldb_module.h
+++ b/source4/lib/ldb/include/ldb_module.h
@@ -89,6 +89,13 @@ int ldb_schema_attribute_add(struct ldb_context *ldb,
const char *syntax);
void ldb_schema_attribute_remove(struct ldb_context *ldb, const char *name);
+/* we allow external code to override the name -> schema_attribute function */
+typedef const struct ldb_schema_attribute *(*ldb_attribute_handler_override_fn_t)(struct ldb_context *, void *, const char *);
+
+void ldb_schema_attribute_set_override_handler(struct ldb_context *ldb,
+ ldb_attribute_handler_override_fn_t override,
+ void *private_data);
+
/* The following definitions come from lib/ldb/common/ldb_controls.c */
struct ldb_control *get_control_from_list(struct ldb_control **controls, const char *oid);
int save_controls(struct ldb_control *exclude, struct ldb_request *req, struct ldb_control ***saver);