From 91729437a0c24c5aad8f223f64ee63e918fe8b91 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 17 Feb 2014 22:12:33 +0100 Subject: Main: initialize Database before Storage --- src/Main.cxx | 17 ++++++++++++----- src/db/Configured.cxx | 14 +------------- src/db/Configured.hxx | 2 +- 3 files changed, 14 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/Main.cxx b/src/Main.cxx index 23f1659d7..2657d54f1 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -172,7 +172,6 @@ glue_db_init_and_load(void) Error error; instance->database = CreateConfiguredDatabase(*instance->event_loop, *instance, - instance->storage != nullptr, is_simple, error); if (instance->database == nullptr) { if (error.IsDefined()) @@ -181,6 +180,18 @@ glue_db_init_and_load(void) return true; } + if (!InitStorage(error)) + FatalError(error); + + if (instance->storage == nullptr) { + delete instance->database; + instance->database = nullptr; + LogDefault(config_domain, + "Found database setting without " + "music_directory - disabling database"); + return true; + } + if (!instance->database->Open(error)) FatalError(error); @@ -199,10 +210,6 @@ glue_db_init_and_load(void) static bool InitDatabaseAndStorage() { - Error error; - if (!InitStorage(error)) - FatalError(error); - const bool create_db = !glue_db_init_and_load(); return create_db; } diff --git a/src/db/Configured.cxx b/src/db/Configured.cxx index a6194dc5c..edd3159f9 100644 --- a/src/db/Configured.cxx +++ b/src/db/Configured.cxx @@ -28,7 +28,7 @@ Database * CreateConfiguredDatabase(EventLoop &loop, DatabaseListener &listener, - bool have_storage, bool &is_simple_r, Error &error) + bool &is_simple_r, Error &error) { const struct config_param *param = config_get_param(CONF_DATABASE); const struct config_param *path = config_get_param(CONF_DB_FILE); @@ -40,18 +40,6 @@ CreateConfiguredDatabase(EventLoop &loop, DatabaseListener &listener, return nullptr; } - if (!have_storage) { - if (param != nullptr) - LogDefault(config_domain, - "Found database setting without " - "music_directory - disabling database"); - if (path != nullptr) - LogDefault(config_domain, - "Found db_file setting without " - "music_directory - disabling database"); - return nullptr; - } - struct config_param *allocated = nullptr; if (param == nullptr && path != nullptr) { diff --git a/src/db/Configured.hxx b/src/db/Configured.hxx index 0cd054b4b..4e4299bfc 100644 --- a/src/db/Configured.hxx +++ b/src/db/Configured.hxx @@ -34,6 +34,6 @@ class Error; */ Database * CreateConfiguredDatabase(EventLoop &loop, DatabaseListener &listener, - bool have_storage, bool &is_simple_r, Error &error); + bool &is_simple_r, Error &error); #endif -- cgit v1.2.3