mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
mod_proxy: Play/restore the TLS-SNI on new backend connections which
had to be issued because the remote closed the previous/reusable one during idle (keep-alive) time. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729826 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -1,6 +1,10 @@
|
|||||||
-*- coding: utf-8 -*-
|
-*- coding: utf-8 -*-
|
||||||
Changes with Apache 2.5.0
|
Changes with Apache 2.5.0
|
||||||
|
|
||||||
|
*) mod_proxy: Play/restore the TLS-SNI on new backend connections which
|
||||||
|
had to be issued because the remote closed the previous/reusable one
|
||||||
|
during idle (keep-alive) time. [Yann Ylavic]
|
||||||
|
|
||||||
*) mod_proxy_http2: new experimental http2 proxy module for h2: and h2c: proxy
|
*) mod_proxy_http2: new experimental http2 proxy module for h2: and h2c: proxy
|
||||||
urls. Uses, so far, one connection per request, reuses connections.
|
urls. Uses, so far, one connection per request, reuses connections.
|
||||||
|
|
||||||
|
@@ -2717,12 +2717,18 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
|
|||||||
|
|
||||||
if (conn->sock) {
|
if (conn->sock) {
|
||||||
if (!(connected = ap_proxy_is_socket_connected(conn->sock))) {
|
if (!(connected = ap_proxy_is_socket_connected(conn->sock))) {
|
||||||
/* FIXME: this loses conn->ssl_hostname and it will not be
|
/* This clears conn->scpool (and associated data), so backup and
|
||||||
* restablished before the SSL connection is made -> no SNI! */
|
* restore any ssl_hostname for this connection set earlier by
|
||||||
|
* ap_proxy_determine_connection().
|
||||||
|
*/
|
||||||
|
const char *ssl_hostname = conn->ssl_hostname;
|
||||||
|
|
||||||
socket_cleanup(conn);
|
socket_cleanup(conn);
|
||||||
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00951)
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00951)
|
||||||
"%s: backend socket is disconnected.",
|
"%s: backend socket is disconnected.",
|
||||||
proxy_function);
|
proxy_function);
|
||||||
|
|
||||||
|
conn->ssl_hostname = apr_pstrdup(conn->scpool, ssl_hostname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while ((backend_addr || conn->uds_path) && !connected) {
|
while ((backend_addr || conn->uds_path) && !connected) {
|
||||||
|
Reference in New Issue
Block a user