mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 00:56:48 +02:00
Code cleanup
This commit is contained in:
parent
8a3c51ef61
commit
f7f7ff385f
2 changed files with 13 additions and 17 deletions
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in a new issue