Author: pquerna
Date: Mon Jun 6 09:53:15 2005
New Revision: 180341
URL: http://svn.apache.org/viewcvs?rev=180341&view=rev
Log:
* mod_cache.c: When 'Vary: *' is sent, do not cache, since revalidation is always required.
PR: 16125
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/modules/cache/mod_cache.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/CHANGES?rev=180341&r1=180340&r2=180341&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES (original)
+++ httpd/httpd/trunk/CHANGES Mon Jun 6 09:53:15 2005
@@ -2,6 +2,9 @@
[Remove entries to the current 2.0 section below, when backported]
+ *) mod_cache: Fix 'Vary: *' behavior to be RFC compliant. PR 16125.
+ [Paul Querna]
+
*) mod_cache: Rename 'generate_name' to 'ap_cache_generate_name'.
[Paul Querna]
Modified: httpd/httpd/trunk/modules/cache/mod_cache.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/cache/mod_cache.c?rev=180341&r1=180340&r2=180341&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_cache.c (original)
+++ httpd/httpd/trunk/modules/cache/mod_cache.c Mon Jun 6 09:53:15 2005
@@ -236,7 +236,7 @@
cache_request_rec *cache;
cache_server_conf *conf;
char *url = r->unparsed_uri;
- const char *cc_in, *cc_out, *cl;
+ const char *cc_in, *cc_out, *cl, *vary_out;
const char *exps, *lastmods, *dates, *etag;
apr_time_t exp, date, lastmod, now;
apr_off_t size;
@@ -251,7 +251,9 @@
* unless CacheStoreNoStore is active.
*/
cc_in = apr_table_get(r->headers_in, "Cache-Control");
+ vary_out = apr_table_get(r->headers_out, "Vary");
if (r->no_cache ||
+ ap_cache_liststr(NULL, vary_out, "*", NULL) ||
(!conf->store_nostore &&
ap_cache_liststr(NULL, cc_in, "no-store", NULL))) {
ap_remove_output_filter(f);
|