From: Michael Adam Date: Tue, 29 Apr 2008 15:17:02 +0000 (+0200) Subject: registry: add function regdb_key_exists() to check for existence of a key. X-Git-Tag: samba-4.0.0alpha6~801^2~1562 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6ec4c8631a16d6798bf48083a84df7ad90f79617;p=thirdparty%2Fsamba.git registry: add function regdb_key_exists() to check for existence of a key. The existence of the registry key entry (and not the values entry!) is taken as the criterion for existence. Michael (This used to be commit 207a0ece45d947608df3f764e6bd9b4525d41011) --- diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c index 8c994a0c4e8..33454c90645 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.