diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-10-20 17:36:10 -0700 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-10-20 17:36:10 -0700 |
| commit | 978b056a0134edd9598a3edb219b31c61405c3b4 (patch) | |
| tree | 8aaade77b1b3189147c48f768f3d0850030e05c2 /node/Peer.cpp | |
| parent | 6a7b47e5e19687b2dda19449d4f0758388065077 (diff) | |
| download | infinitytier-978b056a0134edd9598a3edb219b31c61405c3b4.tar.gz infinitytier-978b056a0134edd9598a3edb219b31c61405c3b4.zip | |
Wire in redirectPeer(), now about ready to test clustering!
Diffstat (limited to 'node/Peer.cpp')
| -rw-r--r-- | node/Peer.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp index 45e2fedd..fa7b3aa4 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -82,6 +82,7 @@ void Peer::received( { const uint64_t now = RR->node->now(); bool needMulticastGroupAnnounce = false; + bool pathIsConfirmed = false; { Mutex::Lock _l(_lock); @@ -89,8 +90,6 @@ void Peer::received( _lastReceive = now; if (!hops) { - bool pathIsConfirmed = false; - /* Learn new paths from direct (hops == 0) packets */ { unsigned int np = _numPaths; @@ -141,11 +140,6 @@ void Peer::received( } } } - -#ifdef ZT_ENABLE_CLUSTER - if ((pathIsConfirmed)&&(RR->cluster)) - RR->cluster->replicateHavePeer(_id); -#endif } if ((now - _lastAnnouncedTo) >= ((ZT_MULTICAST_LIKE_EXPIRE / 2) - 1000)) { @@ -159,6 +153,14 @@ void Peer::received( _lastMulticastFrame = now; } +#ifdef ZT_ENABLE_CLUSTER + if ((pathIsConfirmed)&&(RR->cluster)) { + // Either shuttle this peer off somewhere else or report to other members that we have it + if (!RR->cluster->redirectPeer(_id.address(),remoteAddr,false)) + RR->cluster->replicateHavePeer(_id); + } +#endif + if (needMulticastGroupAnnounce) { const std::vector< SharedPtr<Network> > networks(RR->node->allNetworks()); for(std::vector< SharedPtr<Network> >::const_iterator n(networks.begin());n!=networks.end();++n) |
