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
_sendQueue = SendQueue::create(_parentSocket, _destination);
_lastReceivedACK = _sendQueue->getCurrentSequenceNumber();
#ifdef UDT_CONNECTION_DEBUG
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
return false;
}
if (!_hasReceivedData) {
_initialReceiveSequenceNumber = sequenceNumber;
_lastReceivedSequenceNumber = sequenceNumber - 1;
_lastSentACK = sequenceNumber - 1;
}
_isReceivingData = _hasReceivedData = true;

View file

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