From 759942b0370dfef934d29bfd866e8402ff85513c Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 7 Sep 2017 12:10:44 +0200 Subject: [PATCH] fix config initialisation when there's an old config around --- server/guhconfiguration.cpp | 48 +++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/server/guhconfiguration.cpp b/server/guhconfiguration.cpp index f5e4da18..dd0e617f 100644 --- a/server/guhconfiguration.cpp +++ b/server/guhconfiguration.cpp @@ -45,14 +45,22 @@ GuhConfiguration::GuhConfiguration(QObject *parent) : #ifndef TESTING_ENABLED // TcpServer + bool createDefaults = !settings.childGroups().contains("TcpServer"); if (settings.childGroups().contains("TcpServer")) { settings.beginGroup("TcpServer"); - foreach (const QString &key, settings.childGroups()) { - ServerConfiguration config = readServerConfig("TcpServer", key); - m_tcpServerConfigs[config.id] = config; + if (settings.value("disabled").toBool()) { + qCDebug(dcApplication) << "TCP Server disabled by configuration"; + } else if (!settings.childGroups().isEmpty()) { + foreach (const QString &key, settings.childGroups()) { + ServerConfiguration config = readServerConfig("TcpServer", key); + m_tcpServerConfigs[config.id] = config; + } + } else { + createDefaults = true; } settings.endGroup(); - } else { + } + if (createDefaults) { qCWarning(dcApplication) << "No TCP Server configuration found. Generating default of 0.0.0.0:2222"; ServerConfiguration config; config.id = "default"; @@ -66,14 +74,22 @@ GuhConfiguration::GuhConfiguration(QObject *parent) : } // Webserver + createDefaults = !settings.childGroups().contains("WebServer"); if (settings.childGroups().contains("WebServer")) { settings.beginGroup("WebServer"); - foreach (const QString &key, settings.childGroups()) { - WebServerConfiguration config = readWebServerConfig(key); - m_webServerConfigs[config.id] = config; + if (settings.value("disabled").toBool()) { + qCDebug(dcApplication) << "WebServer disabled by configuration"; + } else if (!settings.childGroups().isEmpty()) { + foreach (const QString &key, settings.childGroups()) { + WebServerConfiguration config = readWebServerConfig(key); + m_webServerConfigs[config.id] = config; + } + } else { + createDefaults = true; } settings.endGroup(); - } else { + } + if (createDefaults) { qCWarning(dcApplication) << "No WebServer configuration found. Generating default of 0.0.0.0:3333"; WebServerConfiguration insecureConfig; insecureConfig.id = "insecure"; @@ -97,14 +113,22 @@ GuhConfiguration::GuhConfiguration(QObject *parent) : } // WebSocket Server + createDefaults = !settings.childGroups().contains("WebServer"); if (settings.childGroups().contains("WebSocketServer")) { settings.beginGroup("WebSocketServer"); - foreach (const QString &key, settings.childGroups()) { - ServerConfiguration config = readServerConfig("WebSocketServer", key); - m_webSocketServerConfigs[config.id] = config; + if (settings.value("disabled").toBool()) { + qCDebug(dcApplication) << "WebSocket Server disabled by configuration."; + } else if (!settings.childGroups().isEmpty()) { + foreach (const QString &key, settings.childGroups()) { + ServerConfiguration config = readServerConfig("WebSocketServer", key); + m_webSocketServerConfigs[config.id] = config; + } + } else { + createDefaults = true; } settings.endGroup(); - } else { + } + if (createDefaults) { qCWarning(dcApplication) << "No WebSocketServer configuration found. Generating default of 0.0.0.0:4444"; ServerConfiguration config; config.id = "default";