Issue #77 Break dependency of CNetworkUtils on CUrl and CUrlList

This commit is contained in:
Mat Sutcliffe
2020-11-08 23:59:20 +00:00
parent 611b7547c0
commit ac48e64891
2 changed files with 12 additions and 60 deletions

View File

@@ -84,10 +84,10 @@ namespace BlackMisc
return true;
}
bool CNetworkUtils::canPing(const CUrl &url)
bool CNetworkUtils::canPing(const QUrl &url)
{
if (url.isEmpty()) { return false; }
return CNetworkUtils::canPing(url.getHost());
return CNetworkUtils::canPing(url.host());
}
QStringList CNetworkUtils::getKnownLocalIpV4Addresses()
@@ -179,17 +179,6 @@ namespace BlackMisc
return canConnect(url, m, timeoutMs);
}
bool CNetworkUtils::canConnect(const CUrl &url, QString &message, int timeoutMs)
{
return canConnect(url.getHost(), url.getPort(), message, timeoutMs);
}
bool CNetworkUtils::canConnect(const CUrl &url, int timeoutMs)
{
QString m;
return canConnect(url, m, timeoutMs);
}
bool CNetworkUtils::isValidIPv4Address(const QString &candidate)
{
QHostAddress address(candidate);
@@ -262,37 +251,14 @@ namespace BlackMisc
}
//! \endcond
void CNetworkUtils::setSwiftClientSslCertificate(QNetworkRequest &request)
{
static const QSslKey privateKey(loadPrivateSslKey());
static const QSslCertificate certificate(loadSslCertifcate());
QSslConfiguration sslConfiguration = request.sslConfiguration();
sslConfiguration.setPrivateKey(privateKey);
sslConfiguration.setLocalCertificate(certificate);
request.setSslConfiguration(sslConfiguration);
}
void CNetworkUtils::setSwiftClientSslCertificate(QNetworkRequest &request, const CUrlList &swiftSharedUrls)
{
for (const CUrl &sharedUrl : swiftSharedUrls)
{
const QString urlString = request.url().toString();
if (urlString.startsWith(sharedUrl.toQString()))
{
CNetworkUtils::setSwiftClientSslCertificate(request);
break;
}
}
}
void CNetworkUtils::addDebugFlag(QUrlQuery &qurl)
{
qurl.addQueryItem("XDEBUG_SESSION_START", "ECLIPSE_DBGP");
}
QNetworkRequest CNetworkUtils::getSwiftNetworkRequest(const CUrl &url, RequestType type, const QString &userAgentDetails)
QNetworkRequest CNetworkUtils::getSwiftNetworkRequest(const QUrl &url, RequestType type, const QString &userAgentDetails)
{
QNetworkRequest request(url.toQUrl());
QNetworkRequest request(url);
switch (type)
{
case PostUrlEncoded:
@@ -397,17 +363,17 @@ namespace BlackMisc
CStatusMessageList CNetworkUtils::createNetworkReport(const QNetworkAccessManager *am)
{
return CNetworkUtils::createNetworkReport(CUrl(), am);
return CNetworkUtils::createNetworkReport(QUrl(), am);
}
CStatusMessageList CNetworkUtils::createNetworkReport(const CUrl &url, const QNetworkAccessManager *qam)
CStatusMessageList CNetworkUtils::createNetworkReport(const QUrl &url, const QNetworkAccessManager *qam)
{
static const CLogCategoryList cats({CLogCategories::network()});
CStatusMessageList msgs;
if (!url.isEmpty())
{
const QString host = url.getHost();
const QString host = url.host();
const bool canPing = CNetworkUtils::canPing(host);
const CStatusMessage ping(cats, canPing ? CStatusMessage::SeverityInfo : CStatusMessage::SeverityError, "Host: " + host + " ping: " + boolToYesNo(canPing));
msgs.push_back(ping);
@@ -416,11 +382,11 @@ namespace BlackMisc
const bool canConnect = CNetworkUtils::canConnect(url, msg, getTimeoutMs() * 2);
if (canConnect)
{
msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityInfo, u"Can connect to " % url.getFullUrl()));
msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityInfo, u"Can connect to " % url.toString()));
}
else
{
msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Cannot connect to " % url.getFullUrl() % u" msg: " % msg));
msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Cannot connect to " % url.toString() % u" msg: " % msg));
}
}

View File

@@ -11,7 +11,6 @@
#ifndef BLACKMISC_NETWORKUTILS_H
#define BLACKMISC_NETWORKUTILS_H
#include "blackmisc/network/urllist.h"
#include "blackmisc/blackmiscexport.h"
#include "blackmisc/statusmessagelist.h"
@@ -25,7 +24,6 @@
class QHttpPart;
class QNetworkReply;
class QUrl;
class QUrlQuery;
namespace BlackMisc
@@ -58,7 +56,7 @@ namespace BlackMisc
//! Can ping the address?
//! \note uses OS ping
static bool canPing(const BlackMisc::Network::CUrl &url);
static bool canPing(const QUrl &url);
//! Can connect?
//! \param hostAddress 130.4.20.3, or myserver.com
@@ -82,12 +80,6 @@ namespace BlackMisc
//! Can connect to URL?
static bool canConnect(const QUrl &url, int timeoutMs = getTimeoutMs());
//! Can connect to URL?
static bool canConnect(const BlackMisc::Network::CUrl &url, QString &message, int timeoutMs = getTimeoutMs());
//! Can connect to URL?
static bool canConnect(const BlackMisc::Network::CUrl &url, int timeoutMs = getTimeoutMs());
//! Find out my IPv4 addresses including loopback, empty if not possible
static QStringList getKnownLocalIpV4Addresses();
@@ -109,17 +101,11 @@ namespace BlackMisc
//! Set user agent for request
static void setSwiftUserAgent(QNetworkRequest &request, const QString &userAgentDetails = {});
//! Set swift client SSL certificate
static void setSwiftClientSslCertificate(QNetworkRequest &request);
//! Set swift client SSL certificate
static void setSwiftClientSslCertificate(QNetworkRequest &request, const BlackMisc::Network::CUrlList &swiftSharedUrls);
//! Add debug flag
static void addDebugFlag(QUrlQuery &qurl);
//! Our tweaked network request with swift header
static QNetworkRequest getSwiftNetworkRequest(const CUrl &url, RequestType type = Get, const QString &userAgentDetails = {});
static QNetworkRequest getSwiftNetworkRequest(const QUrl &url, RequestType type = Get, const QString &userAgentDetails = {});
//! Get a copied network request with swift header
static QNetworkRequest getSwiftNetworkRequest(const QNetworkRequest &request, const QString &userAgentDetails = {});
@@ -161,7 +147,7 @@ namespace BlackMisc
//! Status about network, can be used when an URL fails to resolve issues
//! \remark that can take a moment to complete, as it checks network
static BlackMisc::CStatusMessageList createNetworkReport(const CUrl &url, const QNetworkAccessManager *qam = nullptr);
static BlackMisc::CStatusMessageList createNetworkReport(const QUrl &url, const QNetworkAccessManager *qam = nullptr);
//! Info about network configurations
static QString createNetworkConfigurationReport(const QNetworkConfigurationManager *qcm, const QNetworkAccessManager *qam, const QString &separator = "\n");