Commit 55dfed10 authored by Ruediger Pluem's avatar Ruediger Pluem
Browse files

Merge r476625 from trunk:

* Use the query string stored in r->parsed_uri.query instead of r->args
  as r->args could have been changed (e.g. via mod_rewrite) after the quick
  handler hook. This causes resources to be stored under a key, where they
  cannot be fetched again in the quick handler.

PR: 40805

Submitted by: rpluem
Reviewed by: rpluem, jim, sctemme


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@535903 13f79535-47bb-0310-9956-ffa450edef68
parent 0e5f221a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
                                                        -*- coding: utf-8 -*-
Changes with Apache 2.2.5
  *) mod_cache: Correctly cache objects whose URL query string has been
     modified by mod_rewrite. PR 40805. [Ruediger Pluem]
  *) HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone.  Only
     processing of error responses (4xx, 5xx) will be altered.  PR 39245.
     [Jeff Trawick, Bart van der Schans <schans hippo.nl>]
+1 −1
Original line number Diff line number Diff line
@@ -427,7 +427,7 @@ apr_status_t cache_generate_key_default(request_rec *r, apr_pool_t* p,

    /* Key format is a URI */
    *key = apr_pstrcat(p, scheme, "://", hostname, port_str,
                       r->parsed_uri.path, "?", r->args, NULL);
                       r->parsed_uri.path, "?", r->parsed_uri.query, NULL);

    return APR_SUCCESS;
}
+1 −1
Original line number Diff line number Diff line
@@ -433,7 +433,7 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in)
        /* if a Expires header is in the past, don't cache it */
        reason = "Expires header already expired, not cacheable";
    }
    else if (r->args && exps == NULL) {
    else if (r->parsed_uri.query && exps == NULL) {
        /* if query string present but no expiration time, don't cache it
         * (RFC 2616/13.9)
         */