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

NHEKO_ALLOW_INSECURE_CONNECTIONS=1 ./nheko

fixes #260
remotes/origin/HEAD
Konstantinos Sideris 7 years ago
parent ed0b345e76
commit f4675165ea
  1. 9
      include/MatrixClient.h
  2. 18
      src/MatrixClient.cc

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

@ -25,6 +25,7 @@
#include <QNetworkReply> #include <QNetworkReply>
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QPixmap> #include <QPixmap>
#include <QProcessEnvironment>
#include <QSettings> #include <QSettings>
#include <QUrlQuery> #include <QUrlQuery>
#include <mtx/errors.hpp> #include <mtx/errors.hpp>
@ -36,11 +37,26 @@ MatrixClient::MatrixClient(QString server, QObject *parent)
: QNetworkAccessManager(parent) : QNetworkAccessManager(parent)
, clientApiUrl_{"/_matrix/client/r0"} , clientApiUrl_{"/_matrix/client/r0"}
, mediaApiUrl_{"/_matrix/media/r0"} , mediaApiUrl_{"/_matrix/media/r0"}
, server_{"https://" + server} , serverProtocol_{"https"}
{ {
QSettings settings; QSettings settings;
txn_id_ = settings.value("client/transaction_id", 1).toInt(); 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{ QJsonObject default_filter{
{ {
"room", "room",

Loading…
Cancel
Save