diff --git a/libraries/networking/src/udt/LossList.cpp b/libraries/networking/src/udt/LossList.cpp index 32812be10b..90399e319d 100644 --- a/libraries/networking/src/udt/LossList.cpp +++ b/libraries/networking/src/udt/LossList.cpp @@ -17,7 +17,7 @@ using namespace udt; using namespace std; void LossList::append(SequenceNumber seq) { - assert(_lossList.back().second < seq); + assert(_lossList.empty() || _lossList.back().second < seq); if (getLength() > 0 && _lossList.back().second + 1 == seq) { ++_lossList.back().second; diff --git a/libraries/networking/src/udt/SequenceNumber.h b/libraries/networking/src/udt/SequenceNumber.h index d5b61c0a95..c77a14edf9 100644 --- a/libraries/networking/src/udt/SequenceNumber.h +++ b/libraries/networking/src/udt/SequenceNumber.h @@ -45,12 +45,12 @@ public: } inline SequenceNumber operator++(int) { SequenceNumber before = *this; - (*this)++; + ++(*this); return before; } inline SequenceNumber operator--(int) { SequenceNumber before = *this; - (*this)--; + --(*this); return before; } diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index 810eaa73e2..ba0e196669 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -162,12 +162,8 @@ void Socket::readPendingDatagrams() { if (packet->isReliable()) { // if this was a reliable packet then signal the matching connection with the sequence number - // assuming it exists - auto it = _connectionsHash.find(senderSockAddr); - - if (it != _connectionsHash.end()) { - it->second->processReceivedSequenceNumber(packet->getSequenceNumber()); - } + auto connection = findOrCreateConnection(senderSockAddr); + connection->processReceivedSequenceNumber(packet->getSequenceNumber()); } if (_packetHandler) {