added qDebug() check in SentPacketHistory for seq numbers

used (unsigned short int)1 instead of 1 when calculating
expectedSequence
This commit is contained in:
wangyix 2014-06-17 11:34:35 -07:00
parent 6e71523346
commit 8187912384
3 changed files with 12 additions and 9 deletions

View file

@ -289,7 +289,7 @@ printf("\t\t tracked seq %hu\n", incomingSequence);
const int MAX_REASONABLE_SEQUENCE_GAP = 1000; // this must be less than UINT16_RANGE / 2 for rollover handling to work
const int MAX_MISSING_SEQUENCE_SIZE = 100;
unsigned short int expectedSequence = _totalPackets == 0 ? incomingSequence : _incomingLastSequence + 1;
unsigned short int expectedSequence = _totalPackets == 0 ? incomingSequence : _incomingLastSequence + (unsigned short int)1;
if (incomingSequence == expectedSequence) { // on time
_incomingLastSequence = incomingSequence;
@ -346,8 +346,8 @@ printf("\t\t tracked seq %hu\n", incomingSequence);
// will be removed.
if (_missingSequenceNumbers.size() > MAX_MISSING_SEQUENCE_SIZE) {
// the acceptable range of older sequence numbers may contain a rollover point; this must be handled.
// some sequence number in this list may be larger than _incomingLastSequence, indicating that they were received
// some older sequence numbers may be from before a rollover point; this must be handled.
// some sequence numbers in this list may be larger than _incomingLastSequence, indicating that they were received
// before the most recent rollover.
int cutoff = (int)_incomingLastSequence - MAX_REASONABLE_SEQUENCE_GAP;
if (cutoff >= 0) {

View file

@ -9,22 +9,26 @@
//
#include "SentPacketHistory.h"
#include <qdebug.h>
SentPacketHistory::SentPacketHistory(int size)
: _sentPackets(size),
_newestPacketAt(0),
_numExistingPackets(0),
_newestSequenceNumber(0)
_newestSequenceNumber(UINT16_MAX)
{
}
void SentPacketHistory::packetSent(uint16_t sequenceNumber, const QByteArray& packet) {
if (sequenceNumber != 0 && sequenceNumber != _newestSequenceNumber + 1) {
printf("\t\tpacket history received unexpected seq number! prev: %hu received: %hu **************** \n", _newestSequenceNumber, sequenceNumber);
// check if given seq number has the expected value. if not, something's wrong with
// the code calling this function
uint16_t expectedSequenceNumber = _newestSequenceNumber + (uint16_t)1;
if (sequenceNumber != expectedSequenceNumber) {
qDebug() << "Unexpected sequence number passed to SentPacketHistory::packetSent()!"
<< "Expected:" << expectedSequenceNumber << "Actual:" << sequenceNumber;
}
_newestSequenceNumber = sequenceNumber;
// increment _newestPacketAt cyclically, insert new packet there.
@ -36,7 +40,6 @@ void SentPacketHistory::packetSent(uint16_t sequenceNumber, const QByteArray& pa
}
}
const QByteArray* SentPacketHistory::getPacket(uint16_t sequenceNumber) const {
const int UINT16_RANGE = UINT16_MAX + 1;

View file

@ -34,7 +34,7 @@ OctreeEditPacketSender::OctreeEditPacketSender() :
_maxPendingMessages(DEFAULT_MAX_PENDING_MESSAGES),
_releaseQueuedMessagesPending(false),
_serverJurisdictions(NULL),
_sequenceNumber(0),
_sequenceNumber(65500),
_maxPacketSize(MAX_PACKET_SIZE) {
}