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

openSUSE Build Service is sponsored by