summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/common/ldb.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-06-20 04:56:43 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:18:35 -0500
commitbd7a474b1967423711ff93c0080ce0f89270e3f9 (patch)
treeb78606ca4efbf1f298fbb3ae525ed5dd2c0a205d /source4/lib/ldb/common/ldb.c
parent6b4f3e17f0e62499e630b8822c807d692b424c23 (diff)
downloadsamba-bd7a474b1967423711ff93c0080ce0f89270e3f9.tar.gz
samba-bd7a474b1967423711ff93c0080ce0f89270e3f9.tar.bz2
samba-bd7a474b1967423711ff93c0080ce0f89270e3f9.zip
r7776: add a method for getting arbitrary opaque data into a ldb context, for use by backends.
Currently only EventContext is used in this way. (This used to be commit 9fa21b245843371f7777682ee4e5b98e2925b4d0)
Diffstat (limited to 'source4/lib/ldb/common/ldb.c')
-rw-r--r--source4/lib/ldb/common/ldb.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/source4/lib/ldb/common/ldb.c b/source4/lib/ldb/common/ldb.c
index 450fa75d8e..e268a8d0d7 100644
--- a/source4/lib/ldb/common/ldb.c
+++ b/source4/lib/ldb/common/ldb.c
@@ -178,3 +178,34 @@ const char *ldb_errstring(struct ldb_context *ldb)
return ldb->modules->ops->errstring(ldb->modules);
}
+
+/*
+ set backend specific opaque parameters
+*/
+int ldb_set_opaque(struct ldb_context *ldb, const char *name, void *value)
+{
+ struct ldb_opaque *o = talloc(ldb, struct ldb_opaque);
+ if (o == NULL) {
+ ldb_oom(ldb);
+ return -1;
+ }
+ o->next = ldb->opaque;
+ o->name = name;
+ o->value = value;
+ ldb->opaque = o;
+ return 0;
+}
+
+/*
+ get a previously set opaque value
+*/
+void *ldb_get_opaque(struct ldb_context *ldb, const char *name)
+{
+ struct ldb_opaque *o;
+ for (o=ldb->opaque;o;o=o->next) {
+ if (strcmp(o->name, name) == 0) {
+ return o->value;
+ }
+ }
+ return NULL;
+}