From febca16a0b81de2da06e157863358c92f99964e0 Mon Sep 17 00:00:00 2001 From: Yichen Gu Date: Mon, 17 May 2021 10:40:34 +0100 Subject: [PATCH] lwip: handle ECONNABORTED on tls read --- lib/plat/freertos/private-lib-plat-freertos.h | 1 + lib/tls/mbedtls/mbedtls-ssl.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/lib/plat/freertos/private-lib-plat-freertos.h b/lib/plat/freertos/private-lib-plat-freertos.h index 48f113725..9589f9885 100644 --- a/lib/plat/freertos/private-lib-plat-freertos.h +++ b/lib/plat/freertos/private-lib-plat-freertos.h @@ -94,6 +94,7 @@ typedef SemaphoreHandle_t lws_mutex_t; #define LWS_ENOTCONN ENOTCONN #define LWS_EWOULDBLOCK EWOULDBLOCK #define LWS_EADDRINUSE EADDRINUSE + #define LWS_ECONNABORTED ECONNABORTED #define lws_set_blocking_send(wsi) diff --git a/lib/tls/mbedtls/mbedtls-ssl.c b/lib/tls/mbedtls/mbedtls-ssl.c index c0f9046f2..b894e1ea1 100644 --- a/lib/tls/mbedtls/mbedtls-ssl.c +++ b/lib/tls/mbedtls/mbedtls-ssl.c @@ -75,6 +75,11 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, size_t len) /* If the socket isn't connected anymore, bail out. */ goto do_err1; +#if defined(LWS_PLAT_FREERTOS) + if (errno == LWS_ECONNABORTED) + goto do_err1; +#endif + if (m == SSL_ERROR_ZERO_RETURN || m == SSL_ERROR_SYSCALL) goto do_err;