[En-Nut-Discussion] NutTcpStateActiveOpenEvent fails for "tiny" connections
Malte Marwedel
m.marwedel at onlinehome.de
Wed Jan 27 01:06:43 CET 2010
Hello,
some time ago, I reported, that the ftp server did not work with small
files:
http://lists.egnite.de/pipermail/en-nut-discussion/2009-November/011418.html
I traced down what the problem is, and found that in
NutTcpStateActiveOpenEvent(TCPSOCKET * sock)
if(sock->so_state == TCPS_SYN_SENT)
NutEventWait(&sock->so_ac_tq, 0);
if (sock->so_state != TCPS_ESTABLISHED)
return -1;
Returns -1 because the so_state is already TCPS_CLOSE_WAIT.
I can see with Wireshark, that the data bytes are properly transmitted
and the host sent already a FIN.
Is there any simple solution for the problem? I don't know not enough
about the TCP state machine to predict if some unwanted side effects
could happen if I replace it with
if ((sock->so_state != TCPS_ESTABLISHED) && (sock->so_state !=
TCPS_CLOSE_WAIT))
Malte
More information about the En-Nut-Discussion
mailing list