Merge branch 'fix-build' into 'master'

Some fixes

See merge request !3
This commit is contained in:
Simon Stürz 2018-08-15 11:03:31 +02:00
commit e0864b3834
5 changed files with 22 additions and 20 deletions

View File

@ -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);

View File

@ -22,7 +22,7 @@ public:
static bool exists();
void start();
void start(ProxyConfiguration *configuration);
void stop();
bool running() const;

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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);