From: Yann Ylavic Date: Wed, 14 May 2014 15:54:38 +0000 (+0000) Subject: mod_proxy_wstunnel: Fix the use of SSL connections with the "wss:" scheme. X-Git-Tag: 2.5.0-alpha~4199 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f063241b1f77ebb4c367f420f7deccc9bdd0abfb;p=apache mod_proxy_wstunnel: Fix the use of SSL connections with the "wss:" scheme. PR55320. Submitted by: Alex Liu Committed by: ylavic git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1594625 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index e010a7d9b0..7a1601222f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) mod_proxy_wstunnel: Fix the use of SSL connections with the "wss:" + scheme. PR55320. [Alex Liu ] + *) core: Add ap_mpm_resume_suspended() API to allow a suspended connection to resume. PR56333 [Artem , Edward Lu ] @@ -16,10 +19,10 @@ Changes with Apache 2.5.0 *) mod_proxy_fcgi: Support iobuffersize parameter. [Jeff Trawick] *) mod_cache: Preserve non-cacheable headers forwarded from an origin 304 - response. PR 55547. [Yann Ylavic] + response. PR 55547. [Yann Ylavic] *) mod_cache: Don't add cached/revalidated entity headers to a 304 response. - PR 55547. [Yann Ylavic] + PR 55547. [Yann Ylavic] *) mod_cache: Retry unconditional request with the full URL (including the query-string) when the origin server's 304 response does not match the diff --git a/modules/proxy/mod_proxy_wstunnel.c b/modules/proxy/mod_proxy_wstunnel.c index a6fbd08efd..fb274fc7f8 100644 --- a/modules/proxy/mod_proxy_wstunnel.c +++ b/modules/proxy/mod_proxy_wstunnel.c @@ -477,9 +477,11 @@ static int proxy_wstunnel_handler(request_rec *r, proxy_worker *worker, conn_rec *c = r->connection; apr_pool_t *p = r->pool; apr_uri_t *uri; + int is_ssl = 0; if (strncasecmp(url, "wss:", 4) == 0) { scheme = "WSS"; + is_ssl = 1; } else if (strncasecmp(url, "ws:", 3) == 0) { scheme = "WS"; @@ -503,7 +505,7 @@ static int proxy_wstunnel_handler(request_rec *r, proxy_worker *worker, return status; } - backend->is_ssl = 0; + backend->is_ssl = is_ssl; backend->close = 0; retry = 0;