Commit 9d106bab authored by Graham Leggett's avatar Graham Leggett
Browse files

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.

+1: minfrin, rpluem, jim


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@463496 13f79535-47bb-0310-9956-ffa450edef68
parent 2f2ac0cb
Loading
Loading
Loading
Loading
+5 −0
Changes for CHANGES: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
                                                        -*- coding: utf-8 -*-
Changes with Apache 2.2.4
  *) 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>]
  *) core: Deal with the widespread use of apr_status_t return values
     as HTTP status codes, as documented in PR#31759 (a bug shared by
     the default handler, mod_cgi, mod_cgid, mod_proxy, and probably
+5 −0
Changes for modules/cache/mod_cache.c: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -426,6 +426,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)