diff --git a/src/lib/deskflow/ServerApp.cpp b/src/lib/deskflow/ServerApp.cpp index bf9364e5e..b788f1243 100644 --- a/src/lib/deskflow/ServerApp.cpp +++ b/src/lib/deskflow/ServerApp.cpp @@ -90,10 +90,17 @@ void ServerApp::reloadSignalHandler(Arch::ThreadSignal, void *) events->addEvent(Event(EventTypes::ServerAppReloadConfig, events->getSystemTarget())); } +std::string ServerApp::currentConfig() const +{ + bool useExt = Settings::value(Settings::Server::ExternalConfig).toBool(); + return useExt ? Settings::value(Settings::Server::ExternalConfigFile).toString().toStdString() + : Settings::defaultValue(Settings::Server::ExternalConfigFile).toString().toStdString(); +} + void ServerApp::reloadConfig() { LOG_DEBUG("reload configuration"); - if (loadConfig(Settings::value(Settings::Server::ExternalConfigFile).toString().toStdString())) { + if (loadConfig(currentConfig())) { if (m_server != nullptr) { m_server->setConfig(*m_config); } @@ -103,7 +110,7 @@ void ServerApp::reloadConfig() void ServerApp::loadConfig() { - const auto path = Settings::value(Settings::Server::ExternalConfigFile).toString().toStdString(); + const auto path = currentConfig(); if (path.empty()) { LOG_CRIT("no configuration path provided"); bye(s_exitConfig); diff --git a/src/lib/deskflow/ServerApp.h b/src/lib/deskflow/ServerApp.h index 7dfee938a..31d7d0620 100644 --- a/src/lib/deskflow/ServerApp.h +++ b/src/lib/deskflow/ServerApp.h @@ -107,6 +107,7 @@ private: std::unique_ptr getSocketFactory() const; NetworkAddress getAddress(const NetworkAddress &address) const; + std::string currentConfig() const; bool m_suspended = false; Server *m_server = nullptr; ServerState m_serverState = ServerState::Uninitialized;