File 0001-Include-a-user-agent-on-KNS-requests.patch of Package knewstuff.openSUSE_Backports_SLE-15-SP3_Update
From da018a972d974871a84c8b88eefaea83578f53fd Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org>
Date: Fri, 24 Sep 2021 14:31:05 +0200
Subject: [PATCH] Include a user agent on KNS requests
(cherry picked from commit f687c5abd0c5e9bd5a6688b6d9d50f2536b7d33d)
---
src/core/jobs/httpworker.cpp | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/core/jobs/httpworker.cpp b/src/core/jobs/httpworker.cpp
index 19db1389..d7897343 100644
--- a/src/core/jobs/httpworker.cpp
+++ b/src/core/jobs/httpworker.cpp
@@ -18,7 +18,9 @@
#include "httpworker.h"
#include "knewstuffcore_debug.h"
+#include "knewstuffcore_version.h"
+#include <QCoreApplication>
#include <QFile>
#include <QMutex>
#include <QMutexLocker>
@@ -102,6 +104,15 @@ void HTTPWorker::setUrl(const QUrl& url)
d->source = url;
}
+static void addUserAgent(QNetworkRequest &request)
+{
+ QString agentHeader = QStringLiteral("KNewStuff/%1").arg(QLatin1String(KNEWSTUFFCORE_VERSION_STRING));
+ if (QCoreApplication::instance()) {
+ agentHeader += QStringLiteral("-%1/%2").arg(QCoreApplication::instance()->applicationName(), QCoreApplication::instance()->applicationVersion());
+ }
+ request.setHeader(QNetworkRequest::UserAgentHeader, agentHeader);
+}
+
void HTTPWorker::startRequest()
{
if(d->reply) {
@@ -110,6 +121,7 @@ void HTTPWorker::startRequest()
}
QNetworkRequest request(d->source);
+ addUserAgent(request);
d->reply = s_httpWorkerNAM->get(request);
connect(d->reply, &QNetworkReply::readyRead, this, &HTTPWorker::handleReadyRead);
connect(d->reply, &QNetworkReply::finished, this, &HTTPWorker::handleFinished);
@@ -149,6 +161,7 @@ void HTTPWorker::handleFinished()
qCDebug(KNEWSTUFFCORE) << d->reply->url().toDisplayString() << "was redirected to" << d->redirectUrl.toDisplayString() << fromCache << d->reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
d->reply->deleteLater();
QNetworkRequest request(d->redirectUrl);
+ addUserAgent(request);
d->reply = s_httpWorkerNAM->get(request);
connect(d->reply, &QNetworkReply::readyRead, this, &HTTPWorker::handleReadyRead);
connect(d->reply, &QNetworkReply::finished, this, &HTTPWorker::handleFinished);
--
2.33.0