summaryrefslogtreecommitdiff
path: root/node/IncomingPacket.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-10-25 12:42:14 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-10-25 12:42:14 -0700
commit459f1e7bfb50eb7b491940b7106d8788a7a5e11f (patch)
tree0fa4599508274f738dd5537ba67dadb68a16666d /node/IncomingPacket.cpp
parent0d8b8d8426db50cc74b95be8d3878948954a75b3 (diff)
downloadinfinitytier-459f1e7bfb50eb7b491940b7106d8788a7a5e11f.tar.gz
infinitytier-459f1e7bfb50eb7b491940b7106d8788a7a5e11f.zip
Refactor path stability stuff and add basic multipath support.
Diffstat (limited to 'node/IncomingPacket.cpp')
-rw-r--r--node/IncomingPacket.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp
index 9b614e37..dfa0a161 100644
--- a/node/IncomingPacket.cpp
+++ b/node/IncomingPacket.cpp
@@ -446,7 +446,8 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,void *tPtr,const SharedP
}
if (!hops())
- peer->addDirectLatencyMeasurment((unsigned int)latency);
+ _path->updateLatency((unsigned int)latency);
+
peer->setRemoteVersion(vProto,vMajor,vMinor,vRevision);
if ((externalSurfaceAddress)&&(hops() == 0))
@@ -1091,7 +1092,7 @@ bool IncomingPacket::_doPUSH_DIRECT_PATHS(const RuntimeEnvironment *RR,void *tPt
(RR->node->shouldUsePathForZeroTierTraffic(tPtr,peer->address(),_path->localSocket(),a)) ) // should use path
{
if ((flags & ZT_PUSH_DIRECT_PATHS_FLAG_CLUSTER_REDIRECT) != 0) {
- peer->redirect(tPtr,_path->localSocket(),a,now);
+ peer->clusterRedirect(tPtr,_path->localSocket(),a,now);
} else if (++countPerScope[(int)a.ipScope()][0] <= ZT_PUSH_DIRECT_PATHS_MAX_PER_SCOPE_AND_FAMILY) {
peer->attemptToContactAt(tPtr,InetAddress(),a,now,false,0);
}
@@ -1105,7 +1106,7 @@ bool IncomingPacket::_doPUSH_DIRECT_PATHS(const RuntimeEnvironment *RR,void *tPt
(RR->node->shouldUsePathForZeroTierTraffic(tPtr,peer->address(),_path->localSocket(),a)) ) // should use path
{
if ((flags & ZT_PUSH_DIRECT_PATHS_FLAG_CLUSTER_REDIRECT) != 0) {
- peer->redirect(tPtr,_path->localSocket(),a,now);
+ peer->clusterRedirect(tPtr,_path->localSocket(),a,now);
} else if (++countPerScope[(int)a.ipScope()][1] <= ZT_PUSH_DIRECT_PATHS_MAX_PER_SCOPE_AND_FAMILY) {
peer->attemptToContactAt(tPtr,InetAddress(),a,now,false,0);
}