Unverified Commit e2785eb5 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #6590 from DonLakeFlyer/OpenSSL

Windows OpenSSL: Use libs which static link to CRT
parents c5aa2ab6 72d3fecc
...@@ -64,7 +64,6 @@ WindowsBuild { ...@@ -64,7 +64,6 @@ WindowsBuild {
COPY_FILE_LIST = \ COPY_FILE_LIST = \
$$BASEDIR\\libs\\lib\\sdl2\\msvc\\lib\\x86\\SDL2.dll \ $$BASEDIR\\libs\\lib\\sdl2\\msvc\\lib\\x86\\SDL2.dll \
$$BASEDIR\\deploy\\libeay32.dll \ $$BASEDIR\\deploy\\libeay32.dll \
$$BASEDIR_WIN\\deploy\\libssl32.dll \
$$BASEDIR_WIN\\deploy\\ssleay32.dll $$BASEDIR_WIN\\deploy\\ssleay32.dll
for(COPY_FILE, COPY_FILE_LIST) { for(COPY_FILE, COPY_FILE_LIST) {
......
No preview for this file type
No preview for this file type
...@@ -66,8 +66,6 @@ void QGCLoggingCategoryRegister::setFilterRulesFromSettings(const QString& comma ...@@ -66,8 +66,6 @@ void QGCLoggingCategoryRegister::setFilterRulesFromSettings(const QString& comma
} }
QString filterRules; QString filterRules;
// Turn off bogus ssl warning
filterRules += "qt.network.ssl.warning=false\n";
filterRules += "*Log.debug=false\n"; filterRules += "*Log.debug=false\n";
// Set up filters defined in settings // Set up filters defined in settings
......
...@@ -17,11 +17,13 @@ ...@@ -17,11 +17,13 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QNetworkProxy> #include <QNetworkProxy>
#include <QNetworkReply> #include <QNetworkReply>
#include <QSslConfiguration>
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
#include <QJsonArray> #include <QJsonArray>
#include <QTimer> #include <QTimer>
#include <QtLocation/private/qgeotilespec_p.h> #include <QtLocation/private/qgeotilespec_p.h>
#include <cmath> #include <cmath>
QGC_LOGGING_CATEGORY(TerrainQueryLog, "TerrainQueryLog") QGC_LOGGING_CATEGORY(TerrainQueryLog, "TerrainQueryLog")
...@@ -33,7 +35,7 @@ Q_GLOBAL_STATIC(TerrainTileManager, _terrainTileManager) ...@@ -33,7 +35,7 @@ Q_GLOBAL_STATIC(TerrainTileManager, _terrainTileManager)
TerrainAirMapQuery::TerrainAirMapQuery(QObject* parent) TerrainAirMapQuery::TerrainAirMapQuery(QObject* parent)
: TerrainQueryInterface(parent) : TerrainQueryInterface(parent)
{ {
qCDebug(TerrainQueryVerboseLog) << "supportsSsl" << QSslSocket::supportsSsl() << "sslLibraryBuildVersionString" << QSslSocket::sslLibraryBuildVersionString();
} }
void TerrainAirMapQuery::requestCoordinateHeights(const QList<QGeoCoordinate>& coordinates) void TerrainAirMapQuery::requestCoordinateHeights(const QList<QGeoCoordinate>& coordinates)
...@@ -107,18 +109,24 @@ void TerrainAirMapQuery::_sendQuery(const QString& path, const QUrlQuery& urlQue ...@@ -107,18 +109,24 @@ void TerrainAirMapQuery::_sendQuery(const QString& path, const QUrlQuery& urlQue
QNetworkRequest request(url); QNetworkRequest request(url);
QSslConfiguration sslConf = request.sslConfiguration();
sslConf.setPeerVerifyMode(QSslSocket::VerifyNone);
request.setSslConfiguration(sslConf);
QNetworkProxy tProxy; QNetworkProxy tProxy;
tProxy.setType(QNetworkProxy::DefaultProxy); tProxy.setType(QNetworkProxy::DefaultProxy);
_networkManager.setProxy(tProxy); _networkManager.setProxy(tProxy);
QNetworkReply* networkReply = _networkManager.get(request); QNetworkReply* networkReply = _networkManager.get(request);
if (!networkReply) { if (!networkReply) {
qCDebug(TerrainQueryLog) << "QNetworkManager::Get did not return QNetworkReply"; qCWarning(TerrainQueryLog) << "QNetworkManager::Get did not return QNetworkReply";
_requestFailed(); _requestFailed();
return; return;
} }
networkReply->ignoreSslErrors();
connect(networkReply, &QNetworkReply::finished, this, &TerrainAirMapQuery::_requestFinished); connect(networkReply, &QNetworkReply::finished, this, &TerrainAirMapQuery::_requestFinished);
connect(networkReply, &QNetworkReply::sslErrors, this, &TerrainAirMapQuery::_sslErrors);
connect(networkReply, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &TerrainAirMapQuery::_requestError); connect(networkReply, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &TerrainAirMapQuery::_requestError);
} }
...@@ -127,17 +135,29 @@ void TerrainAirMapQuery::_requestError(QNetworkReply::NetworkError code) ...@@ -127,17 +135,29 @@ void TerrainAirMapQuery::_requestError(QNetworkReply::NetworkError code)
QNetworkReply* reply = qobject_cast<QNetworkReply*>(QObject::sender()); QNetworkReply* reply = qobject_cast<QNetworkReply*>(QObject::sender());
if (code != QNetworkReply::NoError) { if (code != QNetworkReply::NoError) {
qCDebug(TerrainQueryLog) << "_requestError error:url:data" << reply->error() << reply->url() << reply->readAll(); qCWarning(TerrainQueryLog) << "_requestError error:url:data" << reply->error() << reply->url() << reply->readAll();
return; return;
} }
} }
void TerrainAirMapQuery::_sslErrors(const QList<QSslError> &errors)
{
for (const auto &error : errors) {
qCWarning(TerrainQueryLog) << "SSL error: " << error.errorString();
const auto &certificate = error.certificate();
if (!certificate.isNull()) {
qCWarning(TerrainQueryLog) << "SSL Certificate problem: " << certificate.toText();
}
}
}
void TerrainAirMapQuery::_requestFinished(void) void TerrainAirMapQuery::_requestFinished(void)
{ {
QNetworkReply* reply = qobject_cast<QNetworkReply*>(QObject::sender()); QNetworkReply* reply = qobject_cast<QNetworkReply*>(QObject::sender());
if (reply->error() != QNetworkReply::NoError) { if (reply->error() != QNetworkReply::NoError) {
qCDebug(TerrainQueryLog) << "_requestFinished error:url:data" << reply->error() << reply->url() << reply->readAll(); qCWarning(TerrainQueryLog) << "_requestFinished error:url:data" << reply->error() << reply->url() << reply->readAll();
reply->deleteLater(); reply->deleteLater();
_requestFailed(); _requestFailed();
return; return;
...@@ -150,7 +170,7 @@ void TerrainAirMapQuery::_requestFinished(void) ...@@ -150,7 +170,7 @@ void TerrainAirMapQuery::_requestFinished(void)
QJsonParseError parseError; QJsonParseError parseError;
QJsonDocument responseJson = QJsonDocument::fromJson(responseBytes, &parseError); QJsonDocument responseJson = QJsonDocument::fromJson(responseBytes, &parseError);
if (parseError.error != QJsonParseError::NoError) { if (parseError.error != QJsonParseError::NoError) {
qCDebug(TerrainQueryLog) << "_requestFinished unable to parse json:" << parseError.errorString(); qCWarning(TerrainQueryLog) << "_requestFinished unable to parse json:" << parseError.errorString();
_requestFailed(); _requestFailed();
return; return;
} }
...@@ -159,7 +179,7 @@ void TerrainAirMapQuery::_requestFinished(void) ...@@ -159,7 +179,7 @@ void TerrainAirMapQuery::_requestFinished(void)
QJsonObject rootObject = responseJson.object(); QJsonObject rootObject = responseJson.object();
QString status = rootObject["status"].toString(); QString status = rootObject["status"].toString();
if (status != "success") { if (status != "success") {
qCDebug(TerrainQueryLog) << "_requestFinished status != success:" << status; qCWarning(TerrainQueryLog) << "_requestFinished status != success:" << status;
_requestFailed(); _requestFailed();
return; return;
} }
...@@ -252,7 +272,7 @@ void TerrainAirMapQuery::_parseCarpetData(const QJsonValue& carpetJson) ...@@ -252,7 +272,7 @@ void TerrainAirMapQuery::_parseCarpetData(const QJsonValue& carpetJson)
TerrainOfflineAirMapQuery::TerrainOfflineAirMapQuery(QObject* parent) TerrainOfflineAirMapQuery::TerrainOfflineAirMapQuery(QObject* parent)
: TerrainQueryInterface(parent) : TerrainQueryInterface(parent)
{ {
qCDebug(TerrainQueryVerboseLog) << "supportsSsl" << QSslSocket::supportsSsl() << "sslLibraryBuildVersionString" << QSslSocket::sslLibraryBuildVersionString();
} }
void TerrainOfflineAirMapQuery::requestCoordinateHeights(const QList<QGeoCoordinate>& coordinates) void TerrainOfflineAirMapQuery::requestCoordinateHeights(const QList<QGeoCoordinate>& coordinates)
...@@ -385,7 +405,7 @@ bool TerrainTileManager::_getAltitudesForCoordinates(const QList<QGeoCoordinate> ...@@ -385,7 +405,7 @@ bool TerrainTileManager::_getAltitudesForCoordinates(const QList<QGeoCoordinate>
if (_tiles[tileHash].isIn(coordinate)) { if (_tiles[tileHash].isIn(coordinate)) {
altitudes.push_back(_tiles[tileHash].elevation(coordinate)); altitudes.push_back(_tiles[tileHash].elevation(coordinate));
} else { } else {
qCDebug(TerrainQueryLog) << "Error: coordinate not in tile region"; qCWarning(TerrainQueryLog) << "Error: coordinate not in tile region";
altitudes.push_back(-1.0); altitudes.push_back(-1.0);
} }
} }
...@@ -412,7 +432,7 @@ void TerrainTileManager::_terrainDone(QByteArray responseBytes, QNetworkReply::N ...@@ -412,7 +432,7 @@ void TerrainTileManager::_terrainDone(QByteArray responseBytes, QNetworkReply::N
_state = State::Idle; _state = State::Idle;
if (!reply) { if (!reply) {
qCDebug(TerrainQueryLog) << "Elevation tile fetched but invalid reply data type."; qCWarning(TerrainQueryLog) << "Elevation tile fetched but invalid reply data type.";
return; return;
} }
...@@ -422,13 +442,13 @@ void TerrainTileManager::_terrainDone(QByteArray responseBytes, QNetworkReply::N ...@@ -422,13 +442,13 @@ void TerrainTileManager::_terrainDone(QByteArray responseBytes, QNetworkReply::N
// handle potential errors // handle potential errors
if (error != QNetworkReply::NoError) { if (error != QNetworkReply::NoError) {
qCDebug(TerrainQueryLog) << "Elevation tile fetching returned error (" << error << ")"; qCWarning(TerrainQueryLog) << "Elevation tile fetching returned error (" << error << ")";
_tileFailed(); _tileFailed();
reply->deleteLater(); reply->deleteLater();
return; return;
} }
if (responseBytes.isEmpty()) { if (responseBytes.isEmpty()) {
qCDebug(TerrainQueryLog) << "Error in fetching elevation tile. Empty response."; qCWarning(TerrainQueryLog) << "Error in fetching elevation tile. Empty response.";
_tileFailed(); _tileFailed();
reply->deleteLater(); reply->deleteLater();
return; return;
...@@ -446,7 +466,7 @@ void TerrainTileManager::_terrainDone(QByteArray responseBytes, QNetworkReply::N ...@@ -446,7 +466,7 @@ void TerrainTileManager::_terrainDone(QByteArray responseBytes, QNetworkReply::N
} }
_tilesMutex.unlock(); _tilesMutex.unlock();
} else { } else {
qCDebug(TerrainQueryLog) << "Received invalid tile"; qCWarning(TerrainQueryLog) << "Received invalid tile";
} }
reply->deleteLater(); reply->deleteLater();
......
...@@ -69,7 +69,8 @@ public: ...@@ -69,7 +69,8 @@ public:
private slots: private slots:
void _requestError (QNetworkReply::NetworkError code); void _requestError (QNetworkReply::NetworkError code);
void _requestFinished (); void _requestFinished (void);
void _sslErrors (const QList<QSslError> &errors);
private: private:
void _sendQuery (const QString& path, const QUrlQuery& urlQuery); void _sendQuery (const QString& path, const QUrlQuery& urlQuery);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment