Add environment variable to allow insecure connections (self-signed certs)

NHEKO_ALLOW_INSECURE_CONNECTIONS=1 ./nheko

fixes #260
This commit is contained in:
Konstantinos Sideris 2018-03-27 10:38:00 +03:00
parent ed0b345e76
commit f4675165ea
2 changed files with 22 additions and 5 deletions

View File

@ -102,7 +102,7 @@ public slots:
void setServer(const QString &server)
{
server_ = QUrl(QString("https://%1").arg(server));
server_ = QUrl(QString("%1://%2").arg(serverProtocol_).arg(server));
};
void setAccessToken(const QString &token) { token_ = token; };
void setNextBatchToken(const QString &next_batch) { next_batch_ = next_batch; };
@ -193,9 +193,10 @@ private:
// Increasing transaction ID.
int txn_id_;
// Token to be used for the next sync.
//! Token to be used for the next sync.
QString next_batch_;
// filter to be send as filter-param for (initial) /sync requests
//! http or https (default).
QString serverProtocol_;
//! Filter to be send as filter-param for (initial) /sync requests.
QString filter_;
};

View File

@ -25,6 +25,7 @@
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPixmap>
#include <QProcessEnvironment>
#include <QSettings>
#include <QUrlQuery>
#include <mtx/errors.hpp>
@ -36,11 +37,26 @@ MatrixClient::MatrixClient(QString server, QObject *parent)
: QNetworkAccessManager(parent)
, clientApiUrl_{"/_matrix/client/r0"}
, mediaApiUrl_{"/_matrix/media/r0"}
, server_{"https://" + server}
, serverProtocol_{"https"}
{
QSettings settings;
txn_id_ = settings.value("client/transaction_id", 1).toInt();
auto env = QProcessEnvironment::systemEnvironment();
auto allowInsecureConnections = env.value("NHEKO_ALLOW_INSECURE_CONNECTIONS", "0");
if (allowInsecureConnections == "1") {
qWarning() << "Insecure connections are allowed: SSL errors will be ignored";
connect(
this,
&QNetworkAccessManager::sslErrors,
this,
[](QNetworkReply *reply, const QList<QSslError> &) { reply->ignoreSslErrors(); });
}
setServer(server);
QJsonObject default_filter{
{
"room",