From dabe50bcfe20a9c315da9318a9c73e42ca5d3696 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 24 Sep 2017 03:16:58 +0200 Subject: [PATCH] Ref T160, improved / more detailed info for user-agent in requests * renamed to getSwiftNetworkRequest (make clear request is tweaked) * add details to user request --- src/blackcore/application.cpp | 6 ++---- src/blackcore/db/databaseauthentication.cpp | 4 ++-- src/blackmisc/network/networkutils.cpp | 18 +++++++++++++----- src/blackmisc/network/networkutils.h | 9 ++++++--- src/blackmisc/network/url.cpp | 2 +- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/blackcore/application.cpp b/src/blackcore/application.cpp index b32fab825..e8f9baace 100644 --- a/src/blackcore/application.cpp +++ b/src/blackcore/application.cpp @@ -1434,12 +1434,10 @@ namespace BlackCore } Q_ASSERT_X(QThread::currentThread() == m_accessManager->thread(), Q_FUNC_INFO, "Network manager thread mismatch"); - QNetworkRequest copiedRequest(request); // no QObject - CNetworkUtils::ignoreSslVerification(copiedRequest); - CNetworkUtils::setSwiftUserAgent(copiedRequest); + QNetworkRequest copiedRequest = CNetworkUtils::getSwiftNetworkRequest(request, this->getApplicationNameAndVersion()); // If URL is one of the shared URLs, add swift client SSL certificate to request - CNetworkUtils::setSwiftClientSslCertificate(copiedRequest, getGlobalSetup().getSwiftSharedUrls()); + CNetworkUtils::setSwiftClientSslCertificate(copiedRequest, this->getGlobalSetup().getSwiftSharedUrls()); QNetworkReply *reply = requestOrPostMethod(*m_accessManager, copiedRequest); reply->setProperty("started", QVariant(QDateTime::currentMSecsSinceEpoch())); diff --git a/src/blackcore/db/databaseauthentication.cpp b/src/blackcore/db/databaseauthentication.cpp index 0dc62deea..30e0e1d43 100644 --- a/src/blackcore/db/databaseauthentication.cpp +++ b/src/blackcore/db/databaseauthentication.cpp @@ -88,7 +88,7 @@ namespace BlackCore if (sApp->getGlobalSetup().dbDebugFlag()) { CNetworkUtils::addDebugFlag(params); } QString query = params.toString(); - const QNetworkRequest request(CNetworkUtils::getNetworkRequest(url, CNetworkUtils::PostUrlEncoded)); + const QNetworkRequest request(CNetworkUtils::getSwiftNetworkRequest(url, CNetworkUtils::PostUrlEncoded, sApp->getApplicationNameAndVersion())); sApp->postToNetwork(request, CApplication::NoLogRequestId, query.toUtf8(), { this, &CDatabaseAuthenticationService::parseServerResponse}); static const QString rm("Sent request to authentication server '%1'"); msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityInfo, rm.arg(url.toQString()))); @@ -99,7 +99,7 @@ namespace BlackCore { CUrl url(sApp->getGlobalSetup().getDbLoginServiceUrl()); url.setQuery("logoff=true"); - QNetworkRequest request(CNetworkUtils::getNetworkRequest(url)); + QNetworkRequest request(CNetworkUtils::getSwiftNetworkRequest(url)); sApp->getFromNetwork(request, { this, &CDatabaseAuthenticationService::parseServerResponse }); this->m_swiftDbUser.set(CAuthenticatedUser()); } diff --git a/src/blackmisc/network/networkutils.cpp b/src/blackmisc/network/networkutils.cpp index dedb860b7..6587ca715 100644 --- a/src/blackmisc/network/networkutils.cpp +++ b/src/blackmisc/network/networkutils.cpp @@ -225,10 +225,10 @@ namespace BlackMisc request.setSslConfiguration(conf); } - void CNetworkUtils::setSwiftUserAgent(QNetworkRequest &request) + void CNetworkUtils::setSwiftUserAgent(QNetworkRequest &request, const QString &userAgentDetails) { - static const QString userAgent("swift/" + CBuildConfig::getVersionString()); - request.setRawHeader("User-Agent", userAgent.toLatin1()); + static const QString defaultUserAgent("swift/" + CBuildConfig::getVersionString()); + request.setRawHeader("User-Agent", userAgentDetails.isEmpty() ? defaultUserAgent.toLatin1() : QString("swift/" + userAgentDetails).toLatin1()); } //! \cond PRIVATE @@ -279,7 +279,7 @@ namespace BlackMisc qurl.addQueryItem("XDEBUG_SESSION_START", "ECLIPSE_DBGP"); } - QNetworkRequest CNetworkUtils::getNetworkRequest(const CUrl &url, RequestType type) + QNetworkRequest CNetworkUtils::getSwiftNetworkRequest(const CUrl &url, RequestType type, const QString &userAgentDetails) { QNetworkRequest request(url.toQUrl()); switch (type) @@ -291,10 +291,18 @@ namespace BlackMisc break; } CNetworkUtils::ignoreSslVerification(request); - CNetworkUtils::setSwiftUserAgent(request); + CNetworkUtils::setSwiftUserAgent(request, userAgentDetails); return request; } + QNetworkRequest CNetworkUtils::getSwiftNetworkRequest(const QNetworkRequest &request, const QString &userAgentDetails) + { + QNetworkRequest req(request); // copy + CNetworkUtils::ignoreSslVerification(req); + CNetworkUtils::setSwiftUserAgent(req, userAgentDetails); + return req; + } + qint64 CNetworkUtils::lastModifiedMsSinceEpoch(QNetworkReply *nwReply) { Q_ASSERT(nwReply); diff --git a/src/blackmisc/network/networkutils.h b/src/blackmisc/network/networkutils.h index c4bf87a90..e96ea7457 100644 --- a/src/blackmisc/network/networkutils.h +++ b/src/blackmisc/network/networkutils.h @@ -106,7 +106,7 @@ namespace BlackMisc static void ignoreSslVerification(QNetworkRequest &request); //! Set user agent for request - static void setSwiftUserAgent(QNetworkRequest &request); + static void setSwiftUserAgent(QNetworkRequest &request, const QString &userAgentDetails = {}); //! Set swift client SSL certificate static void setSwiftClientSslCertificate(QNetworkRequest &request); @@ -117,8 +117,11 @@ namespace BlackMisc //! Add debug flag static void addDebugFlag(QUrlQuery &qurl); - //! Our tweaked network request - static QNetworkRequest getNetworkRequest(const CUrl &url, RequestType type = Get); + //! Our tweaked network request with swift header + static QNetworkRequest getSwiftNetworkRequest(const CUrl &url, RequestType type = Get, const QString &userAgentDetails = {}); + + //! Get a copied network request with swift header + static QNetworkRequest getSwiftNetworkRequest(const QNetworkRequest &request, const QString &userAgentDetails = {}); //! Last modified from reply static qint64 lastModifiedMsSinceEpoch(QNetworkReply *nwReply); diff --git a/src/blackmisc/network/url.cpp b/src/blackmisc/network/url.cpp index c87a34383..67a22e143 100644 --- a/src/blackmisc/network/url.cpp +++ b/src/blackmisc/network/url.cpp @@ -145,7 +145,7 @@ namespace BlackMisc QNetworkRequest CUrl::toNetworkRequest() const { - return CNetworkUtils::getNetworkRequest(*this); + return CNetworkUtils::getSwiftNetworkRequest(*this); } CUrl CUrl::withAppendedPath(const QString &path) const