diff options
-rw-r--r-- | node/Peer.cpp | 10 | ||||
-rw-r--r-- | version.h | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp index 8c2c9f9b..e7db125d 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -83,18 +83,20 @@ void Peer::onReceive( _r->sw->announceMulticastGroups(SharedPtr<Peer>(this)); } + // Update last receive info for our direct path + WanPath *const wp = (remoteAddr.isV4() ? &_ipv4p : &_ipv6p); + wp->lastReceive = now; + wp->localPort = ((localPort) ? localPort : Demarc::ANY_PORT); + // Do things like learn latency or endpoints on OK or ERROR replies if (inReVerb != Packet::VERB_NOP) { for(unsigned int p=0;p<ZT_PEER_REQUEST_HISTORY_LENGTH;++p) { if ((_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 paths + // 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. - WanPath *const wp = (remoteAddr.isV4() ? &_ipv4p : &_ipv6p); - wp->lastReceive = now; - wp->localPort = ((localPort) ? localPort : Demarc::ANY_PORT); if (!wp->fixed) wp->addr = remoteAddr; @@ -41,6 +41,6 @@ /** * Revision */ -#define ZEROTIER_ONE_VERSION_REVISION 4 +#define ZEROTIER_ONE_VERSION_REVISION 5 #endif |