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
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]
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.
* 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 ? "#" : "",