summaryrefslogtreecommitdiffstats
path: root/source/registry
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2008-04-13 12:41:34 +0200
committerKarolin Seeger <kseeger@samba.org>2008-04-22 15:58:48 +0200
commitcae176497ffb9da1ea40bf794953665630e7995c (patch)
tree06a82a2516f5c87bcecb242caac123a5ed386c05 /source/registry
parent69cff32aff245e866e93693594bac8a466427c18 (diff)
downloadsamba-cae176497ffb9da1ea40bf794953665630e7995c.tar.gz
samba-cae176497ffb9da1ea40bf794953665630e7995c.tar.xz
samba-cae176497ffb9da1ea40bf794953665630e7995c.zip
registry: change regdb_init() to return WERROR instead of bool.
Michael (cherry picked from commit c312852abce72bc167abee8b29fc699c4a643ca7)
Diffstat (limited to 'source/registry')
-rw-r--r--source/registry/reg_backend_db.c12
-rw-r--r--source/registry/reg_init_basic.c12
-rw-r--r--source/registry/reg_init_full.c6
-rw-r--r--source/registry/reg_init_smbconf.c12
4 files changed, 19 insertions, 23 deletions
diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index 2c137f40737..65dc9ffaea0 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -310,16 +310,17 @@ bool init_registry_data(void)
Open the registry database
***********************************************************************/
-bool regdb_init(void)
+WERROR regdb_init(void)
{
const char *vstring = "INFO/version";
uint32 vers_id;
+ WERROR werr;
if (regdb) {
DEBUG(10, ("regdb_init: incrementing refcount (%d)\n",
regdb_refcount));
regdb_refcount++;
- return true;
+ return WERR_OK;
}
regdb = db_open_trans(NULL, state_path("registry.tdb"), 0,
@@ -328,9 +329,10 @@ bool regdb_init(void)
regdb = db_open_trans(NULL, state_path("registry.tdb"), 0,
REG_TDB_FLAGS, O_RDWR|O_CREAT, 0600);
if (!regdb) {
+ werr = ntstatus_to_werror(map_nt_error_from_unix(errno));
DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
state_path("registry.tdb"), strerror(errno) ));
- return false;
+ return werr;
}
DEBUG(10,("regdb_init: Successfully created registry tdb\n"));
@@ -349,14 +351,14 @@ bool regdb_init(void)
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("regdb_init: error storing %s = %d: %s\n",
vstring, REGVER_V1, nt_errstr(status)));
- return false;
+ return ntstatus_to_werror(status);
} else {
DEBUG(10, ("regdb_init: stored %s = %d\n",
vstring, REGVER_V1));
}
}
- return true;
+ return WERR_OK;
}
/***********************************************************************
diff --git a/source/registry/reg_init_basic.c b/source/registry/reg_init_basic.c
index 13f3c933835..9098bc4aec2 100644
--- a/source/registry/reg_init_basic.c
+++ b/source/registry/reg_init_basic.c
@@ -24,17 +24,13 @@
bool registry_init_basic(void)
{
- int saved_errno = 0;
+ WERROR werr;
DEBUG(10, ("registry_init_basic called\n"));
- if (!regdb_init()) {
- saved_errno = errno;
- DEBUG(1, ("Can't open the registry"));
- if (saved_errno) {
- DEBUGADD(1, (": %s", strerror(saved_errno)));
- }
- DEBUGADD(1, (".\n"));
+ werr = regdb_init();
+ if (!W_ERROR_IS_OK(werr)) {
+ DEBUG(1, ("Can't open the registry: %s\n", dos_errstr(werr)));
return false;
}
regdb_close();
diff --git a/source/registry/reg_init_full.c b/source/registry/reg_init_full.c
index f171949e38d..e9273a044cb 100644
--- a/source/registry/reg_init_full.c
+++ b/source/registry/reg_init_full.c
@@ -65,11 +65,13 @@ REGISTRY_HOOK reg_hooks[] = {
bool init_registry( void )
{
int i;
+ WERROR werr;
bool ret = false;
- if ( !regdb_init() ) {
+ werr = regdb_init();
+ if (!W_ERROR_IS_OK(werr)) {
DEBUG(0, ("init_registry: failed to initialize the registry "
- "tdb!\n"));
+ "(%s)\n", dos_errstr(werr)));
goto fail;
}
diff --git a/source/registry/reg_init_smbconf.c b/source/registry/reg_init_smbconf.c
index ff9cde749ea..8d2fe53b53c 100644
--- a/source/registry/reg_init_smbconf.c
+++ b/source/registry/reg_init_smbconf.c
@@ -69,8 +69,8 @@ done:
*/
bool registry_init_smbconf(const char *keyname)
{
+ WERROR werr;
bool ret = false;
- int saved_errno = 0;
DEBUG(10, ("registry_init_smbconf called\n"));
@@ -80,13 +80,9 @@ bool registry_init_smbconf(const char *keyname)
keyname = KEY_SMBCONF;
}
- if (!regdb_init()) {
- saved_errno = errno;
- DEBUG(1, ("Can't open the registry"));
- if (saved_errno) {
- DEBUGADD(1, (": %s", strerror(saved_errno)));
- }
- DEBUGADD(1, (".\n"));
+ werr = regdb_init();
+ if (!W_ERROR_IS_OK(werr)) {
+ DEBUG(1, ("Can't open the registry: %s\n", dos_errstr(werr)));
goto done;
}
if (!init_registry_key(keyname)) {