|
3 | 3 | * |
4 | 4 | * The MIT License (MIT) |
5 | 5 | * |
| 6 | + * Copyright (c) 2020 Scott Shawcroft for Adafruit Industries |
6 | 7 | * Copyright (c) 2021 Lucian Copeland for Adafruit Industries |
7 | 8 | * |
8 | 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
@@ -51,7 +52,7 @@ bool common_hal_ssl_sslsocket_bind(ssl_sslsocket_obj_t* self, |
51 | 52 | } |
52 | 53 |
|
53 | 54 | void common_hal_ssl_sslsocket_close(ssl_sslsocket_obj_t* self) { |
54 | | - self->sock->connected = false; |
| 55 | + common_hal_socketpool_socket_close(self->sock); |
55 | 56 | esp_tls_conn_destroy(self->tls); |
56 | 57 | self->tls = NULL; |
57 | 58 | } |
@@ -99,10 +100,6 @@ bool common_hal_ssl_sslsocket_get_connected(ssl_sslsocket_obj_t* self) { |
99 | 100 | return self->sock->connected; |
100 | 101 | } |
101 | 102 |
|
102 | | -mp_uint_t common_hal_ssl_sslsocket_get_hash(ssl_sslsocket_obj_t* self) { |
103 | | - return self->sock->num; |
104 | | -} |
105 | | - |
106 | 103 | bool common_hal_ssl_sslsocket_listen(ssl_sslsocket_obj_t* self, int backlog) { |
107 | 104 | return common_hal_socketpool_socket_listen(self->sock, backlog); |
108 | 105 | } |
@@ -163,7 +160,17 @@ mp_uint_t common_hal_ssl_sslsocket_send(ssl_sslsocket_obj_t* self, const uint8_t |
163 | 160 | sent = esp_tls_conn_write(self->tls, buf, len); |
164 | 161 |
|
165 | 162 | if (sent < 0) { |
166 | | - mp_raise_OSError(MP_ENOTCONN); |
| 163 | + int esp_tls_code; |
| 164 | + int flags; |
| 165 | + esp_err_t err = esp_tls_get_and_clear_last_error(self->tls->error_handle, &esp_tls_code, &flags); |
| 166 | + |
| 167 | + if (err == ESP_ERR_MBEDTLS_SSL_SETUP_FAILED) { |
| 168 | + mp_raise_espidf_MemoryError(); |
| 169 | + } else if (ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED) { |
| 170 | + mp_raise_OSError_msg_varg(translate("Failed SSL handshake")); |
| 171 | + } else { |
| 172 | + mp_raise_OSError_msg_varg(translate("Unhandled ESP TLS error %d %d %x %d"), esp_tls_code, flags, err, sent); |
| 173 | + } |
167 | 174 | } |
168 | 175 | return sent; |
169 | 176 | } |
0 commit comments