* Add() did not add fNumBytes in case of an out of order packet, causing all kinds of
hickups on TCP connections. * Added a bit more of debug output to Add(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19817 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006, Haiku, Inc. All Rights Reserved.
|
||||
* Copyright 2006-2007, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
@@ -71,6 +71,7 @@ BufferQueue::Add(net_buffer *buffer, tcp_sequence sequence)
|
||||
{
|
||||
TRACE(("BufferQueue@%p::Add(buffer %p, size %lu, sequence %lu)\n",
|
||||
this, buffer, buffer->size, (uint32)sequence));
|
||||
TRACE((" in: first: %lu, last: %lu, num: %lu, cont: %lu\n", (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes));
|
||||
|
||||
buffer->sequence = sequence;
|
||||
|
||||
@@ -85,6 +86,7 @@ BufferQueue::Add(net_buffer *buffer, tcp_sequence sequence)
|
||||
|
||||
fLastSequence = sequence + buffer->size;
|
||||
fNumBytes += buffer->size;
|
||||
TRACE((" out0: first: %lu, last: %lu, num: %lu, cont: %lu\n", (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -141,10 +143,13 @@ BufferQueue::Add(net_buffer *buffer, tcp_sequence sequence)
|
||||
gBufferModule->remove_trailer(buffer, next->sequence - (sequence + buffer->size));
|
||||
}
|
||||
|
||||
if (buffer == NULL)
|
||||
if (buffer == NULL) {
|
||||
TRACE((" out1: first: %lu, last: %lu, num: %lu, cont: %lu\n", (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes));
|
||||
return;
|
||||
}
|
||||
|
||||
fList.Insert(next, buffer);
|
||||
fNumBytes += buffer->size;
|
||||
|
||||
// we might need to update the number of bytes available
|
||||
|
||||
@@ -160,6 +165,8 @@ BufferQueue::Add(net_buffer *buffer, tcp_sequence sequence)
|
||||
buffer = (struct net_buffer *)buffer->link.next;
|
||||
} while (buffer != NULL && fFirstSequence + fContiguousBytes == buffer->sequence);
|
||||
}
|
||||
|
||||
TRACE((" out2: first: %lu, last: %lu, num: %lu, cont: %lu\n", (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user