From 00cd3798d1d2ecf8fdff6274a6ca7f3d004f63f9 Mon Sep 17 00:00:00 2001 From: Ruediger Pluem Date: Sun, 2 Mar 2008 12:35:33 +0000 Subject: [PATCH] * 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 --- CHANGES | 3 +++ modules/cache/cache_util.c | 8 ++++++++ 2 files changed, 11 insertions(+) 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); } -- 2.40.0