Pico W: ssl: Correctly handle errors in send/recv

The prefixed versions raise Python exceptions, the un-prefixed return
negative error values. We don't want to raise an exception from here,
it leaves the SSL stack in an undefined state.
This commit is contained in:
Jeff Epler 2022-10-12 11:36:34 -05:00
parent 7c849fdadb
commit 1641a7c002
No known key found for this signature in database
GPG Key ID: D5BF15AB975AB4DE
1 changed files with 2 additions and 2 deletions

View File

@ -100,7 +100,7 @@ STATIC int _mbedtls_ssl_send(void *ctx, const byte *buf, size_t len) {
mp_obj_t sock = *(mp_obj_t *)ctx; mp_obj_t sock = *(mp_obj_t *)ctx;
// mp_uint_t out_sz = sock_stream->write(sock, buf, len, &err); // mp_uint_t out_sz = sock_stream->write(sock, buf, len, &err);
mp_int_t out_sz = common_hal_socketpool_socket_send(sock, buf, len); mp_int_t out_sz = socketpool_socket_send(sock, buf, len);
DEBUG("socket_send() -> %d", out_sz); DEBUG("socket_send() -> %d", out_sz);
if (out_sz < 0) { if (out_sz < 0) {
int err = -out_sz; int err = -out_sz;
@ -118,7 +118,7 @@ STATIC int _mbedtls_ssl_send(void *ctx, const byte *buf, size_t len) {
STATIC int _mbedtls_ssl_recv(void *ctx, byte *buf, size_t len) { STATIC int _mbedtls_ssl_recv(void *ctx, byte *buf, size_t len) {
mp_obj_t sock = *(mp_obj_t *)ctx; mp_obj_t sock = *(mp_obj_t *)ctx;
mp_int_t out_sz = common_hal_socketpool_socket_recv_into(sock, buf, len); mp_int_t out_sz = socketpool_socket_recv_into(sock, buf, len);
DEBUG("socket_recv() -> %d", out_sz); DEBUG("socket_recv() -> %d", out_sz);
if (out_sz < 0) { if (out_sz < 0) {
int err = -out_sz; int err = -out_sz;