]> granicus.if.org Git - apache/commitdiff
Another mod_cache fixlet.
authorSander Striker <striker@apache.org>
Fri, 11 Mar 2005 21:39:45 +0000 (21:39 +0000)
committerSander Striker <striker@apache.org>
Fri, 11 Mar 2005 21:39:45 +0000 (21:39 +0000)
* 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

modules/cache/cache_storage.c
modules/cache/mod_cache.c

index 1aaf3282539116543e76ecb8e581269219cda6b3..f43bbb1fe69820714d783d1fd42b3aaf0ccce10e 100644 (file)
@@ -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);
index 5da2797108c76cc6b0bfc11b91ec3840b0cf4369..4138df72cc68b5b757fa0621f9db29582bd4c33a 100644 (file)
@@ -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 */