summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-02-27 15:16:35 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-02-27 16:54:13 +0200
commit7fd2882442ac52661c263c4e5a3a634a4fed5b93 (patch)
treec456ee4ed4695ba9e1b4d8a25801e076446770a9
parent1374f94795141e7c67f486ee7dbb3ee85d028513 (diff)
downloadqtlocation-mapboxgl-7fd2882442ac52661c263c4e5a3a634a4fed5b93.tar.gz
[core][offline] Offline download does not hang on 404 error
-rw-r--r--platform/default/src/mbgl/storage/offline_download.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/platform/default/src/mbgl/storage/offline_download.cpp b/platform/default/src/mbgl/storage/offline_download.cpp
index 89fd100aa7..e1413b61b0 100644
--- a/platform/default/src/mbgl/storage/offline_download.cpp
+++ b/platform/default/src/mbgl/storage/offline_download.cpp
@@ -484,6 +484,13 @@ void OfflineDownload::ensureResource(Resource&& resource,
*fileRequestsIt = onlineFileSource.request(resource, [=](Response onlineResponse) {
if (onlineResponse.error) {
observer->responseError(*onlineResponse.error);
+ if (onlineResponse.error->reason == Response::Error::Reason::NotFound) {
+ // On error 404, we skip this request and go further.
+ requests.erase(fileRequestsIt);
+ assert(status.requiredResourceCount > 0);
+ status.requiredResourceCount--;
+ continueDownload();
+ }
return;
}