From: Colm MacCarthaigh Date: Mon, 23 Jan 2006 19:26:00 +0000 (+0000) Subject: Merge r180341 from trunk: X-Git-Tag: 2.0.56~93 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96f646f7623af624e0d775e49091364f3f5359df;p=thirdparty%2Fapache%2Fhttpd.git Merge r180341 from trunk: * Fix handling of "Vary: *" in mod_cache. Submitted by: pquerna git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@371633 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index cafcf02c48e..9a932f1dd0b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.0.56 + *) mod_cache: Fix 'Vary: *' behavior to be RFC compliant. PR 16125. + [Paul Querna] + *) Remove the base href tag from proxy_ftp, as it breaks relative links for clients not using an Authorization header. [Graham Leggett, Jon Snow ] diff --git a/STATUS b/STATUS index 768596953a8..b3b657f25b2 100644 --- a/STATUS +++ b/STATUS @@ -133,13 +133,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK: http://svn.apache.org/viewcvs?view=rev&rev=154319 +1: stoddard, striker, wrowe (as corrected in subsequent patches) - *) mod_cache: Fix handling of 'Vary: *". PR 16125. - Trunk: r180341 - 2.0.x Patch: http://issues.apache.org/bugzilla/attachment.cgi?id=15297 - +1: pquerna, jerenkrantz, colm - jerenkrantz notes: I do prefer the version from r190033 (own if check). - - *) mod_mime_magic: Handle CRLF-format^H^H^H^H^H^H^H magic files with any trailing whitespace so that it works with the default installation on Windows. diff --git a/modules/experimental/mod_cache.c b/modules/experimental/mod_cache.c index e92f4d979cc..165a0f4275a 100644 --- a/modules/experimental/mod_cache.c +++ b/modules/experimental/mod_cache.c @@ -256,7 +256,7 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in) 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; @@ -267,7 +267,9 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in) /* check first whether running this filter has any point or not */ /* If the user has Cache-Control: no-store from RFC 2616, don't store! */ cc_in = apr_table_get(r->headers_in, "Cache-Control"); - if (r->no_cache || ap_cache_liststr(NULL, cc_in, "no-store", NULL)) { + vary_out = apr_table_get(r->headers_out, "Vary"); + if (r->no_cache || ap_cache_liststr(NULL, cc_in, "no-store", NULL) || + ap_cache_liststr(NULL, vary_out, "*", NULL)) { ap_remove_output_filter(f); return ap_pass_brigade(f->next, in); }