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

View file

@ -9,22 +9,26 @@
// //
#include "SentPacketHistory.h" #include "SentPacketHistory.h"
#include <qdebug.h>
SentPacketHistory::SentPacketHistory(int size) SentPacketHistory::SentPacketHistory(int size)
: _sentPackets(size), : _sentPackets(size),
_newestPacketAt(0), _newestPacketAt(0),
_numExistingPackets(0), _numExistingPackets(0),
_newestSequenceNumber(0) _newestSequenceNumber(UINT16_MAX)
{ {
} }
void SentPacketHistory::packetSent(uint16_t sequenceNumber, const QByteArray& packet) { void SentPacketHistory::packetSent(uint16_t sequenceNumber, const QByteArray& packet) {
if (sequenceNumber != 0 && sequenceNumber != _newestSequenceNumber + 1) { // check if given seq number has the expected value. if not, something's wrong with
printf("\t\tpacket history received unexpected seq number! prev: %hu received: %hu **************** \n", _newestSequenceNumber, sequenceNumber); // 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; _newestSequenceNumber = sequenceNumber;
// increment _newestPacketAt cyclically, insert new packet there. // 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 QByteArray* SentPacketHistory::getPacket(uint16_t sequenceNumber) const {
const int UINT16_RANGE = UINT16_MAX + 1; const int UINT16_RANGE = UINT16_MAX + 1;

View file

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