diff options
author | Andrey Suvorov <a.suvorov@f5.com> | 2021-05-26 11:11:58 -0700 |
---|---|---|
committer | Andrey Suvorov <a.suvorov@f5.com> | 2021-05-26 11:11:58 -0700 |
commit | 3efffddd95e564fe10f59e1de45afc2b551a5cba (patch) | |
tree | e1efa2f511c68878405a3c45c3458ddb300f71d5 /src/nxt_router.c | |
parent | d67a0c871157454d591fa1d2a8b2d831b32e4040 (diff) | |
download | unit-3efffddd95e564fe10f59e1de45afc2b551a5cba.tar.gz unit-3efffddd95e564fe10f59e1de45afc2b551a5cba.tar.bz2 |
Fixing crash during TLS connection shutdown.
A crash was caused by an incorrect timer handler nxt_h1p_idle_timeout() if
SSL_shutdown() returned SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.
The flag SSL_RECEIVED_SHUTDOWN is used to avoid getting SSL_ERROR_WANT_READ, so
the server won't wait for a close notification from a client.
For SSL_ERROR_WANT_WRITE, a correct timer handler is set up.
Diffstat (limited to 'src/nxt_router.c')
-rw-r--r-- | src/nxt_router.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/nxt_router.c b/src/nxt_router.c index c597863e..122fd523 100644 --- a/src/nxt_router.c +++ b/src/nxt_router.c @@ -2477,6 +2477,7 @@ nxt_router_tls_rpc_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg, goto fail; } + tlscf->no_wait_shutdown = 1; rpc->socket_conf->tls = tlscf; } else { |