Skip to content

Commit b863fba

Browse files
authored
Merge pull request micropython#7813 from gneverov/issue_7790
don't set tcp_err callback for listen sockets (fixes micropython#7790)
2 parents 9203b66 + 173bc19 commit b863fba

File tree

1 file changed

+4
-4
lines changed
  • ports/raspberrypi/common-hal/socketpool

1 file changed

+4
-4
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -706,8 +706,6 @@ bool socketpool_socket(socketpool_socketpool_obj_t *self,
706706
case MOD_NETWORK_SOCK_STREAM: {
707707
// Register the socket object as our callback argument.
708708
tcp_arg(socket->pcb.tcp, (void *)socket);
709-
// Register our error callback.
710-
tcp_err(socket->pcb.tcp, _lwip_tcp_error);
711709
break;
712710
}
713711
case MOD_NETWORK_SOCK_DGRAM: {
@@ -916,10 +914,11 @@ void socketpool_socket_close(socketpool_socket_obj_t *socket) {
916914
case SOCKETPOOL_SOCK_STREAM: {
917915
// Deregister callback (pcb.tcp is set to NULL below so must deregister now)
918916
tcp_arg(socket->pcb.tcp, NULL);
919-
tcp_err(socket->pcb.tcp, NULL);
920-
tcp_recv(socket->pcb.tcp, NULL);
921917

922918
if (socket->pcb.tcp->state != LISTEN) {
919+
tcp_err(socket->pcb.tcp, NULL);
920+
tcp_recv(socket->pcb.tcp, NULL);
921+
923922
// Schedule a callback to abort the connection if it's not cleanly closed after
924923
// the given timeout. The callback must be set before calling tcp_close since
925924
// the latter may free the pcb; if it doesn't then the callback will be active.
@@ -977,6 +976,7 @@ void common_hal_socketpool_socket_connect(socketpool_socket_obj_t *socket,
977976
// Register our receive callback.
978977
MICROPY_PY_LWIP_ENTER
979978
tcp_recv(socket->pcb.tcp, _lwip_tcp_recv);
979+
tcp_err(socket->pcb.tcp, _lwip_tcp_error);
980980
socket->state = STATE_CONNECTING;
981981
err = tcp_connect(socket->pcb.tcp, &dest, port, _lwip_tcp_connected);
982982
if (err != ERR_OK) {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy