[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #28241] oos processing
From: |
Oleg Tyshev |
Subject: |
[lwip-devel] [bug #28241] oos processing |
Date: |
Wed, 09 Dec 2009 15:36:49 +0000 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 GTB5 |
URL:
<http://savannah.nongnu.org/bugs/?28241>
Summary: oos processing
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: olegreen
Submitted on: Wed 09 Dec 2009 03:36:48 PM GMT
Category: TCP
Severity: 3 - Normal
Item Group: Change Request
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release:
lwIP version: CVS Head
_______________________________________________________
Details:
In function tcp_oos_insert_segment()
some segments covered with new segment are deleted.
It would be better instead of
while (next &&
TCP_SEQ_GT((seqno + cseg->len),
(next->tcphdr->seqno + next->len))) {
struct tcp_seg *old_seg = next;
next = next->next;
tcp_seg_free(old_seg);
}
write
while (next &&
- TCP_SEQ_GT((seqno + cseg->len),
+ TCP_SEQ_GEQ((seqno + cseg->len),
(next->tcphdr->seqno + next->len))) {
struct tcp_seg *old_seg = next;
next = next->next;
tcp_seg_free(old_seg);
}
or if we don't want to lose FIN flag
while (next &&
- TCP_SEQ_GT((seqno + cseg->len),
+ TCP_SEQ_GEQ((seqno + cseg->len),
(next->tcphdr->seqno + next->len))) {
+ /* cseg with FIN already processed */
+ if (TCPH_FLAGS(next->mpTcpHdr) & TCP_FIN) {
+ TCPH_FLAGS_SET(cseg->tcphdr, TCPH_FLAGS(cseg->tcphdr) & ~TCP_FIN);
+ }
struct tcp_seg *old_seg = next;
next = next->next;
tcp_seg_free(old_seg);
}
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Wed 09 Dec 2009 03:36:48 PM GMT Name: oos_ins.patch Size: 790B By:
olegreen
<http://savannah.nongnu.org/bugs/download.php?file_id=19226>
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?28241>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [bug #28241] oos processing,
Oleg Tyshev <=
- [lwip-devel] [bug #28241] oos processing, Simon Goldschmidt, 2009/12/09
- [lwip-devel] [bug #28241] oos processing, Oleg Tyshev, 2009/12/10
- [lwip-devel] [bug #28241] oos processing, Kieran Mansley, 2009/12/10
- [lwip-devel] [bug #28241] oos processing, Simon Goldschmidt, 2009/12/10
- [lwip-devel] [bug #28241] oos processing, Simon Goldschmidt, 2009/12/10
- [lwip-devel] [bug #28241] oos processing, Simon Goldschmidt, 2009/12/10
- [lwip-devel] [bug #28241] oos processing, Oleg Tyshev, 2009/12/11
- [lwip-devel] [bug #28241] oos processing, Kieran Mansley, 2009/12/11
- [lwip-devel] [bug #28241] oos processing, Oleg Tyshev, 2009/12/11
- [lwip-devel] [bug #28241] oos processing, Kieran Mansley, 2009/12/11