diff options
Diffstat (limited to 'platform/default/online_file_source.cpp')
-rw-r--r-- | platform/default/online_file_source.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/platform/default/online_file_source.cpp b/platform/default/online_file_source.cpp index f10e0f8ffb..08011f5ac1 100644 --- a/platform/default/online_file_source.cpp +++ b/platform/default/online_file_source.cpp @@ -320,6 +320,14 @@ void OnlineFileRequest::completed(Response response) { resource.priorModified = response.modified; } + if (response.notModified && resource.priorData) { + // When the priorData field is set, it indicates that we had to revalidate the request and + // that the requestor hasn't gotten data yet. If we get a 304 response, this means that we + // have send the cached data to give the requestor a chance to actually obtain the data. + response.data = std::move(resource.priorData); + response.notModified = false; + } + bool isExpired = false; if (response.expires) { |