Commit 242d5fc7 authored by Paul J. Reder's avatar Paul J. Reder
Browse files

Committing the following that was voted in:

When an expires or cache-control header are sent, the RFC does allow us to cache normally non-cacheable response statuses.
Submitted by: Alex Polvi <alex polvi.net>



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@727599 13f79535-47bb-0310-9956-ffa450edef68
parent fbbdd681
Loading
Loading
Loading
Loading
+3 −0
Changes for CHANGES: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
                                                         -*- coding: utf-8 -*-
Changes with Apache 2.2.12

  *) mod_cache: When an explicit Expires or Cache-Control header is set, cache
     normally non-cacheable response statuses. PR 46346.
     [Alex Polvi <alex polvi.net>]

Changes with Apache 2.2.11

+0 −10
Changes for STATUS: 0 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -89,16 +89,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
  [ New proposals should be added at the end of the list ]


 * mod_cache: When an expires or cache-control header are sent, the RFC does
   allow us to cache normally non-cacheable response statuses.
   PR 46346.
   Trunk version of patch:
      http://svn.apache.org/viewvc?rev=724093&view=rev
   Backport version for 2.2.x of patch:
      Trunk version of patch works
   +1: rpluem, covener, rederpj

 * mod_cache: Correctly save Content-Encoding of cachable entity. PR 46401
   [Dan Poirier <poirier pobox.com>]
   Trunk version of patch (committed by rpluem):
+21 −0
Changes for modules/cache/mod_cache.c: 21 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -440,8 +440,29 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in)
         * We include 304 Not Modified here too as this is the origin server
         * telling us to serve the cached copy.
         */
        if (exps != NULL || cc_out != NULL) {
            /* We are also allowed to cache any response given that it has a 
             * valid Expires or Cache Control header. If we find a either of 
             * those here,  we pass request through the rest of the tests. From 
             * the RFC:
             *
             * A response received with any other status code (e.g. status 
             * codes 302 and 307) MUST NOT be returned in a reply to a 
             * subsequent request unless there are cache-control directives or 
             * another header(s) that explicitly allow it. For example, these 
             * include the following: an Expires header (section 14.21); a 
             * "max-age", "s-maxage",  "must-revalidate", "proxy-revalidate", 
             * "public" or "private" cache-control directive (section 14.9).
             */
        }
        else {
            reason = apr_psprintf(p, "Response status %d", r->status);
        }
    }

    if (reason) {
        /* noop */
    }
    else if (exps != NULL && exp == APR_DATE_BAD) {
        /* if a broken Expires header is present, don't cache it */
        reason = apr_pstrcat(p, "Broken expires header: ", exps, NULL);