diff options
author | louiz’ <louiz@louiz.org> | 2016-07-12 00:31:57 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2016-07-12 00:31:57 +0200 |
commit | 4c1b9abe7e230a39b119bdc45ebcd5e677fad488 (patch) | |
tree | 52ef96df3fb94412787a3fac099d53199540b8f4 /louloulibs/utils | |
parent | 03feb403f8fc702481f4e7a0ec0264aa2912ae51 (diff) | |
download | biboumi-4c1b9abe7e230a39b119bdc45ebcd5e677fad488.tar.gz biboumi-4c1b9abe7e230a39b119bdc45ebcd5e677fad488.tar.bz2 biboumi-4c1b9abe7e230a39b119bdc45ebcd5e677fad488.tar.xz biboumi-4c1b9abe7e230a39b119bdc45ebcd5e677fad488.zip |
Properly catch and handle database errors
Do not use a singleton for the database.
fix #3203
Diffstat (limited to 'louloulibs/utils')
-rw-r--r-- | louloulibs/utils/reload.cpp | 19 | ||||
-rw-r--r-- | louloulibs/utils/reload.hpp | 8 |
2 files changed, 19 insertions, 8 deletions
diff --git a/louloulibs/utils/reload.cpp b/louloulibs/utils/reload.cpp index bddfd86..7125a75 100644 --- a/louloulibs/utils/reload.cpp +++ b/louloulibs/utils/reload.cpp @@ -1,11 +1,28 @@ +#include <utils/reload.hpp> +#include <database/database.hpp> #include <config/config.hpp> +#include <utils/xdg.hpp> #include <logger/logger.hpp> +void open_database() +{ + const auto db_filename = Config::get("db_name", xdg_data_path("biboumi.sqlite")); + log_info("Opening database: ", db_filename); + Database::open(db_filename); + log_info("database successfully opened."); +} + void reload_process() { Config::read_conf(); // Destroy the logger instance, to be recreated the next time a log // line needs to be written Logger::instance().reset(); - log_debug("Configuration and logger reloaded."); + log_info("Configuration and logger reloaded."); + try { + open_database(); + } catch (const litesql::DatabaseError&) { + log_warning("Re-using the previous database."); + } } + diff --git a/louloulibs/utils/reload.hpp b/louloulibs/utils/reload.hpp index 6a56acd..408426a 100644 --- a/louloulibs/utils/reload.hpp +++ b/louloulibs/utils/reload.hpp @@ -1,10 +1,4 @@ #pragma once - -/** - * Reload the server's configuration, and close the logger (so that it - * closes its files etc, to take into account the new configuration) - */ +void open_database(); void reload_process(); - - |