summaryrefslogtreecommitdiff
path: root/louloulibs/utils
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2016-07-12 00:31:57 +0200
committerlouiz’ <louiz@louiz.org>2016-07-12 00:31:57 +0200
commit4c1b9abe7e230a39b119bdc45ebcd5e677fad488 (patch)
tree52ef96df3fb94412787a3fac099d53199540b8f4 /louloulibs/utils
parent03feb403f8fc702481f4e7a0ec0264aa2912ae51 (diff)
downloadbiboumi-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.cpp19
-rw-r--r--louloulibs/utils/reload.hpp8
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();
-
-