libgpo: replace hand-crafted registry initialization by registry_init_basic.
authorMichael Adam <obnox@samba.org>
Sat, 22 Mar 2008 01:29:02 +0000 (02:29 +0100)
committerMichael Adam <obnox@samba.org>
Sat, 22 Mar 2008 01:29:40 +0000 (02:29 +0100)
IMO there is no need to imitate a custom registry backend.
Only default regdb hooks are used here, so a plain initialization
of regdb should suffice.

This way, only reg_api is used in libgpo, and no registry
backend code is visible.

Michael

source/Makefile.in
source/libgpo/gpo_reg.c

index 40e792db8182fd634a13eab35708d43176c54d32..19bdad39e4abe6886107a467517316beb46e64cf 100644 (file)
@@ -388,7 +388,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)
+LIBGPO_OBJ = $(LIBGPO_OBJ0) $(REG_INIT_BASIC_OBJ)
 
 LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o \
             libads/sasl.o libads/sasl_wrapping.o \
@@ -451,6 +451,7 @@ 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
 
index e1edde135a7817af6069944e9e0c081a63e7c59d..e48a8715d311229b4c07e06b8be67c3ecaab8907 100644 (file)
 #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
-};
-
 /****************************************************************
 ****************************************************************/
 
@@ -101,24 +54,13 @@ 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 (!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)) {
+       if (!registry_init_basic()) {
                return WERR_CAN_NOT_COMPLETE;
        }