From: Michael Adam Date: Thu, 8 May 2008 15:44:00 +0000 (+0200) Subject: Revert "libgpo: replace hand-crafted registry initialization by registry_init_basic." X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0325df3986cec0694975619138ac1e14ef565457;p=thirdparty%2Fsamba.git Revert "libgpo: replace hand-crafted registry initialization by registry_init_basic." This reverts commit 10ae8accb486956ebb1638cee540868a11623b11. --- diff --git a/source/Makefile.in b/source/Makefile.in index 17d6ee67f80..809c73e5b17 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -386,7 +386,7 @@ LIBGPO_OBJ0 = libgpo/gpo_ldap.o libgpo/gpo_ini.o libgpo/gpo_util.o \ libgpo/gpo_fetch.o libgpo/gpo_filesync.o libgpo/gpo_sec.o \ libgpo/gpo_reg.o \ $(GPEXT_OBJ) -LIBGPO_OBJ = $(LIBGPO_OBJ0) $(REG_INIT_BASIC_OBJ) +LIBGPO_OBJ = $(LIBGPO_OBJ0) LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o \ libads/sasl.o libads/sasl_wrapping.o \ @@ -471,7 +471,6 @@ LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_lsa.o \ UTIL_REG_OBJ = lib/util_reg.o UTIL_REG_API_OBJ = lib/util_reg_api.o -REG_INIT_BASIC_OBJ = registry/reg_init_basic.o REG_INIT_SMBCONF_OBJ = registry/reg_init_smbconf.o REG_INIT_FULL_OBJ = registry/reg_init_full.o diff --git a/source/libgpo/gpo_reg.c b/source/libgpo/gpo_reg.c index e48a8715d31..e1edde135a7 100644 --- a/source/libgpo/gpo_reg.c +++ b/source/libgpo/gpo_reg.c @@ -20,6 +20,53 @@ #include "includes.h" +extern REGISTRY_OPS regdb_ops; + +static int gp_reg_fetch_keys(const char *key, REGSUBKEY_CTR *subkey_ctr) +{ + return regdb_ops.fetch_subkeys(key, subkey_ctr); +} + +static bool gp_reg_store_keys(const char *key, REGSUBKEY_CTR *subkeys) +{ + return regdb_ops.store_subkeys(key, subkeys); +} + +static int gp_reg_fetch_values(const char *key, REGVAL_CTR *val) +{ + return regdb_ops.fetch_values(key, val); +} + +static bool gp_reg_store_values(const char *key, REGVAL_CTR *val) +{ + return regdb_ops.store_values(key, val); +} + +static WERROR gp_reg_get_secdesc(TALLOC_CTX *mem_ctx, const char *key, + struct security_descriptor **psecdesc) +{ + return regdb_ops.get_secdesc(mem_ctx, key, psecdesc); +} + +static WERROR gp_reg_set_secdesc(const char *key, + struct security_descriptor *secdesc) +{ + return regdb_ops.set_secdesc(key, secdesc); +} + +/**************************************************************** +****************************************************************/ + +static REGISTRY_OPS gp_reg_ops = { + .fetch_subkeys = gp_reg_fetch_keys, + .fetch_values = gp_reg_fetch_values, + .store_subkeys = gp_reg_store_keys, + .store_values = gp_reg_store_values, +/* .reg_access_check = gp_reg_reg_access_check, */ + .get_secdesc = gp_reg_get_secdesc, + .set_secdesc = gp_reg_set_secdesc +}; + /**************************************************************** ****************************************************************/ @@ -54,13 +101,24 @@ WERROR gp_init_reg_ctx(TALLOC_CTX *mem_ctx, struct gp_registry_context **reg_ctx) { struct gp_registry_context *tmp_ctx; + static REGISTRY_HOOK gp_reg_hook; WERROR werr; if (!reg_ctx) { return WERR_INVALID_PARAM; } - if (!registry_init_basic()) { + if (!regdb_init()) { + return WERR_CAN_NOT_COMPLETE; + } + + gp_reg_hook.keyname = initial_path; /* KEY_SAMBA_GROUP_POLICY */ + gp_reg_hook.ops = &gp_reg_ops; + + /* not sure about the cache hook */ + reghook_cache_init(); + + if (!reghook_cache_add(&gp_reg_hook)) { return WERR_CAN_NOT_COMPLETE; }