Skip to content

Commit 62cbd3b

Browse files
committed
Pico w: socket: correctly track sockets generated by accept()
1 parent ab22d5a commit 62cbd3b

File tree

1 file changed

+10
-0
lines changed
  • ports/raspberrypi/common-hal/socketpool

1 file changed

+10
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,16 @@ socketpool_socket_obj_t *common_hal_socketpool_socket_accept(socketpool_socket_o
821821

822822
MICROPY_PY_LWIP_EXIT
823823

824+
DEBUG_printf("registering socket in socketpool_socket_accept()\n");
825+
if (!register_open_socket(socket2)) {
826+
DEBUG_printf("collecting garbage to open socket\n");
827+
gc_collect();
828+
if (!register_open_socket(socket2)) {
829+
mp_raise_RuntimeError(translate("Out of sockets"));
830+
}
831+
}
832+
mark_user_socket(socket2);
833+
824834
// output values
825835
memcpy(ip, &(socket2->pcb.tcp->remote_ip), NETUTILS_IPV4ADDR_BUFSIZE);
826836
*port = (mp_uint_t)socket2->pcb.tcp->remote_port;

0 commit comments

Comments
 (0)