fixed an issue with TCP where it possibly could not recover from a retransmission as the RCV.NXT was wrongly updated. When appending data we now set it to the sequence in the end of the receive queue.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20776 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1557,8 +1557,8 @@ TCPEndpoint::_WaitForEstablished(RecursiveLocker &locker, bigtime_t timeout)
|
|||||||
void
|
void
|
||||||
TCPEndpoint::_AddData(tcp_segment_header &segment, net_buffer *buffer)
|
TCPEndpoint::_AddData(tcp_segment_header &segment, net_buffer *buffer)
|
||||||
{
|
{
|
||||||
fReceiveNext += buffer->size;
|
|
||||||
fReceiveQueue.Add(buffer, segment.sequence);
|
fReceiveQueue.Add(buffer, segment.sequence);
|
||||||
|
fReceiveNext = fReceiveQueue.LastSequence();
|
||||||
|
|
||||||
TRACE(" _AddData(): adding data, receive next = %lu. Now have %lu bytes.",
|
TRACE(" _AddData(): adding data, receive next = %lu. Now have %lu bytes.",
|
||||||
(uint32)fReceiveNext, fReceiveQueue.Available());
|
(uint32)fReceiveNext, fReceiveQueue.Available());
|
||||||
|
|||||||
Reference in New Issue
Block a user