ldb: Change some prototypes to using ldb_val instead of TDB_DATA
authorGarming Sam <garming@catalyst.net.nz>
Fri, 16 Feb 2018 04:13:26 +0000 (17:13 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 6 Apr 2018 00:08:44 +0000 (02:08 +0200)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
lib/ldb/ldb_tdb/ldb_index.c
lib/ldb/ldb_tdb/ldb_tdb.c
lib/ldb/ldb_tdb/ldb_tdb.h

index bb534c3833c38a8835ca3ec8f15e8ffc9a32a2aa..076db10f2ddd72567146fcfe50156b229838399d 100644 (file)
@@ -2783,11 +2783,11 @@ static int re_key(struct ltdb_private *ltdb, struct ldb_val ldb_key, struct ldb_
        }
        if (key.dsize != key2.dsize ||
            (memcmp(key.dptr, key2.dptr, key.dsize) != 0)) {
-               TDB_DATA data = {
-                       .dptr = val.data,
-                       .dsize = val.length
+               struct ldb_val ldb_key2 = {
+                       .data = key2.dptr,
+                       .length = key2.dsize
                };
-               ltdb->kv_ops->update_in_iterate(ltdb, key, key2, data, ctx);
+               ltdb->kv_ops->update_in_iterate(ltdb, ldb_key, ldb_key2, val, ctx);
        }
        talloc_free(key2.dptr);
 
index 20796f2162dd2180721f8bc5a31053ddd2f52f88..f94a308cbf96b7fbbffc3b4d5a68bbee7f0b1326 100644 (file)
@@ -417,8 +417,17 @@ static int ltdb_modified(struct ldb_module *module, struct ldb_dn *dn)
        return ret;
 }
 
-static int ltdb_tdb_store(struct ltdb_private *ltdb, TDB_DATA key, TDB_DATA data, int flags)
+static int ltdb_tdb_store(struct ltdb_private *ltdb, struct ldb_val ldb_key,
+                         struct ldb_val ldb_data, int flags)
 {
+       TDB_DATA key = {
+               .dptr = ldb_key.data,
+               .dsize = ldb_key.length
+       };
+       TDB_DATA data = {
+               .dptr = ldb_data.data,
+               .dsize = ldb_data.length
+       };
        return tdb_store(ltdb->tdb, key, data, flags);
 }
 
@@ -439,7 +448,8 @@ int ltdb_store(struct ldb_module *module, const struct ldb_message *msg, int flg
 {
        void *data = ldb_module_get_private(module);
        struct ltdb_private *ltdb = talloc_get_type(data, struct ltdb_private);
-       TDB_DATA tdb_key, tdb_data;
+       TDB_DATA tdb_key;
+       struct ldb_val ldb_key;
        struct ldb_val ldb_data;
        int ret = LDB_SUCCESS;
        TALLOC_CTX *tdb_key_ctx = talloc_new(module);
@@ -465,10 +475,10 @@ int ltdb_store(struct ldb_module *module, const struct ldb_message *msg, int flg
                return LDB_ERR_OTHER;
        }
 
-       tdb_data.dptr = ldb_data.data;
-       tdb_data.dsize = ldb_data.length;
+       ldb_key.data = tdb_key.dptr;
+       ldb_key.length = tdb_key.dsize;
 
-       ret = ltdb->kv_ops->store(ltdb, tdb_key, tdb_data, flgs);
+       ret = ltdb->kv_ops->store(ltdb, ldb_key, ldb_data, flgs);
        if (ret != 0) {
                bool is_special = ldb_dn_is_special(msg->dn);
                ret = ltdb->kv_ops->error(ltdb);
@@ -654,8 +664,12 @@ static int ltdb_add(struct ltdb_context *ctx)
        return ret;
 }
 
-static int ltdb_tdb_delete(struct ltdb_private *ltdb, TDB_DATA tdb_key)
+static int ltdb_tdb_delete(struct ltdb_private *ltdb, struct ldb_val ldb_key)
 {
+       TDB_DATA tdb_key = {
+               .dptr = ldb_key.data,
+               .dsize = ldb_key.length
+       };
        return tdb_delete(ltdb->tdb, tdb_key);
 }
 
@@ -668,6 +682,7 @@ int ltdb_delete_noindex(struct ldb_module *module,
 {
        void *data = ldb_module_get_private(module);
        struct ltdb_private *ltdb = talloc_get_type(data, struct ltdb_private);
+       struct ldb_val ldb_key;
        TDB_DATA tdb_key;
        int ret;
        TALLOC_CTX *tdb_key_ctx = talloc_new(module);
@@ -686,7 +701,10 @@ int ltdb_delete_noindex(struct ldb_module *module,
                return LDB_ERR_OTHER;
        }
 
-       ret = ltdb->kv_ops->delete(ltdb, tdb_key);
+       ldb_key.data = tdb_key.dptr;
+       ldb_key.length = tdb_key.dsize;
+
+       ret = ltdb->kv_ops->delete(ltdb, ldb_key);
        TALLOC_FREE(tdb_key_ctx);
 
        if (ret != 0) {
@@ -1777,12 +1795,27 @@ static int ltdb_tdb_traverse_fn(struct ltdb_private *ltdb, ldb_kv_traverse_fn fn
        }
 }
 
-static int ltdb_tdb_update_in_iterate(struct ltdb_private *ltdb, TDB_DATA key, TDB_DATA key2, TDB_DATA data, void *state)
+static int ltdb_tdb_update_in_iterate(struct ltdb_private *ltdb,
+                                     struct ldb_val ldb_key,
+                                     struct ldb_val ldb_key2,
+                                     struct ldb_val ldb_data, void *state)
 {
        int tdb_ret;
        struct ldb_context *ldb;
        struct ltdb_reindex_context *ctx = (struct ltdb_reindex_context *)state;
        struct ldb_module *module = ctx->module;
+       TDB_DATA key = {
+               .dptr = ldb_key.data,
+               .dsize = ldb_key.length
+       };
+       TDB_DATA key2 = {
+               .dptr = ldb_key2.data,
+               .dsize = ldb_key2.length
+       };
+       TDB_DATA data = {
+               .dptr = ldb_data.data,
+               .dsize = ldb_data.length
+       };
 
        ldb = ldb_module_get_ctx(module);
 
index 28dd20915c779d88f533a2e500820620d6b55c64..2c0ea7cfe3842ee9310b40f3eb123272e7e5cd88 100644 (file)
@@ -10,11 +10,11 @@ typedef int (*ldb_kv_traverse_fn)(struct ltdb_private *ltdb,
                                  void *ctx);
 
 struct kv_db_ops {
-       int (*store)(struct ltdb_private *ltdb, TDB_DATA key, TDB_DATA data, int flags);
-       int (*delete)(struct ltdb_private *ltdb, TDB_DATA key);
+       int (*store)(struct ltdb_private *ltdb, struct ldb_val key, struct ldb_val data, int flags);
+       int (*delete)(struct ltdb_private *ltdb, struct ldb_val key);
        int (*iterate)(struct ltdb_private *ltdb, ldb_kv_traverse_fn fn, void *ctx);
-       int (*update_in_iterate)(struct ltdb_private *ltdb, TDB_DATA key,
-                                TDB_DATA key2, TDB_DATA data, void *ctx);
+       int (*update_in_iterate)(struct ltdb_private *ltdb, struct ldb_val key,
+                                struct ldb_val key2, struct ldb_val data, void *ctx);
        int (*fetch_and_parse)(struct ltdb_private *ltdb, TDB_DATA key,
                                int (*parser)(TDB_DATA key, TDB_DATA data,
                                              void *private_data),