From 97dde2af9b9404f37825688cced3351d964010e2 Mon Sep 17 00:00:00 2001 From: ekoby <7406535+ekoby@users.noreply.github.com> Date: Sun, 10 Oct 2021 11:30:26 -0400 Subject: [PATCH] fix disconnect after TLS handshake failure (#93) --- src/uv_mbed.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/uv_mbed.c b/src/uv_mbed.c index 4bda32a5..89947eab 100644 --- a/src/uv_mbed.c +++ b/src/uv_mbed.c @@ -97,13 +97,19 @@ int uv_mbed_nodelay(uv_mbed_t *mbed, int nodelay) { static void on_tls_hs(tls_link_t *tls_link, int status) { uv_mbed_t *mbed = tls_link->data; + + uv_connect_t *req = mbed->conn_req; + if (req == NULL) { + return; + } + if (status == TLS_HS_COMPLETE) { - mbed->conn_req->cb(mbed->conn_req, 0); + req->cb(req, 0); } else if (status == TLS_HS_ERROR) { - mbed->conn_req->cb(mbed->conn_req, UV_ECONNABORTED); + req->cb(req, UV_ECONNABORTED); } else { UM_LOG(WARN, "unexpected handshake status[%d]", status); - mbed->conn_req->cb(mbed->conn_req, UV_EINVAL); + req->cb(req, UV_EINVAL); } mbed->conn_req = NULL; }