summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2011-07-04 13:14:43 +0200
committerMichael Adam <obnox@samba.org>2011-07-04 20:02:08 +0200
commit747c67cf309a5127e78bd78f0d17e3fc094115d2 (patch)
treed9a712d4fdbc93a345e5ddf478172ba7644b12a4 /source3
parent144c8d77d8dcde0b85cef28b6515360aa0c55b85 (diff)
downloadsamba-747c67cf309a5127e78bd78f0d17e3fc094115d2.tar.gz
samba-747c67cf309a5127e78bd78f0d17e3fc094115d2.tar.bz2
samba-747c67cf309a5127e78bd78f0d17e3fc094115d2.zip
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 <gbeck@sernet.de>
Diffstat (limited to 'source3')
-rw-r--r--source3/registry/reg_backend_db.c36
1 files changed, 36 insertions, 0 deletions
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.*/
@@ -1188,6 +1189,41 @@ static WERROR regdb_create_subkey(const char *key, const char *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
*/