Skip to content

Commit 8277ffc

Browse files
committed
Fix hash, close, error bugs
1 parent a724f6f commit 8277ffc

File tree

6 files changed

+16
-16
lines changed

6 files changed

+16
-16
lines changed

ports/esp32s2/common-hal/socketpool/Socket.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
*
44
* The MIT License (MIT)
55
*
6-
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
76
* Copyright (c) 2020 Lucian Copeland for Adafruit Industries
87
*
98
* Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -198,10 +197,6 @@ bool common_hal_socketpool_socket_get_connected(socketpool_socket_obj_t* self) {
198197
return self->connected;
199198
}
200199

201-
mp_uint_t common_hal_socketpool_socket_get_hash(socketpool_socket_obj_t* self) {
202-
return self->num;
203-
}
204-
205200
bool common_hal_socketpool_socket_listen(socketpool_socket_obj_t* self, int backlog) {
206201
return lwip_listen(self->num, backlog) == 0;
207202
}
@@ -289,7 +284,7 @@ mp_uint_t common_hal_socketpool_socket_send(socketpool_socket_obj_t* self, const
289284
}
290285

291286
if (sent < 0) {
292-
mp_raise_OSError(MP_ENOTCONN);
287+
mp_raise_OSError(errno);
293288
}
294289
return sent;
295290
}

ports/esp32s2/common-hal/ssl/SSLSocket.c

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*
44
* The MIT License (MIT)
55
*
6+
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
67
* Copyright (c) 2021 Lucian Copeland for Adafruit Industries
78
*
89
* 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,
5152
}
5253

5354
void common_hal_ssl_sslsocket_close(ssl_sslsocket_obj_t* self) {
54-
self->sock->connected = false;
55+
common_hal_socketpool_socket_close(self->sock);
5556
esp_tls_conn_destroy(self->tls);
5657
self->tls = NULL;
5758
}
@@ -99,10 +100,6 @@ bool common_hal_ssl_sslsocket_get_connected(ssl_sslsocket_obj_t* self) {
99100
return self->sock->connected;
100101
}
101102

102-
mp_uint_t common_hal_ssl_sslsocket_get_hash(ssl_sslsocket_obj_t* self) {
103-
return self->sock->num;
104-
}
105-
106103
bool common_hal_ssl_sslsocket_listen(ssl_sslsocket_obj_t* self, int backlog) {
107104
return common_hal_socketpool_socket_listen(self->sock, backlog);
108105
}
@@ -163,7 +160,17 @@ mp_uint_t common_hal_ssl_sslsocket_send(ssl_sslsocket_obj_t* self, const uint8_t
163160
sent = esp_tls_conn_write(self->tls, buf, len);
164161

165162
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+
}
167174
}
168175
return sent;
169176
}

shared-bindings/socketpool/Socket.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_settimeout_obj, socketpool_so
370370
STATIC mp_obj_t socketpool_socket_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
371371
switch (op) {
372372
case MP_UNARY_OP_HASH: {
373-
return MP_OBJ_NEW_SMALL_INT(common_hal_socketpool_socket_get_hash(MP_OBJ_TO_PTR(self_in)));
373+
return mp_obj_id(self_in);
374374
}
375375
default:
376376
return MP_OBJ_NULL; // op not supported

shared-bindings/socketpool/Socket.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ void common_hal_socketpool_socket_close(socketpool_socket_obj_t* self);
3737
bool common_hal_socketpool_socket_connect(socketpool_socket_obj_t* self, const char* host, size_t hostlen, mp_int_t port);
3838
bool common_hal_socketpool_socket_get_closed(socketpool_socket_obj_t* self);
3939
bool common_hal_socketpool_socket_get_connected(socketpool_socket_obj_t* self);
40-
mp_uint_t common_hal_socketpool_socket_get_hash(socketpool_socket_obj_t* self);
4140
mp_uint_t common_hal_socketpool_socket_get_timeout(socketpool_socket_obj_t* self);
4241
bool common_hal_socketpool_socket_listen(socketpool_socket_obj_t* self, int backlog);
4342
mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* self,

shared-bindings/ssl/SSLSocket.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_setblocking_obj, ssl_sslsocket_se
286286
STATIC mp_obj_t ssl_sslsocket_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
287287
switch (op) {
288288
case MP_UNARY_OP_HASH: {
289-
return MP_OBJ_NEW_SMALL_INT(common_hal_ssl_sslsocket_get_hash(MP_OBJ_TO_PTR(self_in)));
289+
return mp_obj_id(self_in);
290290
}
291291
default:
292292
return MP_OBJ_NULL; // op not supported

shared-bindings/ssl/SSLSocket.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ void common_hal_ssl_sslsocket_close(ssl_sslsocket_obj_t* self);
3737
bool common_hal_ssl_sslsocket_connect(ssl_sslsocket_obj_t* self, const char* host, size_t hostlen, mp_int_t port);
3838
bool common_hal_ssl_sslsocket_get_closed(ssl_sslsocket_obj_t* self);
3939
bool common_hal_ssl_sslsocket_get_connected(ssl_sslsocket_obj_t* self);
40-
mp_uint_t common_hal_ssl_sslsocket_get_hash(ssl_sslsocket_obj_t* self);
4140
bool common_hal_ssl_sslsocket_listen(ssl_sslsocket_obj_t* self, int backlog);
4241
mp_uint_t common_hal_ssl_sslsocket_recv_into(ssl_sslsocket_obj_t* self, const uint8_t* buf, mp_uint_t len);
4342
mp_uint_t common_hal_ssl_sslsocket_send(ssl_sslsocket_obj_t* self, const uint8_t* buf, mp_uint_t len);

0 commit comments

Comments
 (0)