commit
e0864b3834
@ -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);
|
||||
|
||||
@ -22,7 +22,7 @@ public:
|
||||
|
||||
static bool exists();
|
||||
|
||||
void start();
|
||||
void start(ProxyConfiguration *configuration);
|
||||
void stop();
|
||||
|
||||
bool running() const;
|
||||
|
||||
@ -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<quint16>(settings.value("port", 1213).toInt()));
|
||||
setTcpServerHost(QHostAddress(settings.value("host", "127.0.0.1").toString()));
|
||||
setTcpServerPort(static_cast<quint16>(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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
#include <QSslConfiguration>
|
||||
#include <QCommandLineParser>
|
||||
#include <QCommandLineOption>
|
||||
#include <QStandardPaths>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user