diff options
author | Michael Adam <obnox@samba.org> | 2008-04-13 14:18:06 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-04-13 15:33:47 +0200 |
commit | 4b4306eb4a55ae1c705464e3220d963651ce9b91 (patch) | |
tree | cc6a0e809094ef03511f68551816bce6ea0d0d27 | |
parent | 2ffe46e24d369fabf2d1fe44dd91025466fcc502 (diff) | |
download | samba-4b4306eb4a55ae1c705464e3220d963651ce9b91.tar.gz samba-4b4306eb4a55ae1c705464e3220d963651ce9b91.tar.bz2 samba-4b4306eb4a55ae1c705464e3220d963651ce9b91.zip |
registry: change reghook_cache_init() to return WERROR and use it in the callers.
Michael
(This used to be commit 2f4ca62dce50225d67ba8643afba4199e1845c5f)
-rw-r--r-- | source3/registry/reg_cachehook.c | 13 | ||||
-rw-r--r-- | source3/registry/reg_init_basic.c | 7 | ||||
-rw-r--r-- | source3/registry/reg_init_full.c | 7 | ||||
-rw-r--r-- | source3/registry/reg_init_smbconf.c | 8 |
4 files changed, 26 insertions, 9 deletions
diff --git a/source3/registry/reg_cachehook.c b/source3/registry/reg_cachehook.c index bfdc0de5f5..c7f099e134 100644 --- a/source3/registry/reg_cachehook.c +++ b/source3/registry/reg_cachehook.c @@ -54,18 +54,19 @@ static char *keyname_to_path(TALLOC_CTX *mem_ctx, const char *keyname) Initialize the cache tree if it has not been initialized yet. *********************************************************************/ -bool reghook_cache_init( void ) +WERROR reghook_cache_init(void) { if (cache_tree == NULL) { cache_tree = pathtree_init(®db_ops, NULL); - if (cache_tree != NULL) { - DEBUG(10, ("reghook_cache_init: new tree with default " - "ops %p for key [%s]\n", (void *)®db_ops, - KEY_TREE_ROOT)); + if (cache_tree == NULL) { + return WERR_NOMEM; } + DEBUG(10, ("reghook_cache_init: new tree with default " + "ops %p for key [%s]\n", (void *)®db_ops, + KEY_TREE_ROOT)); } - return (cache_tree != NULL); + return WERR_OK; } /********************************************************************** diff --git a/source3/registry/reg_init_basic.c b/source3/registry/reg_init_basic.c index e72765bdf2..72ab9d1e65 100644 --- a/source3/registry/reg_init_basic.c +++ b/source3/registry/reg_init_basic.c @@ -36,7 +36,12 @@ bool registry_init_basic(void) } regdb_close(); - reghook_cache_init(); + werr = reghook_cache_init(); + if (!W_ERROR_IS_OK(werr)) { + DEBUG(1, ("Failed to initialize the reghook cache: %s\n", + dos_errstr(werr))); + return false; + } return true; } diff --git a/source3/registry/reg_init_full.c b/source3/registry/reg_init_full.c index ac3f66f1b2..8c834c4abb 100644 --- a/source3/registry/reg_init_full.c +++ b/source3/registry/reg_init_full.c @@ -85,7 +85,12 @@ bool init_registry( void ) /* build the cache tree of registry hooks */ - reghook_cache_init(); + werr = reghook_cache_init(); + if (!W_ERROR_IS_OK(werr)) { + DEBUG(0, ("Failed to initialize the reghook cache: %s\n", + dos_errstr(werr))); + goto fail; + } for ( i=0; reg_hooks[i].keyname; i++ ) { if (!reghook_cache_add(reg_hooks[i].keyname, reg_hooks[i].ops)) diff --git a/source3/registry/reg_init_smbconf.c b/source3/registry/reg_init_smbconf.c index 871141c1fd..bfc85afb22 100644 --- a/source3/registry/reg_init_smbconf.c +++ b/source3/registry/reg_init_smbconf.c @@ -94,7 +94,13 @@ bool registry_init_smbconf(const char *keyname) goto done; } - reghook_cache_init(); + werr = reghook_cache_init(); + if (!W_ERROR_IS_OK(werr)) { + DEBUG(1, ("Failed to initialize the reghook cache: %s\n", + dos_errstr(werr))); + goto done; + } + if (!reghook_cache_add(keyname, &smbconf_reg_ops)) { DEBUG(1, ("Failed to add smbconf reghooks to reghook cache\n")); goto done; |