diff --git a/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp b/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp index b0c4d905bc..44c9576943 100644 --- a/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp +++ b/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp @@ -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) { diff --git a/libraries/networking/src/SentPacketHistory.cpp b/libraries/networking/src/SentPacketHistory.cpp index a34dada397..1e1157ba71 100644 --- a/libraries/networking/src/SentPacketHistory.cpp +++ b/libraries/networking/src/SentPacketHistory.cpp @@ -9,22 +9,26 @@ // #include "SentPacketHistory.h" +#include 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; diff --git a/libraries/octree/src/OctreeEditPacketSender.cpp b/libraries/octree/src/OctreeEditPacketSender.cpp index f82e7e3101..01d2ecf464 100644 --- a/libraries/octree/src/OctreeEditPacketSender.cpp +++ b/libraries/octree/src/OctreeEditPacketSender.cpp @@ -34,7 +34,7 @@ OctreeEditPacketSender::OctreeEditPacketSender() : _maxPendingMessages(DEFAULT_MAX_PENDING_MESSAGES), _releaseQueuedMessagesPending(false), _serverJurisdictions(NULL), - _sequenceNumber(0), + _sequenceNumber(65500), _maxPacketSize(MAX_PACKET_SIZE) { }