From: Ruediger Pluem Date: Sun, 2 Mar 2008 12:35:33 +0000 (+0000) Subject: * If the cached entity contained Cache-Control: no-cache, treat it as stale X-Git-Tag: 2.3.0~914 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=00cd3798d1d2ecf8fdff6274a6ca7f3d004f63f9;p=apache * If the cached entity contained Cache-Control: no-cache, treat it as stale causing revalidation. PR: 44511 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@632749 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 75b6846073..02f1b41ddd 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [ When backported to 2.2.x, remove entry from this file ] + *) mod_cache: Revalidate cache entities which have Cache-Control: no-cache + set in their response headers. PR 44511 [Ruediger Pluem] + *) mod_rewrite: Check all files used by DBM maps for freshness, mod_rewrite didn't pick up on updated sdbm maps due to this. PR41190 [Niklas Edmundsson] diff --git a/modules/cache/cache_util.c b/modules/cache/cache_util.c index fdcba41a3e..ec2d749b6c 100644 --- a/modules/cache/cache_util.c +++ b/modules/cache/cache_util.c @@ -235,6 +235,14 @@ CACHE_DECLARE(int) ap_cache_check_freshness(cache_handle_t *h, cc_cresp = apr_table_get(h->resp_hdrs, "Cache-Control"); expstr = apr_table_get(h->resp_hdrs, "Expires"); + if (ap_cache_liststr(NULL, cc_cresp, "no-cache", NULL)) { + /* + * The cached entity contained Cache-Control: no-cache, so treat as + * stale causing revalidation + */ + return 0; + } + if ((agestr = apr_table_get(h->resp_hdrs, "Age"))) { age_c = apr_atoi64(agestr); }