From 747c67cf309a5127e78bd78f0d17e3fc094115d2 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Mon, 4 Jul 2011 13:14:43 +0200 Subject: s3:registry: add regdb_create_basekey() Function to create a base key in the registry db, i.e. one that has no parent key. Pair-Programmed-With: Gregor Beck --- source3/registry/reg_backend_db.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'source3') diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c index 84ac57216b..e5386f7d91 100644 --- a/source3/registry/reg_backend_db.c +++ b/source3/registry/reg_backend_db.c @@ -50,6 +50,7 @@ static bool regdb_store_values_internal(struct db_context *db, const char *key, struct regval_ctr *values); static NTSTATUS create_sorted_subkeys(const char *key); +static WERROR regdb_create_basekey(struct db_context *db, const char *key); /* List the deepest path into the registry. All part components will be created.*/ @@ -1187,6 +1188,41 @@ static WERROR regdb_create_subkey(const char *key, const char *subkey) return regdb_create_subkey_internal(regdb, key, subkey); } +/** + * create a base key + */ + +struct regdb_create_basekey_context { + const char *key; +}; + +static NTSTATUS regdb_create_basekey_action(struct db_context *db, + void *private_data) +{ + WERROR werr; + struct regdb_create_basekey_context *create_ctx; + + create_ctx = (struct regdb_create_basekey_context *)private_data; + + werr = regdb_store_subkey_list(db, NULL, create_ctx->key); + + return werror_to_ntstatus(werr); +} + +static WERROR regdb_create_basekey(struct db_context *db, const char *key) +{ + WERROR werr; + struct regdb_create_subkey_context create_ctx; + + create_ctx.key = key; + + werr = ntstatus_to_werror(dbwrap_trans_do(db, + regdb_create_basekey_action, + &create_ctx)); + + return werr; +} + /** * create a subkey of a given key */ -- cgit