lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #28288] Data after FIN in oos queue


From: Simon Goldschmidt
Subject: [lwip-devel] [bug #28288] Data after FIN in oos queue
Date: Mon, 11 Jan 2010 17:49:21 +0000
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7

Follow-up Comment #9, bug #28288 (project lwip):

Possible states for duplicate FINs are
1. received FIN is ooseq, ooseq already contains FIN (with another seqno) or
2. received FIN is inseq, ooseq already contains FIN (with another seqno) or
3. received FIN is inseq, another inseq FIN has been received before

1. is not covered yet: I'd cover it by walking the whole ooseq queue to check
we only have one FIN after inserting a segment that contained FIN (in
tcp_receive())

2. is covered in tcp_receive() by binning the whole ooseq queue if
(TCPH_FLAGS(inseg.tcphdr) & TCP_FIN), although we don't check for double FIN
here, we only dump all data after FIN (including a possible 2nd FIN).

3. is difficult to cover: for that, we would need to remember the seqno of
the first FIN. In this case, we rely on the remote side as all data is passed
on to the application in state CLOSE_WAIT (where we already received FIN) -
This might be best solved by returning from tcp_receive() after ACK processing
(i.e. not processing the data).

In any case, we have to decide if we want to *detect* a duplicate ACK and
send RST or only (silently) *ignore* it.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?28288>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]