Browse Source

Cancel NAT-t attempts if peer is no longer "alive"

Adam Ierymenko 10 years ago
parent
commit
21e6850722
1 changed files with 2 additions and 2 deletions
  1. 2 2
      node/Switch.cpp

+ 2 - 2
node/Switch.cpp

@@ -452,8 +452,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->hasActiveDirectPath(now)) {
-					// We've successfully NAT-t'd, so cancel attempt
+				if ((!qi->peer->alive(now))||(qi->peer->hasActiveDirectPath(now))) {
+					// Cancel attempt if we've already connected or peer is no longer "alive"
 					_contactQueue.erase(qi++);
 					continue;
 				} else {