1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-07 04:02:58 +03:00

event: Add support for non blocking behaviour in the

CONN_STATE_READ_REQUEST_LINE phase, in addition to the existing
CONN_STATE_WRITE_COMPLETION phase. Update mod_ssl to perform non blocking
TLS handshakes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897281 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Graham Leggett
2022-01-21 00:09:24 +00:00
parent 62db0c63ab
commit 54a200291b
7 changed files with 147 additions and 22 deletions

View File

@@ -1489,10 +1489,21 @@ static apr_status_t ssl_io_filter_handshake(ssl_filter_ctx_t *filter_ctx)
}
else if (ssl_err == SSL_ERROR_WANT_READ) {
/*
* This is in addition to what was present earlier. It is
* borrowed from openssl_state_machine.c [mod_tls].
* TBD.
* Call us back when ready to read *\/
*/
ap_log_cerror(APLOG_MARK, APLOG_TRACE6, 0, outctx->c,
"Want read during nonblocking accept");
outctx->c->cs->sense = CONN_SENSE_WANT_READ;
outctx->rc = APR_EAGAIN;
return APR_EAGAIN;
}
else if (ssl_err == SSL_ERROR_WANT_WRITE) {
/*
* Call us back when ready to write *\/
*/
ap_log_cerror(APLOG_MARK, APLOG_TRACE6, 0, outctx->c,
"Want write during nonblocking accept");
outctx->c->cs->sense = CONN_SENSE_WANT_WRITE;
outctx->rc = APR_EAGAIN;
return APR_EAGAIN;
}