From 7e1c86e1f67033b9e34a217c5f438db49c104e07 Mon Sep 17 00:00:00 2001 From: Gary Buhrmaster Date: Thu, 20 Feb 2014 00:24:23 +0000 Subject: [PATCH] Request AlwaysNetwork if m_reload is set for the request If m_reload is true, request that Qt actually performs similiarly to a browser reload (bypass and reload any cache). --- .../libs/libmythbase/mythdownloadmanager.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/mythtv/libs/libmythbase/mythdownloadmanager.cpp b/mythtv/libs/libmythbase/mythdownloadmanager.cpp index 7c7eb9c52a7..4b87280650e 100644 --- a/mythtv/libs/libmythbase/mythdownloadmanager.cpp +++ b/mythtv/libs/libmythbase/mythdownloadmanager.cpp @@ -697,7 +697,12 @@ void MythDownloadManager::downloadQNetworkRequest(MythDownloadInfo *dlInfo) else request.setUrl(qurl); - if (!dlInfo->m_reload) + if (dlInfo->m_reload) + { + request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, + QNetworkRequest::AlwaysNetwork); + } + else { // Prefer the in-cache item if one exists and it is less than 5 minutes // old and it will not expire in the next 10 seconds @@ -1108,9 +1113,18 @@ void MythDownloadManager::downloadFinished(MythDownloadInfo *dlInfo) dlInfo->m_bytesTotal = 0; QNetworkRequest request(dlInfo->m_redirectedTo); - if (dlInfo->m_preferCache) + + if (dlInfo->m_reload) + { + request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, + QNetworkRequest::AlwaysNetwork); + } + else if (dlInfo->m_preferCache) + { request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); + } + request.setRawHeader("User-Agent", "MythDownloadManager v" MYTH_BINARY_VERSION);