Code cleanup

This commit is contained in:
Atlante45 2015-07-29 16:04:13 -07:00
parent 8a3c51ef61
commit f7f7ff385f
2 changed files with 13 additions and 17 deletions

View file

@ -334,6 +334,7 @@ void Connection::processACK(std::unique_ptr<ControlPacket> controlPacket) {
// validate that this isn't a BS ACK
if (ack > _sendQueue->getCurrentSequenceNumber()) {
// in UDT they specifically break the connection here - do we want to do anything?
Q_ASSERT_X(true, "Connection::processACK", "ACK recieved higher than largest sent sequence number");
return;
}
@ -341,26 +342,24 @@ void Connection::processACK(std::unique_ptr<ControlPacket> controlPacket) {
int32_t rtt;
controlPacket->readPrimitive(&rtt);
// read the desired flow window size
int flowWindowSize;
controlPacket->readPrimitive(&flowWindowSize);
if (ack <= _lastReceivedACK) {
// this is a valid ACKed sequence number - update the flow window size and the last received ACK
_flowWindowSize = flowWindowSize;
_lastReceivedACK = ack;
}
// make sure this isn't a repeated ACK
if (ack <= SequenceNumber(_atomicLastReceivedACK)) {
if (ack < _lastReceivedACK) {
// Bail
return;
}
// this is a valid ACKed sequence number - update the flow window size and the last received ACK
controlPacket->readPrimitive(&_flowWindowSize);
if (ack == _lastReceivedACK) {
// Bail
return;
}
_lastReceivedACK = ack;
// ACK the send queue so it knows what was received
_sendQueue->ack(ack);
// update the atomic for last received ACK, the send queue uses this to re-transmit
_atomicLastReceivedACK = (SequenceNumber::Type)_lastReceivedACK;
// update the RTT
updateRTT(rtt);

View file

@ -44,8 +44,6 @@ public:
SequenceNumber nextACK() const;
SequenceNumber getLastReceivedACK() const { return SequenceNumber(_atomicLastReceivedACK); }
void processReceivedSequenceNumber(SequenceNumber seq);
void processControl(std::unique_ptr<ControlPacket> controlPacket);
@ -75,7 +73,6 @@ private:
LossList _lossList; // List of all missing packets
SequenceNumber _lastReceivedSequenceNumber { SequenceNumber::MAX }; // The largest sequence number received from the peer
SequenceNumber _lastReceivedACK { SequenceNumber::MAX }; // The last ACK received
std::atomic<uint32_t> _atomicLastReceivedACK { (uint32_t) SequenceNumber::MAX }; // Atomic for thread-safe get of last ACK received
SequenceNumber _lastReceivedAcknowledgedACK { SequenceNumber::MAX }; // The last sent ACK that has been acknowledged via an ACK2 from the peer
SequenceNumber _currentACKSubSequenceNumber; // The current ACK sub-sequence number (used for Acknowledgment of ACKs)