summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/modules
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/ldb/modules')
-rw-r--r--source4/lib/ldb/modules/skel.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/source4/lib/ldb/modules/skel.c b/source4/lib/ldb/modules/skel.c
index 09f2452365..33e5d53cef 100644
--- a/source4/lib/ldb/modules/skel.c
+++ b/source4/lib/ldb/modules/skel.c
@@ -36,6 +36,10 @@
#include "ldb/include/ldb.h"
#include "ldb/include/ldb_private.h"
+static struct private_data {
+ const char *error_string;
+};
+
/* search */
static int skel_search(struct ldb_module *module, const char *base,
enum ldb_scope scope, const char *expression,
@@ -69,13 +73,13 @@ static int skel_rename_record(struct ldb_module *module, const char *olddn, cons
}
/* named_lock */
-static const char *skel_named_lock(struct ldb_module *module, const char *lockname)
+static int skel_named_lock(struct ldb_module *module, const char *lockname)
{
return ldb_next_named_lock(module, lockname);
}
/* named_unlock */
-static const char *skel_named_unlock(struct ldb_module *module, const char *lockname)
+static int skel_named_unlock(struct ldb_module *module, const char *lockname)
{
return ldb_next_named_unlock(module, lockname);
}
@@ -105,18 +109,28 @@ static const struct ldb_module_ops skel_ops = {
skel_errstring
};
-#ifdef HAVE_DLOPEN
- struct ldb_module *init_module(struct ldb_context *ldb, const char *options[])
+#ifdef HAVE_DLOPEN_DISABLED
+struct ldb_module *init_module(struct ldb_context *ldb, const char *options[])
#else
-struct ldb_module *skel_plugin_init(struct ldb_context *ldb, const char *options[])
+struct ldb_module *skel_module_init(struct ldb_context *ldb, const char *options[])
#endif
{
struct ldb_module *ctx;
+ struct private_data *data;
- ctx = (struct ldb_module *)malloc(sizeof(struct ldb_module));
+ ctx = talloc(ldb, struct ldb_module);
if (!ctx)
return NULL;
+ data = talloc(ctx, struct private_data);
+ if (data == NULL) {
+ talloc_free(ctx);
+ return NULL;
+ }
+
+ data->error_string = NULL;
+ ctx->private_data = data;
+
ctx->ldb = ldb;
ctx->prev = ctx->next = NULL;
ctx->private_data = NULL;