summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Erenkrantz <jerenkrantz@apache.org>2007-05-17 16:20:06 +0000
committerJustin Erenkrantz <jerenkrantz@apache.org>2007-05-17 16:20:06 +0000
commit9b5dff0669d3a5a4709280a938a71a1758bbb8da (patch)
treee145468c824bf3e42281dab4a26e4e7b386dbeff
parentc1150a199a080d99f58dd964d064acdf068e3cab (diff)
downloadhttpd-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--CHANGES3
-rw-r--r--modules/cache/mod_disk_cache.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 3e07455b78..7835948d09 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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;