diff --git a/src/QGCFileDownload.cc b/src/QGCFileDownload.cc index c5921e6..e67da07 100644 --- a/src/QGCFileDownload.cc +++ b/src/QGCFileDownload.cc @@ -60,6 +60,8 @@ bool QGCFileDownload::download(const QString& remoteFile, const QVector errorsThatCanBeIgnored; + errorsThatCanBeIgnored << QSslError(QSslError::NoPeerCertificate); + networkReply.ignoreSslErrors(errorsThatCanBeIgnored); + } +} diff --git a/src/QGCFileDownload.h b/src/QGCFileDownload.h index b4e0c51..3c9932a 100644 --- a/src/QGCFileDownload.h +++ b/src/QGCFileDownload.h @@ -25,6 +25,8 @@ public: /// @return true: Asynchronous download has started, false: Download initialization failed bool download(const QString& remoteFile, const QVector>& requestAttributes={}, bool redirect = false); + static void setIgnoreSSLErrorsIfNeeded(QNetworkReply& networkReply); + signals: void downloadProgress(qint64 curr, qint64 total); void downloadComplete(QString remoteFile, QString localFile, QString errorMsg); diff --git a/src/QtLocationPlugin/QGCMapTileSet.cpp b/src/QtLocationPlugin/QGCMapTileSet.cpp index e8ad05d..4c21eeb 100644 --- a/src/QtLocationPlugin/QGCMapTileSet.cpp +++ b/src/QtLocationPlugin/QGCMapTileSet.cpp @@ -19,6 +19,7 @@ #include "QGCMapEngine.h" #include "QGCMapTileSet.h" #include "QGCMapEngineManager.h" +#include "QGCFileDownload.h" #include "TerrainTile.h" #include @@ -249,6 +250,7 @@ void QGCCachedTileSet::_prepareDownload() #endif QNetworkReply* reply = _networkManager->get(request); reply->setParent(0); + QGCFileDownload::setIgnoreSSLErrorsIfNeeded(*reply); connect(reply, &QNetworkReply::finished, this, &QGCCachedTileSet::_networkReplyFinished); connect(reply, &QNetworkReply::errorOccurred, this, &QGCCachedTileSet::_networkReplyError); _replies.insert(tile->hash(), reply); diff --git a/src/Terrain/TerrainQuery.cc b/src/Terrain/TerrainQuery.cc index 8e32d00..10456c3 100644 --- a/src/Terrain/TerrainQuery.cc +++ b/src/Terrain/TerrainQuery.cc @@ -10,6 +10,7 @@ #include "TerrainQuery.h" #include "QGCMapEngine.h" #include "QGeoMapReplyQGC.h" +#include "QGCFileDownload.h" #include "QGCApplication.h" #include @@ -123,7 +124,7 @@ void TerrainAirMapQuery::_sendQuery(const QString& path, const QUrlQuery& urlQue _requestFailed(); return; } - networkReply->ignoreSslErrors(); + QGCFileDownload::setIgnoreSSLErrorsIfNeeded(*networkReply); connect(networkReply, &QNetworkReply::finished, this, &TerrainAirMapQuery::_requestFinished); connect(networkReply, &QNetworkReply::sslErrors, this, &TerrainAirMapQuery::_sslErrors);