|
From: Alistair <ali...@zx...> - 2025-11-04 17:07:25
|
I've been investigating an issue with channels and streams in Spectranet, and discovered that there's a bug in the w5100 socket code. There are two socket interrupts not being raised, namely the 'CON' interrupt (socket->ir |= 1 << 0;) when switching to W5100_SOCKET_STATE_ESTABLISHED in w5100_socket_process_accept, and 'DISCON' (socket->ir |= 1 << 1;) when switching to W5100_SOCKET_STATE_CLOSE_WAIT in w5100_socket_process_read. This prevents software detecting connect/disconnect events until a read occurs/fails. I haven't exhaustively tested different states so there may be other conditions which differ from the hardware behaviour. This along with the fixed-but-not-released flash memory emulation issue are causing problems for users, so getting a release out there with both issues fixed is quite important for spectranet development. Alistair |