Commit 1f9f7288 authored by Paul Querna's avatar Paul Querna
Browse files

* mod_cache.c: When 'Vary: *' is sent, do not cache, since revalidation is always required.

PR: 16125


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@180341 13f79535-47bb-0310-9956-ffa450edef68
parent 08ab5e7f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@ Changes with Apache 2.1.5
  [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]
+3 −1
Original line number Diff line number Diff line
@@ -236,7 +236,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;
@@ -251,7 +251,9 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in)
     * 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);