diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2017-02-04 10:21:31 -0800 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2017-02-04 10:21:31 -0800 |
| commit | beb642faa58bb3c2c283a068e6de942bfad2c314 (patch) | |
| tree | 118f9ad3ee4cb6bdf7f5655e78b82b545abe44d5 /node/IncomingPacket.cpp | |
| parent | 31db768e4d4c2815d2be0493b2c76ea5f5edbffa (diff) | |
| download | infinitytier-beb642faa58bb3c2c283a068e6de942bfad2c314.tar.gz infinitytier-beb642faa58bb3c2c283a068e6de942bfad2c314.zip | |
Stub out CAN_REACH.
Diffstat (limited to 'node/IncomingPacket.cpp')
| -rw-r--r-- | node/IncomingPacket.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index c11b0377..cecbe2fa 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -413,7 +413,10 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,const SharedPtr<Peer> &p switch(inReVerb) { case Packet::VERB_HELLO: { - const unsigned int latency = std::min((unsigned int)(RR->node->now() - at<uint64_t>(ZT_PROTO_VERB_HELLO__OK__IDX_TIMESTAMP)),(unsigned int)0xffff); + const uint64_t latency = RR->node->now() - at<uint64_t>(ZT_PROTO_VERB_HELLO__OK__IDX_TIMESTAMP); + if (latency > ZT_HELLO_MAX_ALLOWABLE_LATENCY) + return true; + const unsigned int vProto = (*this)[ZT_PROTO_VERB_HELLO__OK__IDX_PROTOCOL_VERSION]; const unsigned int vMajor = (*this)[ZT_PROTO_VERB_HELLO__OK__IDX_MAJOR_VERSION]; const unsigned int vMinor = (*this)[ZT_PROTO_VERB_HELLO__OK__IDX_MINOR_VERSION]; @@ -445,7 +448,7 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,const SharedPtr<Peer> &p TRACE("%s(%s): OK(HELLO), version %u.%u.%u, latency %u, reported external address %s",source().toString().c_str(),_path->address().toString().c_str(),vMajor,vMinor,vRevision,latency,((externalSurfaceAddress) ? externalSurfaceAddress.toString().c_str() : "(none)")); if (!hops()) - peer->addDirectLatencyMeasurment(latency); + peer->addDirectLatencyMeasurment((unsigned int)latency); peer->setRemoteVersion(vProto,vMajor,vMinor,vRevision); if ((externalSurfaceAddress)&&(hops() == 0)) |
