diff options
author | Justin Erenkrantz <jerenkrantz@apache.org> | 2007-05-17 16:20:06 +0000 |
---|---|---|
committer | Justin Erenkrantz <jerenkrantz@apache.org> | 2007-05-17 16:20:06 +0000 |
commit | 9b5dff0669d3a5a4709280a938a71a1758bbb8da (patch) | |
tree | e145468c824bf3e42281dab4a26e4e7b386dbeff | |
parent | c1150a199a080d99f58dd964d064acdf068e3cab (diff) | |
download | httpd-9b5dff0669d3a5a4709280a938a71a1758bbb8da.tar.gz |
mod_disk_cache: When renegotiating an already cached Vary'd response, do not
let us later throw away the renegotiated content due to a name mismatch.
We do not need to update the ->name field just before writing the headers as
the computed ->name on open and create is sufficient. Updating ->name here is
essentially a no-op - except in the case of Vary where the key has internally
changed (to account for the Vary prefix), but the original name has not.
However, writing the Vary'd-accounted key means that when we read the cache
next that we will error out and disregard the just renegotiated response and
fetch the content all over again - oops!
(This is largely a case where I think we may have overthought ourselves; hence
the explanation is here in the commit rather than in the file itself.)
* modules/cache/mod_disk_cache.c
(store_headers): The originally opened ->name is sufficient.
* CHANGES: Combined with r538992, note that renegotiation for Vary's seem to
work far better.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@538997 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | modules/cache/mod_disk_cache.c | 2 |
2 files changed, 3 insertions, 2 deletions
@@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) mod_disk_cache: Allow Vary'd responses to be refreshed properly. + [Justin Erenkrantz] + *) mod_cache: Allow caching of requests with query arguments when Cache-Control max-age is explicitly specified. [Justin Erenkrantz] diff --git a/modules/cache/mod_disk_cache.c b/modules/cache/mod_disk_cache.c index cb9047071d..f1a34d51e5 100644 --- a/modules/cache/mod_disk_cache.c +++ b/modules/cache/mod_disk_cache.c @@ -903,8 +903,6 @@ static apr_status_t store_headers(cache_handle_t *h, request_rec *r, cache_info return rv; } - dobj->name = h->cache_obj->key; - disk_info.format = DISK_FORMAT_VERSION; disk_info.date = info->date; disk_info.expire = info->expire; |