diff --git a/libnymea-remoteproxy/engine.cpp b/libnymea-remoteproxy/engine.cpp index abc9468..3573b0c 100644 --- a/libnymea-remoteproxy/engine.cpp +++ b/libnymea-remoteproxy/engine.cpp @@ -30,7 +30,7 @@ bool Engine::exists() return s_instance != nullptr; } -void Engine::start() +void Engine::start(ProxyConfiguration *configuration) { // Make sure an authenticator was registered Q_ASSERT_X(m_authenticator != nullptr, "Engine", "There is no authenticator registerd."); @@ -42,7 +42,7 @@ void Engine::start() // Clean up clean(); - m_configuration = new ProxyConfiguration(this); + m_configuration = configuration; m_proxyServer = new ProxyServer(this); m_webSocketServer = new WebSocketServer(m_sslConfiguration, this); @@ -50,6 +50,7 @@ void Engine::start() websocketServerUrl.setScheme("wss"); websocketServerUrl.setHost(m_configuration->webSocketServerHost().toString()); websocketServerUrl.setPort(m_configuration->webSocketServerPort()); + qDebug() << "WSS url is:" << websocketServerUrl; m_webSocketServer->setServerUrl(websocketServerUrl); m_proxyServer->registerTransportInterface(m_webSocketServer); diff --git a/libnymea-remoteproxy/engine.h b/libnymea-remoteproxy/engine.h index 138123d..b97e8d0 100644 --- a/libnymea-remoteproxy/engine.h +++ b/libnymea-remoteproxy/engine.h @@ -22,7 +22,7 @@ public: static bool exists(); - void start(); + void start(ProxyConfiguration *configuration); void stop(); bool running() const; diff --git a/libnymea-remoteproxy/proxyconfiguration.cpp b/libnymea-remoteproxy/proxyconfiguration.cpp index f2d739a..662bd44 100644 --- a/libnymea-remoteproxy/proxyconfiguration.cpp +++ b/libnymea-remoteproxy/proxyconfiguration.cpp @@ -25,14 +25,11 @@ bool ProxyConfiguration::loadConfiguration(const QString &fileName) } QSettings settings(fileName, QSettings::IniFormat); - qCDebug(dcApplication()) << settings.childGroups(); - settings.beginGroup("General"); setWriteLogFile(settings.value("writeLogs", false).toBool()); setLogFileName(settings.value("logFile", "/var/log/nymea-remoteproxy.log").toString()); setSslCertificateFileName(settings.value("certificate", "/etc/ssl/certs/ssl-cert-snakeoil.pem").toString()); setSslCertificateKeyFileName(settings.value("certificateKey", "/etc/ssl/private/ssl-cert-snakeoil.key").toString()); - settings.endGroup(); settings.beginGroup("WebSocketServer"); setWebSocketServerHost(QHostAddress(settings.value("host", "127.0.0.1").toString())); @@ -40,8 +37,8 @@ bool ProxyConfiguration::loadConfiguration(const QString &fileName) settings.endGroup(); settings.beginGroup("TcpServer"); - setWebSocketServerHost(QHostAddress(settings.value("host", "127.0.0.1").toString())); - setWebSocketServerPort(static_cast(settings.value("port", 1213).toInt())); + setTcpServerHost(QHostAddress(settings.value("host", "127.0.0.1").toString())); + setTcpServerPort(static_cast(settings.value("port", 1213).toInt())); settings.endGroup(); return true; @@ -74,7 +71,7 @@ QString ProxyConfiguration::sslCertificateFileName() const void ProxyConfiguration::setSslCertificateFileName(const QString &fileName) { - m_logFileName = fileName; + m_sslCertificateFileName = fileName; } QString ProxyConfiguration::sslCertificateKeyFileName() const @@ -143,7 +140,7 @@ QDebug operator<<(QDebug debug, ProxyConfiguration *configuration) debug.nospace() << " - port:" << configuration->tcpServerPort() << endl; debug.nospace() << "========== ProxyConfiguration ==========" << endl; - return debug; return debug; + return debug; } diff --git a/server/main.cpp b/server/main.cpp index da79df0..6eb2b3e 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -100,6 +101,8 @@ int main(int argc, char *argv[]) s_loggingFilters.insert("Authentication", true); s_loggingFilters.insert("ProxyServer", true); + QString configFile = QStandardPaths::standardLocations(QStandardPaths::ConfigLocation).first() + "/nymea/nymea-remoteproxy.conf"; + // command line parser QCommandLineParser parser; parser.addHelpOption(); @@ -124,11 +127,11 @@ int main(int argc, char *argv[]) QCommandLineOption mockAuthenticatorOption(QStringList() << "m" << "mock-authenticator", "Start the server using a mock authenticator which returns always true."); parser.addOption(mockAuthenticatorOption); - QCommandLineOption configOption(QStringList() << "c" <<"configuration", "The path to the proxy server configuration file. The default is /etc/nymea-remoteproxy/nymea-remoteproxy.conf", "configuration"); - configOption.setDefaultValue("/etc/nymea-remoteproxy/nymea-remoteproxy.conf"); + QCommandLineOption configOption(QStringList() << "c" <<"configuration", "The path to the proxy server configuration file. The default is " + configFile, "configuration"); + configOption.setDefaultValue(configFile); parser.addOption(configOption); - QCommandLineOption verboseOption(QStringList() << "v" << "verbose", "Print more verbose."); + QCommandLineOption verboseOption(QStringList() << "verbose", "Print more verbose."); parser.addOption(verboseOption); parser.process(application); @@ -136,11 +139,12 @@ int main(int argc, char *argv[]) // Create a default configuration ProxyConfiguration *configuration = new ProxyConfiguration(nullptr); if (parser.isSet(configOption)) { - qCDebug(dcApplication()) << "Loading configuration file from" << parser.value(configOption); - if (!configuration->loadConfiguration(parser.value(configOption))) { - qCCritical(dcApplication()) << "Invalid configuration file passed" << parser.value(configOption); - exit(-1); - } + configFile = parser.value(configOption); + } + qCDebug(dcApplication()) << "Loading configuration file from" << configFile; + if (!configuration->loadConfiguration(parser.value(configOption))) { + qCCritical(dcApplication()) << "Invalid configuration file passed" << parser.value(configOption); + exit(-1); } @@ -225,7 +229,7 @@ int main(int argc, char *argv[]) Engine::instance()->setSslConfiguration(sslConfiguration); Engine::instance()->setAuthenticator(authenticator); - Engine::instance()->start(); + Engine::instance()->start(configuration); return application.exec(); } diff --git a/tests/offline/nymea-remoteproxy-tests-offline.cpp b/tests/offline/nymea-remoteproxy-tests-offline.cpp index c10dd25..5b927bc 100644 --- a/tests/offline/nymea-remoteproxy-tests-offline.cpp +++ b/tests/offline/nymea-remoteproxy-tests-offline.cpp @@ -70,7 +70,7 @@ void RemoteProxyTests::webserverConnectionBlocked() Engine::instance()->setSslConfiguration(m_sslConfiguration); QSignalSpy runningSpy(Engine::instance(), &Engine::runningChanged); - Engine::instance()->start(); + Engine::instance()->start(m_configuration); runningSpy.wait(); QVERIFY(runningSpy.count() == 1);