summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/registry/reg_backend_db.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c
index 8c994a0c4e..33454c9064 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -27,6 +27,8 @@
static struct db_context *regdb = NULL;
static int regdb_refcount;
+static bool regdb_key_exists(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
@@ -725,6 +727,21 @@ static TDB_DATA regdb_fetch_key_internal(const char *key, TALLOC_CTX *mem_ctx)
return dbwrap_fetch_bystring(regdb, mem_ctx, path);
}
+
+static bool regdb_key_exists(const char *key)
+{
+ TALLOC_CTX *mem_ctx = talloc_stackframe();
+ TDB_DATA value;
+ bool ret;
+
+ value = regdb_fetch_key_internal(key, mem_ctx);
+ ret = (value.dptr != NULL);
+
+ TALLOC_FREE(mem_ctx);
+ return ret;
+}
+
+
/***********************************************************************
Retrieve an array of strings containing subkeys. Memory should be
released by the caller.