/* The following definitions come from registry/reg_dispatcher.c */
-bool store_reg_keys( REGISTRY_KEY *key, struct regsubkey_ctr *subkeys );
-bool store_reg_values(REGISTRY_KEY *key, struct regval_ctr *val);
-WERROR create_reg_subkey(REGISTRY_KEY *key, const char *subkey);
-WERROR delete_reg_subkey(REGISTRY_KEY *key, const char *subkey);
-int fetch_reg_keys( REGISTRY_KEY *key, struct regsubkey_ctr *subkey_ctr );
-int fetch_reg_values(REGISTRY_KEY *key, struct regval_ctr *val);
-bool regkey_access_check( REGISTRY_KEY *key, uint32 requested, uint32 *granted,
- const struct nt_user_token *token );
-WERROR regkey_get_secdesc(TALLOC_CTX *mem_ctx, REGISTRY_KEY *key,
+bool store_reg_keys(struct registry_key_handle *key,
+ struct regsubkey_ctr *subkeys);
+bool store_reg_values(struct registry_key_handle *key, struct regval_ctr *val);
+WERROR create_reg_subkey(struct registry_key_handle *key, const char *subkey);
+WERROR delete_reg_subkey(struct registry_key_handle *key, const char *subkey);
+int fetch_reg_keys(struct registry_key_handle *key,
+ struct regsubkey_ctr *subkey_ctr);
+int fetch_reg_values(struct registry_key_handle *key, struct regval_ctr *val);
+bool regkey_access_check(struct registry_key_handle *key, uint32 requested,
+ uint32 *granted,
+ const struct nt_user_token *token);
+WERROR regkey_get_secdesc(TALLOC_CTX *mem_ctx, struct registry_key_handle *key,
struct security_descriptor **psecdesc);
-WERROR regkey_set_secdesc(REGISTRY_KEY *key,
+WERROR regkey_set_secdesc(struct registry_key_handle *key,
struct security_descriptor *psecdesc);
-bool reg_subkeys_need_update(REGISTRY_KEY *key, struct regsubkey_ctr *subkeys);
-bool reg_values_need_update(REGISTRY_KEY *key, struct regval_ctr *values);
+bool reg_subkeys_need_update(struct registry_key_handle *key,
+ struct regsubkey_ctr *subkeys);
+bool reg_values_need_update(struct registry_key_handle *key,
+ struct regval_ctr *values);
/* The following definitions come from registry/reg_eventlog.c */
/* The following definitions come from registry/reg_util_legacy.c */
-WERROR regkey_open_internal( TALLOC_CTX *ctx, REGISTRY_KEY **regkey,
- const char *path,
- const struct nt_user_token *token,
- uint32 access_desired );
+WERROR regkey_open_internal(TALLOC_CTX *ctx,
+ struct registry_key_handle **regkey,
+ const char *path,
+ const struct nt_user_token *token,
+ uint32 access_desired );
/* The following definitions come from registry/regfio.c */
/* structure to store the registry handles */
-typedef struct _RegistryKey {
+struct registry_key_handle {
uint32 type;
char *name; /* full name of registry key */
uint32 access_granted;
REGISTRY_OPS *ops;
-} REGISTRY_KEY;
+};
struct registry_key {
- REGISTRY_KEY *key;
+ struct registry_key_handle *key;
struct regsubkey_ctr *subkeys;
struct regval_ctr *values;
struct nt_user_token *token;
return WERR_OK;
}
-static int regkey_destructor(REGISTRY_KEY *key)
+static int regkey_destructor(struct registry_key_handle *key)
{
return regdb_close();
}
{
WERROR result = WERR_OK;
struct registry_key *regkey;
- REGISTRY_KEY *key;
+ struct registry_key_handle *key;
struct regsubkey_ctr *subkeys = NULL;
DEBUG(7,("regkey_open_onelevel: name = [%s]\n", name));
if (!(regkey = TALLOC_ZERO_P(mem_ctx, struct registry_key)) ||
!(regkey->token = dup_nt_token(regkey, token)) ||
- !(regkey->key = TALLOC_ZERO_P(regkey, REGISTRY_KEY))) {
+ !(regkey->key = TALLOC_ZERO_P(regkey, struct registry_key_handle)))
+ {
result = WERR_NOMEM;
goto done;
}
REGF_NK_REC *key)
{
REGF_NK_REC *subkey;
- REGISTRY_KEY registry_key;
+ struct registry_key_handle registry_key;
struct regval_ctr *values;
struct regsubkey_ctr *subkeys;
int i;
char *path = NULL;
WERROR result = WERR_OK;
- /* initialize the REGISTRY_KEY structure */
+ /* initialize the struct registry_key_handle structure */
registry_key.ops = reghook_cache_find(topkeypath);
if (!registry_key.ops) {
/*******************************************************************
********************************************************************/
-static WERROR restore_registry_key(REGISTRY_KEY *krecord, const char *fname)
+static WERROR restore_registry_key(struct registry_key_handle *krecord,
+ const char *fname)
{
REGF_FILE *regfile;
REGF_NK_REC *rootkey;
char *keyname, *parentpath;
char *subkeypath = NULL;
char *subkeyname;
- REGISTRY_KEY registry_key;
+ struct registry_key_handle registry_key;
WERROR result = WERR_OK;
SEC_DESC *sec_desc = NULL;
keyname = parentpath;
}
- /* we need a REGISTRY_KEY object here to enumerate subkeys and values */
+ /* we need a registry_key_handle object here to enumerate subkeys and values */
ZERO_STRUCT(registry_key);
return result;
}
-static WERROR backup_registry_key(REGISTRY_KEY *krecord, const char *fname)
+static WERROR backup_registry_key(struct registry_key_handle *krecord,
+ const char *fname)
{
REGF_FILE *regfile;
WERROR result;
High level wrapper function for storing registry subkeys
***********************************************************************/
-bool store_reg_keys( REGISTRY_KEY *key, struct regsubkey_ctr *subkeys )
+bool store_reg_keys(struct registry_key_handle *key,
+ struct regsubkey_ctr *subkeys)
{
if (key->ops && key->ops->store_subkeys)
return key->ops->store_subkeys(key->name, subkeys);
High level wrapper function for storing registry values
***********************************************************************/
-bool store_reg_values(REGISTRY_KEY *key, struct regval_ctr *val)
+bool store_reg_values(struct registry_key_handle *key, struct regval_ctr *val)
{
if (key->ops && key->ops->store_values)
return key->ops->store_values(key->name, val);
return false;
}
-WERROR create_reg_subkey(REGISTRY_KEY *key, const char *subkey)
+WERROR create_reg_subkey(struct registry_key_handle *key, const char *subkey)
{
if (key->ops && key->ops->create_subkey) {
return key->ops->create_subkey(key->name, subkey);
return WERR_NOT_SUPPORTED;
}
-WERROR delete_reg_subkey(REGISTRY_KEY *key, const char *subkey)
+WERROR delete_reg_subkey(struct registry_key_handle *key, const char *subkey)
{
if (key->ops && key->ops->delete_subkey) {
return key->ops->delete_subkey(key->name, subkey);
Initialize the TALLOC_CTX if necessary
***********************************************************************/
-int fetch_reg_keys( REGISTRY_KEY *key, struct regsubkey_ctr *subkey_ctr )
+int fetch_reg_keys(struct registry_key_handle *key,
+ struct regsubkey_ctr *subkey_ctr)
{
int result = -1;
High level wrapper function for enumerating registry values
***********************************************************************/
-int fetch_reg_values(REGISTRY_KEY *key, struct regval_ctr *val)
+int fetch_reg_values(struct registry_key_handle *key, struct regval_ctr *val)
{
int result = -1;
underlying registry backend
***********************************************************************/
-bool regkey_access_check( REGISTRY_KEY *key, uint32 requested, uint32 *granted,
- const struct nt_user_token *token )
+bool regkey_access_check(struct registry_key_handle *key, uint32 requested,
+ uint32 *granted,
+ const struct nt_user_token *token )
{
SEC_DESC *sec_desc;
NTSTATUS status;
return NT_STATUS_IS_OK(status);
}
-WERROR regkey_get_secdesc(TALLOC_CTX *mem_ctx, REGISTRY_KEY *key,
+WERROR regkey_get_secdesc(TALLOC_CTX *mem_ctx, struct registry_key_handle *key,
struct security_descriptor **psecdesc)
{
struct security_descriptor *secdesc;
return WERR_OK;
}
-WERROR regkey_set_secdesc(REGISTRY_KEY *key,
+WERROR regkey_set_secdesc(struct registry_key_handle *key,
struct security_descriptor *psecdesc)
{
if (key->ops && key->ops->set_secdesc) {
* Check whether the in-memory version of the subkyes of a
* registry key needs update from disk.
*/
-bool reg_subkeys_need_update(REGISTRY_KEY *key, struct regsubkey_ctr *subkeys)
+bool reg_subkeys_need_update(struct registry_key_handle *key,
+ struct regsubkey_ctr *subkeys)
{
if (key->ops && key->ops->subkeys_need_update)
{
* Check whether the in-memory version of the values of a
* registry key needs update from disk.
*/
-bool reg_values_need_update(REGISTRY_KEY *key, struct regval_ctr *values)
+bool reg_values_need_update(struct registry_key_handle *key,
+ struct regval_ctr *values)
{
if (key->ops && key->ops->values_need_update)
{
* legacy open key function that should be replaced by uses of
* reg_open_path
*/
-WERROR regkey_open_internal( TALLOC_CTX *ctx, REGISTRY_KEY **regkey,
- const char *path,
- const struct nt_user_token *token,
- uint32 access_desired )
+WERROR regkey_open_internal(TALLOC_CTX *ctx,
+ struct registry_key_handle **regkey,
+ const char *path,
+ const struct nt_user_token *token,
+ uint32 access_desired )
{
struct registry_key *key;
WERROR err;
/********************************************************************
********************************************************************/
-static void add_new_svc_name( REGISTRY_KEY *key_parent, struct regsubkey_ctr *subkeys,
- const char *name )
+static void add_new_svc_name(struct registry_key_handle *key_parent,
+ struct regsubkey_ctr *subkeys,
+ const char *name )
{
- REGISTRY_KEY *key_service = NULL, *key_secdesc = NULL;
+ struct registry_key_handle *key_service = NULL, *key_secdesc = NULL;
WERROR wresult;
char *path = NULL;
struct regval_ctr *values = NULL;
const char **service_list = lp_svcctl_list();
int i;
struct regsubkey_ctr *subkeys = NULL;
- REGISTRY_KEY *key = NULL;
+ struct registry_key_handle *key = NULL;
WERROR wresult;
/* bad mojo here if the lookup failed. Should not happen */
SEC_DESC *svcctl_get_secdesc( TALLOC_CTX *ctx, const char *name, NT_USER_TOKEN *token )
{
- REGISTRY_KEY *key = NULL;
+ struct registry_key_handle *key = NULL;
struct regval_ctr *values = NULL;
struct regval_blob *val = NULL;
SEC_DESC *ret_sd = NULL;
bool svcctl_set_secdesc( TALLOC_CTX *ctx, const char *name, SEC_DESC *sec_desc, NT_USER_TOKEN *token )
{
- REGISTRY_KEY *key = NULL;
+ struct registry_key_handle *key = NULL;
WERROR wresult;
char *path = NULL;
struct regval_ctr *values = NULL;
const char *svcctl_lookup_dispname(TALLOC_CTX *ctx, const char *name, NT_USER_TOKEN *token )
{
char *display_name = NULL;
- REGISTRY_KEY *key = NULL;
+ struct registry_key_handle *key = NULL;
struct regval_ctr *values = NULL;
struct regval_blob *val = NULL;
char *path = NULL;
const char *svcctl_lookup_description(TALLOC_CTX *ctx, const char *name, NT_USER_TOKEN *token )
{
char *description = NULL;
- REGISTRY_KEY *key = NULL;
+ struct registry_key_handle *key = NULL;
struct regval_ctr *values = NULL;
struct regval_blob *val = NULL;
char *path = NULL;
struct regval_ctr *svcctl_fetch_regvalues(const char *name, NT_USER_TOKEN *token)
{
- REGISTRY_KEY *key = NULL;
+ struct registry_key_handle *key = NULL;
struct regval_ctr *values = NULL;
char *path = NULL;
WERROR wresult;