s3:dbwrap: add dbwrap_trans_change_uint32_atomic()
authorMichael Adam <obnox@samba.org>
Wed, 29 Jul 2009 12:37:39 +0000 (14:37 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 29 Jul 2009 14:26:25 +0000 (16:26 +0200)
A transaction wrapper for dbwrap_change_uint32_atomic().

Michael

source3/include/proto.h
source3/lib/dbwrap_util.c

index 6d9c35beb01d9bc7ae33b55d95f6747ea7e64e18..78e2b25dcb9cf451f41ce1b156e69be078d3e7ba 100644 (file)
@@ -442,6 +442,10 @@ bool dbwrap_fetch_uint32(struct db_context *db, const char *keystr,
 int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v);
 NTSTATUS dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
                                     uint32_t *oldval, uint32_t change_val);
+NTSTATUS dbwrap_trans_change_uint32_atomic(struct db_context *db,
+                                          const char *keystr,
+                                          uint32_t *oldval,
+                                          uint32_t change_val);
 NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
                                    int32 *oldval, int32 change_val);
 NTSTATUS dbwrap_trans_store(struct db_context *db, TDB_DATA key, TDB_DATA dbuf,
index 118d681eb9620ab4eaab028d1b2f0c2bd2279734..72442690e39b1ab94a0cb61383ecfc8da6bb50a2 100644 (file)
@@ -166,6 +166,23 @@ NTSTATUS dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
        return ret;
 }
 
+NTSTATUS dbwrap_trans_change_uint32_atomic(struct db_context *db,
+                                          const char *keystr,
+                                          uint32_t *oldval,
+                                          uint32_t change_val)
+{
+       NTSTATUS ret;
+       struct dbwrap_change_uint32_atomic_context state;
+
+       state.keystr = keystr;
+       state.oldval = oldval;
+       state.change_val = change_val;
+
+       ret = dbwrap_trans_do(db, dbwrap_change_uint32_atomic_action, &state);
+
+       return ret;
+}
+
 /**
  * Atomic integer change (addition):
  *