소스 검색

VERSION 0.6.7: revert change for GitHub issue #20

This will have to be thought out more. The old version worked fine 99% of the
time so we'll revisit this.
Adam Ierymenko 11 년 전
부모
커밋
9f28eec95c
2개의 변경된 파일4개의 추가작업 그리고 17개의 파일을 삭제
  1. 3 16
      node/Peer.cpp
  2. 1 1
      version.h

+ 3 - 16
node/Peer.cpp

@@ -87,32 +87,19 @@ void Peer::onReceive(
 		WanPath *const wp = (remoteAddr.isV4() ? &_ipv4p : &_ipv6p);
 		wp->lastReceive = now;
 		wp->localPort = ((localPort) ? localPort : Demarc::ANY_PORT);
+		if (!wp->fixed)
+			wp->addr = remoteAddr;
 
-		// Do things like learn latency or endpoints on OK or ERROR replies
+		// Learn latency from replies
 		if (inReVerb != Packet::VERB_NOP) {
 			for(unsigned int p=0;p<ZT_PEER_REQUEST_HISTORY_LENGTH;++p) {
 				if ((_requestHistory[p].timestamp)&&(_requestHistory[p].packetId == inRePacketId)&&(_requestHistory[p].verb == inReVerb)) {
 					_latency = std::min((unsigned int)(now - _requestHistory[p].timestamp),(unsigned int)0xffff);
-
-					// Only learn paths on replies to packets we have sent, otherwise
-					// this introduces both an asymmetry problem in NAT-t and a potential
-					// reply DOS attack.
-					if (!wp->fixed) {
-						wp->addr = remoteAddr;
-						TRACE("peer %s learned endpoint %s from %s(%s)",address().toString().c_str(),remoteAddr.toString().c_str(),Packet::verbString(verb),Packet::verbString(inReVerb));
-					}
-
 					_requestHistory[p].timestamp = 0;
 					break;
 				}
 			}
 		}
-
-		// If we get a valid packet with a different address that is not a response
-		// to a request, send a PROBE to authenticate this endpoint and determine if
-		// it is reachable.
-		if ((!wp->fixed)&&(wp->addr != remoteAddr))
-			_r->sw->sendPROBE(SharedPtr<Peer>(this),localPort,remoteAddr);
 	}
 
 	if (verb == Packet::VERB_FRAME) {

+ 1 - 1
version.h

@@ -41,6 +41,6 @@
 /**
  * Revision
  */
-#define ZEROTIER_ONE_VERSION_REVISION 6
+#define ZEROTIER_ONE_VERSION_REVISION 7
 
 #endif