From: Eric Covener Date: Sat, 1 Nov 2014 17:57:47 +0000 (+0000) Subject: Merge r1634237 from trunk: X-Git-Tag: 2.4.11~201 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=63d78448caf501c837fcddd924e347b809f65250;p=thirdparty%2Fapache%2Fhttpd.git Merge r1634237 from trunk: fix another case of 304 response sent to an unconditional request Submitted By: covener Reviewed By: covener, jim, ylavic git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1636001 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 85cd4d5bee2..4110e57ed5a 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.4.11 + *) mod_cache: Avoid a 304 response to an unconditional requst when an AH00752 + CacheLock error occurs during cache revalidation. [Eric Covener] + *) mod_ssl: Move OCSP stapling information from a per-certificate store to a per-server hash. PR 54357, PR 56919. [Alex Bligh , Yann Ylavic, Kaspar Brand] diff --git a/STATUS b/STATUS index bbdfed6b689..9368864c017 100644 --- a/STATUS +++ b/STATUS @@ -102,12 +102,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_cache: Restore original request headers when skipping updating the cache due to - a busy/broken CacheLock. Can result in a 304 to an uncoditional request. - trunk patch: http://svn.apache.org/r1634237 - 2.4.x patch: trunk works - +1 covener, jim, ylavic - * mod_proxy_connect: EBCDIC fix for ProxyRemote to HTTPS. PR57092 trunk patch: http://svn.apache.org/r1634425 2.4.x patch: trunk works diff --git a/modules/cache/mod_cache.c b/modules/cache/mod_cache.c index 1a47f021b85..0c3b5f97027 100644 --- a/modules/cache/mod_cache.c +++ b/modules/cache/mod_cache.c @@ -234,6 +234,11 @@ static int cache_quick_handler(request_rec *r, int lookup) ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, APLOGNO(00752) "Cache locked for url, not caching " "response: %s", r->uri); + /* cache_select() may have added conditional headers */ + if (cache->stale_headers) { + r->headers_in = cache->stale_headers; + } + } } else {