s3:registry: implement regdb_store_values() with regdb_trans_do()
authorMichael Adam <obnox@samba.org>
Tue, 30 Aug 2011 12:06:22 +0000 (14:06 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 11 Oct 2011 13:21:16 +0000 (15:21 +0200)
This adds the runtime check for changed regdb format version to store_values

source3/registry/reg_backend_db.c

index 9801bbbe1740c7eea157c8fdd1587b82e9bd027b..6588edcbe5ae83f949f30af9e1ef3044a27edce6 100644 (file)
@@ -1812,9 +1812,34 @@ done:
        return status;
 }
 
+struct regdb_store_values_ctx {
+       const char *key;
+       struct regval_ctr *values;
+};
+
+static NTSTATUS regdb_store_values_action(struct db_context *db,
+                                         void *private_data)
+{
+       NTSTATUS status;
+       struct regdb_store_values_ctx *ctx =
+               (struct regdb_store_values_ctx *)private_data;
+
+       status = regdb_store_values_internal(db, ctx->key, ctx->values);
+
+       return status;
+}
+
 bool regdb_store_values(const char *key, struct regval_ctr *values)
 {
-       return NT_STATUS_IS_OK(regdb_store_values_internal(regdb, key, values));
+       WERROR werr;
+       struct regdb_store_values_ctx ctx;
+
+       ctx.key = key;
+       ctx.values = values;
+
+       werr = regdb_trans_do(regdb, regdb_store_values_action, &ctx);
+
+       return W_ERROR_IS_OK(werr);
 }
 
 static WERROR regdb_get_secdesc(TALLOC_CTX *mem_ctx, const char *key,