diff options
Diffstat (limited to 'kde-frameworks/knewstuff/files/knewstuff-5.90.0-add-conditional-cache-preference.patch')
-rw-r--r-- | kde-frameworks/knewstuff/files/knewstuff-5.90.0-add-conditional-cache-preference.patch | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/kde-frameworks/knewstuff/files/knewstuff-5.90.0-add-conditional-cache-preference.patch b/kde-frameworks/knewstuff/files/knewstuff-5.90.0-add-conditional-cache-preference.patch deleted file mode 100644 index 80a8451ec990..000000000000 --- a/kde-frameworks/knewstuff/files/knewstuff-5.90.0-add-conditional-cache-preference.patch +++ /dev/null @@ -1,61 +0,0 @@ -From e1c6f2bf383876a31cd3e3f9e6edcaa19dc0a7dd Mon Sep 17 00:00:00 2001 -From: Dan Leinir Turthra Jensen <admin@leinir.dk> -Date: Wed, 9 Feb 2022 16:17:58 +0000 -Subject: [PATCH] Add conditional cache preference to http requests - -If we have a cache that's older than 7 days, assume that it's out of -date and actually try again. If it's younger than that, assume that it's -just the same, and prefer our cached version, if we have one. - -The logic here is an attempt at striking a balance between using our cache -to its fullest potential (as in, reducing server-side load and network -roundtrips in general) while also handling the situation where the -information that we are fed about the cache is not entirely correct (such -as the case where we're told there's no expiration date, but the data in -fact does change). 7 days seems a sensible sort of deadline for that, -though we could change that later if we need to. - -This was born out of a discussion on another kns review[1] - -Assume that no cache expiration time will be longer than 7 days, but otherwise prefer the cache -This is mildly hacky, but if we don't do this, we end up with infinite cache expirations in some -cases, which of course isn't really acceptable... See ed62ee20 for a situation where that happened. - -[1] https://invent.kde.org/frameworks/knewstuff/-/merge_requests/166#note_394067 ---- - src/core/jobs/httpworker.cpp | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/core/jobs/httpworker.cpp b/src/core/jobs/httpworker.cpp -index b52161f6..208e1ef0 100644 ---- a/src/core/jobs/httpworker.cpp -+++ b/src/core/jobs/httpworker.cpp -@@ -41,7 +41,6 @@ public: - return nam.get(request); - } - --private: - QNetworkDiskCache cache; - }; - -@@ -101,6 +100,17 @@ static void addUserAgent(QNetworkRequest &request) - agentHeader += QStringLiteral("-%1/%2").arg(QCoreApplication::instance()->applicationName(), QCoreApplication::instance()->applicationVersion()); - } - request.setHeader(QNetworkRequest::UserAgentHeader, agentHeader); -+ -+ // Assume that no cache expiration time will be longer than a week, but otherwise prefer the cache -+ // This is mildly hacky, but if we don't do this, we end up with infinite cache expirations in some -+ // cases, which of course isn't really acceptable... See ed62ee20 for a situation where that happened. -+ QNetworkCacheMetaData cacheMeta{s_httpWorkerNAM->cache.metaData(request.url())}; -+ if (cacheMeta.isValid()) { -+ const QDateTime nextWeek{QDateTime::currentDateTime().addDays(7)}; -+ if (cacheMeta.expirationDate().isValid() && cacheMeta.expirationDate() < nextWeek) { -+ request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); -+ } -+ } - } - - void HTTPWorker::startRequest() --- -GitLab - |