ldb: Change ltdb_unpack_data to take an ldb_context
authorAndrew Bartlett <abartlet@samba.org>
Mon, 29 Oct 2012 23:21:42 +0000 (10:21 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 30 Oct 2012 21:13:56 +0000 (08:13 +1100)
It always de-references the module to find the ldb anyway.

Andrew Bartlett

lib/ldb/ldb_tdb/ldb_index.c
lib/ldb/ldb_tdb/ldb_pack.c
lib/ldb/ldb_tdb/ldb_search.c
lib/ldb/ldb_tdb/ldb_tdb.c
lib/ldb/ldb_tdb/ldb_tdb.h

index d2ef4b89a69b2f54a20331ac9685cc9277bb6a60..50c6ded56a9369395e66ad7cfdff274fc5678f54 100644 (file)
@@ -1509,7 +1509,7 @@ static int re_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *
                return -1;
        }
 
-       ret = ltdb_unpack_data(module, &data, msg);
+       ret = ltdb_unpack_data(ldb, &data, msg);
        if (ret != 0) {
                ldb_debug(ldb, LDB_DEBUG_ERROR, "Invalid data for index %s\n",
                                                ldb_dn_get_linearized(msg->dn));
index 7c13065aeeff39611bd8eb823e4e21e287a5d29e..003be1592ef0394d3bf4faa5fc8b903822c33f21 100644 (file)
@@ -154,18 +154,16 @@ int ltdb_pack_data(struct ldb_module *module,
 
   Free with ltdb_unpack_data_free()
 */
-int ltdb_unpack_data(struct ldb_module *module,
+int ltdb_unpack_data(struct ldb_context *ldb,
                     const TDB_DATA *data,
                     struct ldb_message *message)
 {
-       struct ldb_context *ldb;
        uint8_t *p;
        unsigned int remaining;
        unsigned int i, j;
        unsigned format;
        size_t len;
 
-       ldb = ldb_module_get_ctx(module);
        message->elements = NULL;
 
        p = data->dptr;
index 703ad6ad0ea6e353c5fe7b7d3634fd7410fc3691..4fb85103779eea50e81312cff3180c6d85e678cf 100644 (file)
@@ -244,9 +244,9 @@ static int ltdb_parse_data_unpack(TDB_DATA key, TDB_DATA data,
 {
        struct ltdb_parse_data_unpack_ctx *ctx = private_data;
 
-       int ret = ltdb_unpack_data(ctx->module, &data, ctx->msg);
+       struct ldb_context *ldb = ldb_module_get_ctx(ctx->module);
+       int ret = ltdb_unpack_data(ldb, &data, ctx->msg);
        if (ret == -1) {
-               struct ldb_context *ldb = ldb_module_get_ctx(ctx->module);
                ldb_debug(ldb, LDB_DEBUG_ERROR, "Invalid data for index %*.*s\n",
                          (int)key.dsize, (int)key.dsize, key.dptr);
                return LDB_ERR_OPERATIONS_ERROR;                
@@ -440,7 +440,7 @@ static int search_func(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, voi
        }
 
        /* unpack the record */
-       ret = ltdb_unpack_data(ac->module, &data, msg);
+       ret = ltdb_unpack_data(ldb, &data, msg);
        if (ret == -1) {
                talloc_free(msg);
                return -1;
index 3c181509c37c7c4f0a4bc6054fa77805136eeb9d..0e7c74c640981f6a82d405df790ec01418e48a5c 100644 (file)
@@ -693,7 +693,7 @@ int ltdb_modify_internal(struct ldb_module *module,
                goto done;
        }
 
-       ret = ltdb_unpack_data(module, &tdb_data, msg2);
+       ret = ltdb_unpack_data(ldb_module_get_ctx(module), &tdb_data, msg2);
        free(tdb_data.dptr);
        if (ret == -1) {
                ret = LDB_ERR_OTHER;
index c89dd7f1ae48bc5ac3266592b85b478375a55b80..ea85ca1be7adbff13816036afe0a361f9f4ad363 100644 (file)
@@ -99,7 +99,7 @@ int ltdb_pack_data(struct ldb_module *module,
                   TDB_DATA *data);
 void ltdb_unpack_data_free(struct ldb_module *module,
                           struct ldb_message *message);
-int ltdb_unpack_data(struct ldb_module *module,
+int ltdb_unpack_data(struct ldb_context *ldb,
                     const TDB_DATA *data,
                     struct ldb_message *message);