summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2020-11-25 13:40:52 -0800
committerGitHub <noreply@github.com>2020-11-25 13:40:52 -0800
commite7bab9e86b9c7d67e7a2044977a5a0ee82fade67 (patch)
tree251917b9e02effaea5c623434231d6aea12cd06c
parente778fc1f876116fd8f07b95f9eb8439745988fba (diff)
parent9a692c3222013efdbcedea95cadf29c0379ca17c (diff)
Merge pull request #3759 from tannewt/recv_exit
Exit faster on recv when TLS connection closed
-rw-r--r--ports/esp32s2/common-hal/socketpool/Socket.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ports/esp32s2/common-hal/socketpool/Socket.c b/ports/esp32s2/common-hal/socketpool/Socket.c
index 750415dc7..999d39990 100644
--- a/ports/esp32s2/common-hal/socketpool/Socket.c
+++ b/ports/esp32s2/common-hal/socketpool/Socket.c
@@ -103,6 +103,11 @@ mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self,
}
if (available > 0) {
status = esp_tls_conn_read(self->tcp, (void*) buf + received, available);
+ if (status == 0) {
+ // Reading zero when something is available indicates a closed
+ // connection. (The available bytes could have been TLS internal.)
+ break;
+ }
if (status > 0) {
received += status;
}