]> granicus.if.org Git - apache/commitdiff
Merge r1665215, r1665218 from trunk:
authorJim Jagielski <jim@apache.org>
Fri, 27 Mar 2015 12:21:56 +0000 (12:21 +0000)
committerJim Jagielski <jim@apache.org>
Fri, 27 Mar 2015 12:21:56 +0000 (12:21 +0000)
mod_proxy: use the original (non absolute) form of the request-line's URI
for requests embedded in CONNECT payloads used to connect SSL backends via
a ProxyRemote forward-proxy. PR 55892.

Submitted by: Hendrik Harms <hendrik.harms gmail com>
Reviewed  by: wrowe, ylavic
Committed by: ylavic

mod_proxy: follow up to r1665215: CHANGES entry.
Submitted by: ylavic
Reviewed/backported by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1669556 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/proxy/proxy_util.c

diff --git a/CHANGES b/CHANGES
index 360aaad41061aa5eb22b700df4099d4bd3609bfd..1a1f34b5b1162fde68ba4da06e78e159d3d0482b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -12,6 +12,11 @@ Changes with Apache 2.4.13
      calls r:wsupgrade() can cause a child process crash. 
      [Edward Lu <Chaosed0 gmail.com>]
 
+  *) mod_proxy: use the original (non absolute) form of the request-line's URI
+     for requests embedded in CONNECT payloads used to connect SSL backends via
+     a ProxyRemote forward-proxy.  PR 55892.  [Hendrik Harms <hendrik.harms
+     gmail com>, William Rowe, Yann Ylavic]
+
   *) mod_rewrite: Improve relative substitutions in per-directory/htaccess
      context for directories found by mod_userdir and mod_alias.  These no
      longer require RewriteBase to be specified. [Eric Covener]
diff --git a/STATUS b/STATUS
index 778c8b544964e61e0e01af026cb63f8fb9ef6c54..610af2d0ced6b929c5c3b6f4c5fe2e00ef2b97e1 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -141,7 +141,7 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
                   http://svn.apache.org/r1641381
      2.4.x patch: trunk works
      +1: jkaluza, ylavic
-
+     -1: jim (does not cleanly apply)
 
    * mod_buffer: Forward flushed input data immediately and avoid (unlikely)
                  access to freed memory.
index 83131c12883add377fc9641005e3116b072b737f..e47a5a0f36ebd0e55b7638fe1ae88784a5b9cfd1 100644 (file)
@@ -2197,8 +2197,12 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
      * The scheme handler decides if this is permanent or
      * short living pool.
      */
-    /* are we connecting directly, or via a proxy? */
-    if (!proxyname) {
+    /* Unless we are connecting the backend via a (forward Proxy)Remote, we
+     * have to use the original form of the URI (non absolute), but this is
+     * also the case via a remote proxy using the CONNECT method since the
+     * original request (and URI) is to be embedded in the body.
+     */
+    if (!proxyname || conn->is_ssl) {
         *url = apr_pstrcat(p, uri->path, uri->query ? "?" : "",
                            uri->query ? uri->query : "",
                            uri->fragment ? "#" : "",