diff options
Diffstat (limited to 'lib/dbwrap/dbwrap_tdb.c')
-rw-r--r-- | lib/dbwrap/dbwrap_tdb.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/dbwrap/dbwrap_tdb.c b/lib/dbwrap/dbwrap_tdb.c index e12ec4405d6..9f8a9a602d1 100644 --- a/lib/dbwrap/dbwrap_tdb.c +++ b/lib/dbwrap/dbwrap_tdb.c @@ -35,7 +35,8 @@ struct db_tdb_ctx { } id; }; -static NTSTATUS db_tdb_store(struct db_record *rec, TDB_DATA data, int flag); +static NTSTATUS db_tdb_storev(struct db_record *rec, + const TDB_DATA *dbufs, int num_dbufs, int flag); static NTSTATUS db_tdb_delete(struct db_record *rec); static void db_tdb_log_key(const char *prefix, TDB_DATA key) @@ -137,7 +138,7 @@ static struct db_record *db_tdb_fetch_locked_internal( talloc_set_destructor(state.result, db_tdb_record_destr); state.result->private_data = ctx; - state.result->store = db_tdb_store; + state.result->storev = db_tdb_storev; state.result->delete_rec = db_tdb_delete; DEBUG(10, ("Allocated locked data 0x%p\n", state.result)); @@ -173,7 +174,6 @@ static struct db_record *db_tdb_try_fetch_locked( return db_tdb_fetch_locked_internal(db, mem_ctx, key); } - static int db_tdb_exists(struct db_context *db, TDB_DATA key) { struct db_tdb_ctx *ctx = talloc_get_type_abort( @@ -236,10 +236,12 @@ static NTSTATUS db_tdb_parse(struct db_context *db, TDB_DATA key, return NT_STATUS_OK; } -static NTSTATUS db_tdb_store(struct db_record *rec, TDB_DATA data, int flag) +static NTSTATUS db_tdb_storev(struct db_record *rec, + const TDB_DATA *dbufs, int num_dbufs, int flag) { struct db_tdb_ctx *ctx = talloc_get_type_abort(rec->private_data, struct db_tdb_ctx); + int ret; /* * This has a bug: We need to replace rec->value for correct @@ -247,8 +249,8 @@ static NTSTATUS db_tdb_store(struct db_record *rec, TDB_DATA data, int flag) * anymore after it was stored. */ - return (tdb_store(ctx->wtdb->tdb, rec->key, data, flag) == 0) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; + ret = tdb_storev(ctx->wtdb->tdb, rec->key, dbufs, num_dbufs, flag); + return (ret == 0) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; } static NTSTATUS db_tdb_delete(struct db_record *rec) @@ -282,7 +284,7 @@ static int db_tdb_traverse_func(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, rec.key = kbuf; rec.value = dbuf; - rec.store = db_tdb_store; + rec.storev = db_tdb_storev; rec.delete_rec = db_tdb_delete; rec.private_data = ctx->db->private_data; rec.db = ctx->db; @@ -304,7 +306,9 @@ static int db_tdb_traverse(struct db_context *db, return tdb_traverse(db_ctx->wtdb->tdb, db_tdb_traverse_func, &ctx); } -static NTSTATUS db_tdb_store_deny(struct db_record *rec, TDB_DATA data, int flag) +static NTSTATUS db_tdb_storev_deny(struct db_record *rec, + const TDB_DATA *dbufs, int num_dbufs, + int flag) { return NT_STATUS_MEDIA_WRITE_PROTECTED; } @@ -323,7 +327,7 @@ static int db_tdb_traverse_read_func(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA d rec.key = kbuf; rec.value = dbuf; - rec.store = db_tdb_store_deny; + rec.storev = db_tdb_storev_deny; rec.delete_rec = db_tdb_delete_deny; rec.private_data = ctx->db->private_data; rec.db = ctx->db; |