summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGraham Leggett <minfrin@apache.org>2022-01-22 13:09:12 +0100
committerGraham Leggett <minfrin@apache.org>2022-01-22 13:09:12 +0100
commit384b51f21fa9a44c09dbc8e256fa7c4a47d4ff6d (patch)
tree1270458a70ca5fdf4b9f4d78ebd2034ac1e1a999
parentAPR 1.3 is a requirement for building httpd 2.4 and above. (diff)
downloadapache2-384b51f21fa9a44c09dbc8e256fa7c4a47d4ff6d.tar.xz
apache2-384b51f21fa9a44c09dbc8e256fa7c4a47d4ff6d.zip
When failing, we need to explicitly set the connection state.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897336 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--modules/ssl/mod_ssl.c5
-rw-r--r--support/ab.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c
index 3108cd877e..1a0b8c9fc2 100644
--- a/modules/ssl/mod_ssl.c
+++ b/modules/ssl/mod_ssl.c
@@ -714,6 +714,8 @@ static int ssl_hook_process_connection(conn_rec* c)
/* Take advantage of an async MPM. If we see an EAGAIN,
* loop round and don't block.
*/
+ conn_state_t *cs = c->cs;
+
apr_status_t rv;
rv = ap_get_brigade(c->input_filters, temp,
@@ -731,7 +733,8 @@ static int ssl_hook_process_connection(conn_rec* c)
/* we failed, give up */
status = DONE;
- c->aborted = 1;
+ cs->state = CONN_STATE_LINGER;
+
}
}
else {
diff --git a/support/ab.c b/support/ab.c
index 13a453f318..4a300b0f2e 100644
--- a/support/ab.c
+++ b/support/ab.c
@@ -1434,7 +1434,7 @@ static void start_connect(struct connection * c)
}
#endif
if ((rv = apr_socket_connect(c->aprsock, destsa)) != APR_SUCCESS) {
- if (APR_STATUS_IS_EINPROGRESS(rv)) {
+ if (APR_STATUS_IS_EINPROGRESS(rv) || APR_STATUS_IS_EINTR(rv)) {
set_conn_state(c, STATE_CONNECTING);
c->rwrite = 0;
return;