From: Eric Covener Date: Fri, 14 Mar 2008 17:18:06 +0000 (+0000) Subject: backport r632749 from trunk: X-Git-Tag: 2.2.9~290 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc1d3034f581f8eb1030fd64af04f808292b9c37;p=thirdparty%2Fapache%2Fhttpd.git backport r632749 from trunk: mod_cache: Revalidate cache entities which have Cache-Control: no-cache set in their response headers. PR 44511 [Ruediger Pluem] git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@637167 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 205562c2a49..4d77b15bf34 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.9 + + *) 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. diff --git a/STATUS b/STATUS index 59ff3ef0447..0d535c6afc4 100644 --- a/STATUS +++ b/STATUS @@ -86,14 +86,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_cache: Revalidate cache entities which have Cache-Control: no-cache - set in their response headers. PR44511 - Trunk version of patch: - http://svn.apache.org/viewcvs.cgi?rev=632749&view=rev - Backport version for 2.2.x of patch: - Trunk version of patch works - +1: rpluem, jim, covener - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/modules/cache/cache_util.c b/modules/cache/cache_util.c index 75d35bd64a9..78770ffdcde 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); }