r4502: add an error reporting function
authorSimo Sorce <idra@samba.org>
Mon, 3 Jan 2005 08:52:39 +0000 (08:52 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:08:15 +0000 (13:08 -0500)
(This used to be commit 985a58a16d04f3b92b4bbff86f6c466385f01321)

source4/lib/ldb/modules/timestamps.c

index 53c39e751e332fd441b20ea3e73ad0b472dbdf53..95a2ddc88e5923412a0c4d22ede1dd1b563dd0b5 100644 (file)
@@ -230,6 +230,14 @@ static int timestamps_unlock(struct ldb_module *module, const char *lockname)
 static const char *timestamps_errstring(struct ldb_module *module)
 {
        ldb_debug(module->ldb, LDB_DEBUG_TRACE, "timestamps_errstring\n");
+       if (data->error_string) {
+               char *error;
+
+               error = data->error_string;
+               data->error_string = NULL;
+               return error;
+       }
+
        return ldb_next_errstring(module);
 }
 
@@ -256,14 +264,22 @@ struct ldb_module *timestamps_module_init(struct ldb_context *ldb, const char *o
 #endif
 {
        struct ldb_module *ctx;
+       struct private_data *data;
 
        ctx = talloc_p(ldb, struct ldb_module);
        if (!ctx)
                return NULL;
 
+       data = talloc_p(ctx, struct private_data);
+       if (!data) {
+               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;
        ctx->ops = &timestamps_ops;
 
        return ctx;