summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-02-22 00:47:54 +0100
committerMichael Adam <obnox@samba.org>2009-02-26 11:05:22 +0100
commitaeb26fe9118ac8b479b2052a722b21e6404c0f00 (patch)
treeb3a1f5dc615516c19b0a43f389582e57306af0db
parent9475e88beadd19c245ca4010c398652a85ccfd78 (diff)
downloadsamba-aeb26fe9118ac8b479b2052a722b21e6404c0f00.tar.gz
samba-aeb26fe9118ac8b479b2052a722b21e6404c0f00.tar.bz2
samba-aeb26fe9118ac8b479b2052a722b21e6404c0f00.zip
Add db_tdb_parse
Signed-off-by: Michael Adam <obnox@samba.org>
-rw-r--r--source3/lib/dbwrap_tdb.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source3/lib/dbwrap_tdb.c b/source3/lib/dbwrap_tdb.c
index b5eb1881d4..c71e073b41 100644
--- a/source3/lib/dbwrap_tdb.c
+++ b/source3/lib/dbwrap_tdb.c
@@ -176,6 +176,17 @@ static int db_tdb_fetch(struct db_context *db, TALLOC_CTX *mem_ctx,
return 0;
}
+static int db_tdb_parse(struct db_context *db, TDB_DATA key,
+ int (*parser)(TDB_DATA key, TDB_DATA data,
+ void *private_data),
+ void *private_data)
+{
+ struct db_tdb_ctx *ctx = talloc_get_type_abort(
+ db->private_data, struct db_tdb_ctx);
+
+ return tdb_parse_record(ctx->wtdb->tdb, key, parser, private_data);
+}
+
static NTSTATUS db_tdb_store(struct db_record *rec, TDB_DATA data, int flag)
{
struct db_tdb_ctx *ctx = talloc_get_type_abort(rec->private_data,
@@ -351,6 +362,7 @@ struct db_context *db_open_tdb(TALLOC_CTX *mem_ctx,
result->fetch = db_tdb_fetch;
result->traverse = db_tdb_traverse;
result->traverse_read = db_tdb_traverse_read;
+ result->parse_record = db_tdb_parse;
result->get_seqnum = db_tdb_get_seqnum;
result->get_flags = db_tdb_get_flags;
result->persistent = ((tdb_flags & TDB_CLEAR_IF_FIRST) == 0);