From 1a6ac6a9444c826fe68fd4c55dbef226c8d3b056 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Wed, 11 May 2011 15:27:01 +0200 Subject: s3:registry: add create_sorted_subkeys() to delete and recreate the sorted subkeys key This is to be used from other places than the key_exists() code path. --- source3/registry/reg_backend_db.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source3') diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c index b99ef916a5..28439ab914 100644 --- a/source3/registry/reg_backend_db.c +++ b/source3/registry/reg_backend_db.c @@ -48,6 +48,8 @@ static int regdb_fetch_values_internal(struct db_context *db, const char* key, 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); + /* List the deepest path into the registry. All part components will be created.*/ /* If you want to have a part of the path controlled by the tdb and part by @@ -1424,6 +1426,25 @@ static NTSTATUS create_sorted_subkeys_internal(const char *key, return status; } +static NTSTATUS create_sorted_subkeys(const char *key) +{ + char *sorted_subkeys_keyname; + NTSTATUS status; + + sorted_subkeys_keyname = talloc_asprintf(talloc_tos(), "%s\\%s", + REG_SORTED_SUBKEYS_PREFIX, + key); + if (sorted_subkeys_keyname == NULL) { + status = NT_STATUS_NO_MEMORY; + goto done; + } + + status = create_sorted_subkeys_internal(key, sorted_subkeys_keyname); + +done: + return status; +} + struct scan_subkey_state { char *name; bool scanned; -- cgit