Fix initialization of variables for SendQueue and Connection

This commit is contained in:
Ryan Huffman 2016-02-26 11:20:31 -08:00
parent a0203cf9d5
commit a7bb47fbcc
2 changed files with 8 additions and 1 deletions

View file

@ -88,6 +88,7 @@ SendQueue& Connection::getSendQueue() {
// Lasily create send queue // Lasily create send queue
_sendQueue = SendQueue::create(_parentSocket, _destination); _sendQueue = SendQueue::create(_parentSocket, _destination);
_lastReceivedACK = _sendQueue->getCurrentSequenceNumber();
#ifdef UDT_CONNECTION_DEBUG #ifdef UDT_CONNECTION_DEBUG
qCDebug(networking) << "Created SendQueue for connection to" << _destination; qCDebug(networking) << "Created SendQueue for connection to" << _destination;
@ -410,6 +411,12 @@ bool Connection::processReceivedSequenceNumber(SequenceNumber sequenceNumber, in
// refuse to process any packets until we've received the handshake // refuse to process any packets until we've received the handshake
return false; return false;
} }
if (!_hasReceivedData) {
_initialReceiveSequenceNumber = sequenceNumber;
_lastReceivedSequenceNumber = sequenceNumber - 1;
_lastSentACK = sequenceNumber - 1;
}
_isReceivingData = _hasReceivedData = true; _isReceivingData = _hasReceivedData = true;

View file

@ -92,7 +92,7 @@ SendQueue::SendQueue(Socket* socket, HifiSockAddr dest) :
// set our member variables from randomized initial number // set our member variables from randomized initial number
_currentSequenceNumber = _initialSequenceNumber - 1; _currentSequenceNumber = _initialSequenceNumber - 1;
_atomicCurrentSequenceNumber = uint32_t(_currentSequenceNumber); _atomicCurrentSequenceNumber = uint32_t(_currentSequenceNumber);
_lastACKSequenceNumber = uint32_t(_initialSequenceNumber); _lastACKSequenceNumber = uint32_t(_currentSequenceNumber) - 1;
} }
void SendQueue::queuePacket(std::unique_ptr<Packet> packet) { void SendQueue::queuePacket(std::unique_ptr<Packet> packet) {