]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Don't cache requests with a expires date in the past; otherwise mod_cache will
authorGraham Leggett <minfrin@apache.org>
Tue, 26 Sep 2006 14:12:36 +0000 (14:12 +0000)
committerGraham Leggett <minfrin@apache.org>
Tue, 26 Sep 2006 14:12:36 +0000 (14:12 +0000)
always try to cache the URL. This bug might lead to numerous rename() errors
on win32 if the URL was previously cached.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@450055 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/cache/mod_cache.c

diff --git a/CHANGES b/CHANGES
index 192ea62c2bc2e7a189a326357fb76f5488d23356..caf9d2477678cd85aee999303b292ecd6cba7306 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,11 @@
 Changes with Apache 2.3.0
   [Remove entries to the current 2.0 and 2.2 section below, when backported]
 
+  *) mod_cache: Don't cache requests with a expires date in the past;
+     otherwise mod_cache will always try to cache the URL. This bug
+     might lead to numerous rename() errors on win32 if the URL was
+     previously cached. [Davi Arnaut <davi haxent.com.br>]
+
   *) mod_disk_cache: Make sure that only positive integers are accepted
      for the CacheMaxFileSize and CacheMinFileSize parameters in the
      config file. PR39380 [Niklas Edmundsson <nikke acc.umu.se>]
index 2fc50733f0050ecb117ae29c51f8368758d09d63..3b34ee338ac98fe408c3bae43cf5116138db53e1 100644 (file)
@@ -445,6 +445,11 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in)
         /* if a broken Expires header is present, don't cache it */
         reason = apr_pstrcat(p, "Broken expires header: ", exps, NULL);
     }
+    else if (exp != APR_DATE_BAD && exp < r->request_time)
+    {
+        /* if a Expires header is in the past, don't cache it */
+        reason = "Expires header already expired, not cacheable";
+    }
     else if (r->args && exps == NULL) {
         /* if query string present but no expiration time, don't cache it
          * (RFC 2616/13.9)