From 4c2de16a3e1fda932681d25ca243ecbdc39130d9 Mon Sep 17 00:00:00 2001 From: xiehan <52160700+Barenboim@users.noreply.github.com> Date: Fri, 25 Jul 2025 21:31:52 +0800 Subject: [PATCH] Check 'SSL_ERROR_ZERO_RETURN' for a closed SSL connection. (#1762) --- src/kernel/poller.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/kernel/poller.c b/src/kernel/poller.c index abe37795..6236d31f 100644 --- a/src/kernel/poller.c +++ b/src/kernel/poller.c @@ -453,10 +453,15 @@ static void __poller_handle_read(struct __poller_node *node, else { nleft = SSL_read(node->data.ssl, p, POLLER_BUFSIZE); - if (nleft < 0) + if (nleft <= 0) { if (__poller_handle_ssl_error(node, nleft, poller) >= 0) return; + + if (errno == -SSL_ERROR_ZERO_RETURN) + nleft = 0; + else + nleft = -1; } }