|
|
|
|
@ -442,8 +442,8 @@ unsigned long Switch::doTimerTasks(uint64_t now)
|
|
|
|
|
Mutex::Lock _l(_contactQueue_m); |
|
|
|
|
for(std::list<ContactQueueEntry>::iterator qi(_contactQueue.begin());qi!=_contactQueue.end();) { |
|
|
|
|
if (now >= qi->fireAtTime) { |
|
|
|
|
if ((!qi->peer->alive(now))||(qi->peer->hasActiveDirectPath(now))) { |
|
|
|
|
// Cancel attempt if we've already connected or peer is no longer "alive"
|
|
|
|
|
if (qi->peer->hasActiveDirectPath(now)) { |
|
|
|
|
// Cancel if connection has succeeded
|
|
|
|
|
_contactQueue.erase(qi++); |
|
|
|
|
continue; |
|
|
|
|
} else { |
|
|
|
|
@ -539,7 +539,7 @@ unsigned long Switch::doTimerTasks(uint64_t now)
|
|
|
|
|
_LastUniteKey *k = (_LastUniteKey *)0; |
|
|
|
|
uint64_t *v = (uint64_t *)0; |
|
|
|
|
while (i.next(k,v)) { |
|
|
|
|
if ((now - *v) >= (ZT_MIN_UNITE_INTERVAL * 16)) |
|
|
|
|
if ((now - *v) >= (ZT_MIN_UNITE_INTERVAL * 8)) |
|
|
|
|
_lastUniteAttempt.erase(*k); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|