summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Striker <striker@apache.org>2005-03-11 21:39:45 +0000
committerSander Striker <striker@apache.org>2005-03-11 21:39:45 +0000
commit97851ed8005a060022dbfbbfc37edd501b8544f5 (patch)
treec010b544ccec07970b3dd38194e13ad554763604
parente1148fae727159315b767b02366ec9cef6328480 (diff)
downloadhttpd-97851ed8005a060022dbfbbfc37edd501b8544f5.tar.gz
Another mod_cache fixlet.
* modules/cache/mod_cache.c (cache_url_handler): Add more debug output. Restore original request headers when CACHE_SAVE filter isn't added to fix up after the request. * modules/cache/cache_storage.c (cache_select_url): Add more debug output. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@157162 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--modules/cache/cache_storage.c4
-rw-r--r--modules/cache/mod_cache.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/modules/cache/cache_storage.c b/modules/cache/cache_storage.c
index 1aaf328253..f43bbb1fe6 100644
--- a/modules/cache/cache_storage.c
+++ b/modules/cache/cache_storage.c
@@ -255,6 +255,10 @@ int cache_select_url(request_rec *r, char *url)
if (!fresh) {
const char *etag, *lastmod;
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r->server,
+ "Cached response for %s isn't fresh. Adding/replacing "
+ "conditional request headers.", r->uri);
+
/* Make response into a conditional */
cache->stale_headers = apr_table_copy(r->pool,
r->headers_in);
diff --git a/modules/cache/mod_cache.c b/modules/cache/mod_cache.c
index 5da2797108..4138df72cc 100644
--- a/modules/cache/mod_cache.c
+++ b/modules/cache/mod_cache.c
@@ -117,10 +117,19 @@ static int cache_url_handler(request_rec *r, int lookup)
if (rv != OK) {
if (rv == DECLINED) {
if (!lookup) {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r->server,
+ "Adding CACHE_SAVE filter.");
+
/* add cache_save filter to cache this request */
ap_add_output_filter_handle(cache_save_filter_handle, NULL, r,
r->connection);
}
+ else if (cache->stale_headers) {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r->server,
+ "Restoring request headers.");
+
+ r->headers_in = cache->stale_headers;
+ }
}
else {
/* error */