s3:dbwrap: change dbwrap_change_int32_atomic() to return NTSTATUS not int32.
authorMichael Adam <obnox@samba.org>
Wed, 29 Jul 2009 12:21:03 +0000 (14:21 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 29 Jul 2009 14:26:21 +0000 (16:26 +0200)
Michael

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

index ebeb5658f2ad38bda472fa754e8b6e6120b89c8e..6d9c35beb01d9bc7ae33b55d95f6747ea7e64e18 100644 (file)
@@ -442,8 +442,8 @@ 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);
-int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
-                                int32 *oldval, int32 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,
                            int flag);
 NTSTATUS dbwrap_trans_delete(struct db_context *db, TDB_DATA key);
index 5e02d47290592bca6872affe9b949f91da5e662c..549fd46624690314802bb92414bbdfebf4429637 100644 (file)
@@ -147,16 +147,17 @@ NTSTATUS dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
  * return old value in *oldval.
  * store *oldval + change_val to db.
  */
-int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
-                                int32 *oldval, int32 change_val)
+NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
+                                   int32 *oldval, int32 change_val)
 {
        struct db_record *rec;
        int32 val = -1;
        TDB_DATA data;
+       NTSTATUS ret;
 
        if (!(rec = db->fetch_locked(db, NULL,
                                     string_term_tdb_data(keystr)))) {
-               return -1;
+               return NT_STATUS_UNSUCCESSFUL;
        }
 
        if (rec->value.dptr == NULL) {
@@ -165,7 +166,7 @@ int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
                val = IVAL(rec->value.dptr, 0);
                *oldval = val;
        } else {
-               return -1;
+               return NT_STATUS_UNSUCCESSFUL;
        }
 
        val += change_val;
@@ -173,11 +174,11 @@ int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
        data.dsize = sizeof(val);
        data.dptr = (uint8 *)&val;
 
-       rec->store(rec, data, TDB_REPLACE);
+       ret = rec->store(rec, data, TDB_REPLACE);
 
        TALLOC_FREE(rec);
 
-       return 0;
+       return ret;
 }
 
 struct dbwrap_store_context {