s3:dbwrap: add get_flags() hook to db_context
authorStefan Metzmacher <metze@samba.org>
Wed, 17 Dec 2008 07:35:35 +0000 (08:35 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 19 Jan 2009 16:06:02 +0000 (17:06 +0100)
metze

source3/include/dbwrap.h
source3/lib/dbwrap_ctdb.c
source3/lib/dbwrap_tdb.c

index 46833fabdcec619c132b0f2508c11fb105dd58db..3312f9c12172f9a01ffbff20c4b2346bead0fbc9 100644 (file)
@@ -42,6 +42,7 @@ struct db_context {
                                      void *private_data),
                             void *private_data);
        int (*get_seqnum)(struct db_context *db);
+       int (*get_flags)(struct db_context *db);
        int (*transaction_start)(struct db_context *db);
        int (*transaction_commit)(struct db_context *db);
        int (*transaction_cancel)(struct db_context *db);
index 38daa61b330cb93be495349357d8b2dd74898b78..03667ff3552d62a1e6b2c05f823910df13f07065 100644 (file)
@@ -1158,6 +1158,13 @@ static int db_ctdb_get_seqnum(struct db_context *db)
        return tdb_get_seqnum(ctx->wtdb->tdb);
 }
 
+static int db_ctdb_get_flags(struct db_context *db)
+{
+        struct db_ctdb_ctx *ctx = talloc_get_type_abort(db->private_data,
+                                                        struct db_ctdb_ctx);
+       return tdb_get_flags(ctx->wtdb->tdb);
+}
+
 struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
                                const char *name,
                                int hash_size, int tdb_flags,
@@ -1219,6 +1226,7 @@ struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
        result->traverse = db_ctdb_traverse;
        result->traverse_read = db_ctdb_traverse_read;
        result->get_seqnum = db_ctdb_get_seqnum;
+       result->get_flags = db_ctdb_get_flags;
        result->transaction_start = db_ctdb_transaction_start;
        result->transaction_commit = db_ctdb_transaction_commit;
        result->transaction_cancel = db_ctdb_transaction_cancel;
index 4860c61ab04fe3fd19ba8d4b87966d98e8ee1f9d..b5eb1881d42169c6575d24327907761e04bc6ec6 100644 (file)
@@ -291,6 +291,14 @@ static int db_tdb_get_seqnum(struct db_context *db)
        return tdb_get_seqnum(db_ctx->wtdb->tdb);
 }
 
+static int db_tdb_get_flags(struct db_context *db)
+
+{
+       struct db_tdb_ctx *db_ctx =
+               talloc_get_type_abort(db->private_data, struct db_tdb_ctx);
+       return tdb_get_flags(db_ctx->wtdb->tdb);
+}
+
 static int db_tdb_transaction_start(struct db_context *db)
 {
        struct db_tdb_ctx *db_ctx =
@@ -344,6 +352,7 @@ struct db_context *db_open_tdb(TALLOC_CTX *mem_ctx,
        result->traverse = db_tdb_traverse;
        result->traverse_read = db_tdb_traverse_read;
        result->get_seqnum = db_tdb_get_seqnum;
+       result->get_flags = db_tdb_get_flags;
        result->persistent = ((tdb_flags & TDB_CLEAR_IF_FIRST) == 0);
        result->transaction_start = db_tdb_transaction_start;
        result->transaction_commit = db_tdb_transaction_commit;