diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-03-17 15:36:46 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-03-17 15:36:46 (GMT) |
commit | b8333bb969a2ac6b3917818bb95469f5f4d8dcb5 (patch) | |
tree | 9f5daa9587c980d045b0fa89265076ba6f26fa81 /src | |
parent | 64ad0c327c365713e320f981d99cdd255912b4d7 (diff) | |
parent | 268394b854766855c7ce5697bbc079a6974ad866 (diff) | |
download | Qt-b8333bb969a2ac6b3917818bb95469f5f4d8dcb5.zip Qt-b8333bb969a2ac6b3917818bb95469f5f4d8dcb5.tar.gz Qt-b8333bb969a2ac6b3917818bb95469f5f4d8dcb5.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
Fix accidental population of the disk cache with partial content
Fix disk cache interaction for range retrieval HTTP requests.
Diffstat (limited to 'src')
-rw-r--r-- | src/network/access/qnetworkaccesshttpbackend.cpp | 5 | ||||
-rw-r--r-- | src/network/access/qnetworkreplyimpl.cpp | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp index 4189743..108ac68 100644 --- a/src/network/access/qnetworkaccesshttpbackend.cpp +++ b/src/network/access/qnetworkaccesshttpbackend.cpp @@ -360,6 +360,11 @@ void QNetworkAccessHttpBackend::validateCache(QHttpNetworkRequest &httpRequest, return; } + // The disk cache API does not currently support partial content retrieval. + // That is why we don't use the disk cache for any such requests. + if (request().hasRawHeader("Range")) + return; + QAbstractNetworkCache *nc = networkCache(); if (!nc) return; // no local cache diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index 343f344..894df79 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -505,6 +505,13 @@ void QNetworkReplyImplPrivate::initCacheSaveDevice() { Q_Q(QNetworkReplyImpl); + // The disk cache does not support partial content, so don't even try to + // save any such content into the cache. + if (q->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 206) { + cacheEnabled = false; + return; + } + // save the meta data QNetworkCacheMetaData metaData; metaData.setUrl(url); |