s3-dbwrap: Add "db_context" to "db_record"
authorVolker Lendecke <vl@samba.org>
Mon, 2 Jan 2012 12:30:51 +0000 (13:30 +0100)
committerVolker Lendecke <vl@samba.org>
Fri, 20 Apr 2012 11:42:40 +0000 (13:42 +0200)
source3/lib/dbwrap/dbwrap.c
source3/lib/dbwrap/dbwrap.h
source3/lib/dbwrap/dbwrap_private.h
source3/lib/dbwrap/dbwrap_tdb.c

index 82b1c54ac453e4dbf91f37c8208e9f6ca990692e..21d46ea8957a0fbbc93cc2aade29086bfba11405 100644 (file)
@@ -161,6 +161,7 @@ static struct db_record *dbwrap_fetch_locked_internal(
                return NULL;
        }
        (void)talloc_steal(rec, lock_order);
+       rec->db = db;
        TALLOC_FREE(frame);
        return rec;
 }
@@ -183,6 +184,11 @@ struct db_record *dbwrap_try_fetch_locked(struct db_context *db,
                ? db->try_fetch_locked : db->fetch_locked);
 }
 
+struct db_context *dbwrap_record_get_db(struct db_record *rec)
+{
+       return rec->db;
+}
+
 struct dbwrap_fetch_state {
        TALLOC_CTX *mem_ctx;
        TDB_DATA data;
index 6fd5999a9d74696a600d6287a0d3cdc996378359..ff41e647efb6c83e3e2cc94f97ffa8240185e57a 100644 (file)
@@ -37,6 +37,7 @@ struct db_record *dbwrap_fetch_locked(struct db_context *db,
 struct db_record *dbwrap_try_fetch_locked(struct db_context *db,
                                          TALLOC_CTX *mem_ctx,
                                          TDB_DATA key);
+struct db_context *dbwrap_record_get_db(struct db_record *rec);
 
 NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key);
 NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key,
index b24e3b370c382270775b71bdac5d06f8ba3a309d..28da1add537744f4ea5a2156496bbac577f282c3 100644 (file)
@@ -26,6 +26,7 @@
 #include "dbwrap/dbwrap_open.h"
 
 struct db_record {
+       struct db_context *db;
        TDB_DATA key, value;
        NTSTATUS (*store)(struct db_record *rec, TDB_DATA data, int flag);
        NTSTATUS (*delete_rec)(struct db_record *rec);
index e1b26e4e09d159e849c2e1b3da1dbe5c55fcf082..9450be0e651a5e8cb130d3a6c0bc108dc6ec68b0 100644 (file)
@@ -276,6 +276,7 @@ static int db_tdb_traverse_func(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
        rec.store = db_tdb_store;
        rec.delete_rec = db_tdb_delete;
        rec.private_data = ctx->db->private_data;
+       rec.db = ctx->db;
 
        return ctx->f(&rec, ctx->private_data);
 }
@@ -316,6 +317,7 @@ static int db_tdb_traverse_read_func(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA d
        rec.store = db_tdb_store_deny;
        rec.delete_rec = db_tdb_delete_deny;
        rec.private_data = ctx->db->private_data;
+       rec.db = ctx->db;
 
        return ctx->f(&rec, ctx->private_data);
 }