The branch, v3-2-test has been updated via 77713e776405800ac54c692a77cd4efd153042cb (commit) via 5d557e3f95b8d53114c25ba7fa3e564a50be9e05 (commit) from 4c404d627ccfaf1c17f4b6b1ebab6fce357d9ab1 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test - Log ----------------------------------------------------------------- commit 77713e776405800ac54c692a77cd4efd153042cb Author: Michael Adam <[EMAIL PROTECTED]> Date: Thu Jan 3 15:33:09 2008 +0100 Make libnet_conf handle opening/initialization of the registry. Open state is currently tracked by a global variable to avoid double initialization. Later, this can possibly be replaced by a conf-context created by an initialization function and passed around to the other api functions. Michael commit 5d557e3f95b8d53114c25ba7fa3e564a50be9e05 Author: Michael Adam <[EMAIL PROTECTED]> Date: Thu Jan 3 14:34:31 2008 +0100 Add a comment header and do some slight reformatting. Michael ----------------------------------------------------------------------- Summary of changes: source/libnet/libnet_conf.c | 44 ++++++++++++++++++++++++++++++++++++++---- source/utils/net_conf.c | 5 ---- 2 files changed, 39 insertions(+), 10 deletions(-) Changeset truncated at 500 lines: diff --git a/source/libnet/libnet_conf.c b/source/libnet/libnet_conf.c index ea3f708..6652617 100644 --- a/source/libnet/libnet_conf.c +++ b/source/libnet/libnet_conf.c @@ -21,6 +21,11 @@ #include "includes.h" #include "libnet/libnet.h" +/* + * yuck - static variable to keep track of the registry initialization. + */ +static bool registry_initialized = false; + /********************************************************************** * * Helper functions (mostly registry related) @@ -54,6 +59,26 @@ static WERROR libnet_conf_add_string_to_array(TALLOC_CTX *mem_ctx, return WERR_OK; } +static WERROR libnet_conf_reg_initialize(void) +{ + WERROR werr = WERR_OK; + + if (registry_initialized) { + goto done; + } + + if (!registry_init_regdb()) { + /* proper error code? */ + werr = WERR_GENERAL_FAILURE; + goto done; + } + + registry_initialized = true; + +done: + return werr; +} + /** * Open a registry key specified by "path" */ @@ -78,6 +103,13 @@ static WERROR libnet_conf_reg_open_path(TALLOC_CTX *mem_ctx, goto done; } + werr = libnet_conf_reg_initialize(); + if (!W_ERROR_IS_OK(werr)) { + DEBUG(1, ("Error initializing registry: %s\n", + dos_errstr(werr))); + goto done; + } + token = registry_create_admin_token(tmp_ctx); if (token == NULL) { DEBUG(1, ("Error creating admin token\n")); @@ -124,7 +156,7 @@ done: return werr; } -/* +/** * open the base key KEY_SMBCONF */ static WERROR libnet_conf_reg_open_base_key(TALLOC_CTX *ctx, @@ -134,6 +166,9 @@ static WERROR libnet_conf_reg_open_base_key(TALLOC_CTX *ctx, return libnet_conf_reg_open_path(ctx, KEY_SMBCONF, desired_access, key); } +/** + * check if a value exists in a given registry key + */ static bool libnet_conf_value_exists(struct registry_key *key, const char *param) { @@ -151,7 +186,7 @@ static bool libnet_conf_value_exists(struct registry_key *key, return ret; } -/* +/** * create a subkey of KEY_SMBCONF */ static WERROR libnet_conf_reg_create_service_key(TALLOC_CTX *ctx, @@ -193,7 +228,7 @@ done: return werr; } -/* +/** * add a value to a key. */ static WERROR libnet_conf_reg_set_value(struct registry_key *key, @@ -792,8 +827,7 @@ done: * **********************************************************************/ -WERROR libnet_conf_set_global_parameter(const char *param, - const char *val) +WERROR libnet_conf_set_global_parameter(const char *param, const char *val) { return libnet_conf_set_parameter(GLOBAL_NAME, param, val); } diff --git a/source/utils/net_conf.c b/source/utils/net_conf.c index 2d4b3f4..a758391 100644 --- a/source/utils/net_conf.c +++ b/source/utils/net_conf.c @@ -852,11 +852,6 @@ int net_conf(int argc, const char **argv) {NULL, NULL, NULL} }; - if (!registry_init_regdb()) { - d_fprintf(stderr, "Error initializing the registry!\n"); - goto done; - } - ret = net_run_function2(argc, argv, "net conf", func); regdb_close(); -- Samba Shared Repository