summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h4
-rw-r--r--source3/lib/dbwrap_util.c17
2 files changed, 21 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index b7a16567fe..00cfd6129e 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -448,6 +448,10 @@ NTSTATUS dbwrap_trans_change_uint32_atomic(struct db_context *db,
uint32_t change_val);
NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
int32_t *oldval, int32_t change_val);
+NTSTATUS dbwrap_trans_change_int32_atomic(struct db_context *db,
+ const char *keystr,
+ int32_t *oldval,
+ int32_t change_val);
NTSTATUS dbwrap_trans_store(struct db_context *db, TDB_DATA key, TDB_DATA dbuf,
int flag);
NTSTATUS dbwrap_trans_delete(struct db_context *db, TDB_DATA key);
diff --git a/source3/lib/dbwrap_util.c b/source3/lib/dbwrap_util.c
index ca0658579a..1c190167b5 100644
--- a/source3/lib/dbwrap_util.c
+++ b/source3/lib/dbwrap_util.c
@@ -250,6 +250,23 @@ NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
return ret;
}
+NTSTATUS dbwrap_trans_change_int32_atomic(struct db_context *db,
+ const char *keystr,
+ int32_t *oldval,
+ int32_t change_val)
+{
+ NTSTATUS ret;
+ struct dbwrap_change_int32_atomic_context state;
+
+ state.keystr = keystr;
+ state.oldval = oldval;
+ state.change_val = change_val;
+
+ ret = dbwrap_trans_do(db, dbwrap_change_int32_atomic_action, &state);
+
+ return ret;
+}
+
struct dbwrap_store_context {
TDB_DATA *key;
TDB_DATA *dbuf;