mirror of
https://github.com/ZeroTier/ZeroTierOne
synced 2025-08-23 06:35:49 -07:00
Merge 6c7dfcafc1
into 3f71afd0fb
This commit is contained in:
commit
5bb29e2ca9
2 changed files with 11 additions and 7 deletions
|
@ -404,10 +404,12 @@ void Switch::doAnythingWaitingForPeer(const SharedPtr<Peer> &peer)
|
||||||
|
|
||||||
{ // finish processing any packets waiting on peer's public key / identity
|
{ // finish processing any packets waiting on peer's public key / identity
|
||||||
Mutex::Lock _l(_rxQueue_m);
|
Mutex::Lock _l(_rxQueue_m);
|
||||||
for(std::list< SharedPtr<IncomingPacket> >::iterator rxi(_rxQueue.begin());rxi!=_rxQueue.end();) {
|
for(std::vector< SharedPtr<IncomingPacket> >::iterator rxi(_rxQueue.begin());rxi!=_rxQueue.end();) {
|
||||||
if ((*rxi)->tryDecode(RR))
|
if ((*rxi)->tryDecode(RR)) {
|
||||||
_rxQueue.erase(rxi++);
|
// erase element (replace by last)
|
||||||
else ++rxi;
|
*rxi = _rxQueue.back();
|
||||||
|
_rxQueue.pop_back();
|
||||||
|
} else ++rxi;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -508,10 +510,12 @@ unsigned long Switch::doTimerTasks(uint64_t now)
|
||||||
|
|
||||||
{ // Time out RX queue packets that never got WHOIS lookups or other info.
|
{ // Time out RX queue packets that never got WHOIS lookups or other info.
|
||||||
Mutex::Lock _l(_rxQueue_m);
|
Mutex::Lock _l(_rxQueue_m);
|
||||||
for(std::list< SharedPtr<IncomingPacket> >::iterator i(_rxQueue.begin());i!=_rxQueue.end();) {
|
for(std::vector< SharedPtr<IncomingPacket> >::iterator i(_rxQueue.begin());i!=_rxQueue.end();) {
|
||||||
if ((now - (*i)->receiveTime()) > ZT_RECEIVE_QUEUE_TIMEOUT) {
|
if ((now - (*i)->receiveTime()) > ZT_RECEIVE_QUEUE_TIMEOUT) {
|
||||||
TRACE("RX %s -> %s timed out",(*i)->source().toString().c_str(),(*i)->destination().toString().c_str());
|
TRACE("RX %s -> %s timed out",(*i)->source().toString().c_str(),(*i)->destination().toString().c_str());
|
||||||
_rxQueue.erase(i++);
|
// erase element (replace by last)
|
||||||
|
*i = _rxQueue.back();
|
||||||
|
_rxQueue.pop_back();
|
||||||
} else ++i;
|
} else ++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,7 +213,7 @@ private:
|
||||||
Mutex _defragQueue_m;
|
Mutex _defragQueue_m;
|
||||||
|
|
||||||
// ZeroTier-layer RX queue of incoming packets in the process of being decoded
|
// ZeroTier-layer RX queue of incoming packets in the process of being decoded
|
||||||
std::list< SharedPtr<IncomingPacket> > _rxQueue;
|
std::vector< SharedPtr<IncomingPacket> > _rxQueue;
|
||||||
Mutex _rxQueue_m;
|
Mutex _rxQueue_m;
|
||||||
|
|
||||||
// ZeroTier-layer TX queue by destination ZeroTier address
|
// ZeroTier-layer TX queue by destination ZeroTier address
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue