I added the tcp_accepted in my tcp_accept callback function, but it shows fail since pcb->state is already changed to ESTABLISHED.
static err_t
netio_accept(void *arg, struct tcp_pcb *pcb, err_t err)
{
...
tcp_accepted(pcb);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I tried to add tcp_accepted here.
tcp_arg(pcb, ns);
tcp_sent(pcb, netio_sent);
tcp_recv(pcb, netio_recv);
tcp_poll(pcb, netio_poll, 4); /* every 2 seconds */
return ERR_OK;
}
void netio_init(void)
{
struct tcp_pcb *pcb;
int err;
pcb = tcp_new();
do{
err = tcp_bind(pcb, IP_ADDR_ANY, 18767);
tx_thread_sleep(500);
printf("tcp_bind status: %d\n", err);
}while(err != ERR_OK);
netio_closed = 0;
pcb = tcp_listen(pcb);
tcp_accept(pcb, netio_accept);
}