diff --git a/extmod/modlwip.c b/extmod/modlwip.c index af19648a6ea4cc8967d22a94d83603d58140cc4a..7ebfa8904728c85044c9541b603fc316263a9afe 100644 --- a/extmod/modlwip.c +++ b/extmod/modlwip.c @@ -447,7 +447,8 @@ STATIC err_t _lwip_tcp_recv_unaccepted(void *arg, struct tcp_pcb *pcb, struct pb // from accept callback itself. STATIC err_t _lwip_tcp_accept_finished(void *arg, struct tcp_pcb *pcb) { - lwip_socket_obj_t *socket = (lwip_socket_obj_t*)arg; + // The ->connected entry of the pcb holds the listening socket of the accept + lwip_socket_obj_t *socket = (lwip_socket_obj_t*)pcb->connected; tcp_poll(pcb, NULL, 0); exec_user_callback(socket); return ERR_OK;