I'm currently writing some test code that verifies that both peers enters TCP_CLOSED state when one of them closes the socket. If the remote peer closes the socket it will set its own state to TCP_CLOSED but the local node will not detect that the socket has been closed. My short debugging of this seems to indicate that the local peer never probes for closed windows because getM_snd_wnd() doesn't return 0 so it never enters if ((getM_snd_wnd() == 0) && (TimeDiff(m_lastsend + m_rx_rto, now) <= 0)). Is this expected behavior? How do I make the local peer detect that the remote peer has called close()?