From c39b93274c2a4f3bb1588afd1ea0663eeab5dcab Mon Sep 17 00:00:00 2001 From: Ruediger Pluem Date: Sun, 2 Apr 2006 19:25:34 +0000 Subject: [PATCH] Merge r379237 from trunk: * Disable persistent connections for SSL backends again as we do not handle them correctly, because we recreate backend->connection for each request and thus try to initialize an already existing SSL connection. Noticed by: jorton Submitted by: rpluem Reviewed by: rpluem, trawick, jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@390885 13f79535-47bb-0310-9956-ffa450edef68 --- STATUS | 10 ---------- modules/proxy/mod_proxy_http.c | 10 +++++++++- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/STATUS b/STATUS index 0ea1717c0aa..16108f02f24 100644 --- a/STATUS +++ b/STATUS @@ -74,16 +74,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_proxy_http: Disable persistent connections for SSL backends as we do - not handle them correctly, because we recreate backend->connection for - each request and thus try to initialize an already existing SSL - connection. - Trunk version of patch: - http://svn.apache.org/viewcvs?rev=379237&view=rev - Backport version for 2.2.x of patch: - Trunk version of patch works - +1 rpluem, trawick, jim - PATCHES PROPOSED TO BACKPORT FROM TRUNK: diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c index 4d59be05ed5..9d439a61ee9 100644 --- a/modules/proxy/mod_proxy_http.c +++ b/modules/proxy/mod_proxy_http.c @@ -987,7 +987,7 @@ skip_body: * otherwise sent Connection: Keep-Alive. */ if (!force10) { - if (p_conn->close) { + if (p_conn->close || p_conn->close_on_recycle) { buf = apr_pstrdup(p, "Connection: close" CRLF); } else { @@ -1672,6 +1672,14 @@ static int proxy_http_handler(request_rec *r, proxy_worker *worker, backend->is_ssl = is_ssl; + /* + * TODO: Currently we cannot handle persistent SSL backend connections, + * because we recreate backend->connection for each request and thus + * try to initialize an already existing SSL connection. This does + * not work. + */ + if (is_ssl) + backend->close_on_recycle = 1; /* Step One: Determine Who To Connect To */ if ((status = ap_proxy_determine_connection(p, r, conf, worker, backend, -- 2.47.3