summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2013-10-01 16:01:36 -0400
committerAdam Ierymenko <adam.ierymenko@gmail.com>2013-10-01 16:01:36 -0400
commit3443b203e4035104071f5af0143591dcd48a4974 (patch)
tree149d93cacdd5d1e75abc50ad7bd894844284d5d4 /node/Peer.cpp
parent1a764559863c823da227098701521ed29bec037e (diff)
downloadinfinitytier-3443b203e4035104071f5af0143591dcd48a4974.tar.gz
infinitytier-3443b203e4035104071f5af0143591dcd48a4974.zip
Each peer now tracks the last time it announced multicast LIKEs independently and does so frequently enough to prevent expires. Also add a multicast debug facility for use on the testnet.
Diffstat (limited to 'node/Peer.cpp')
-rw-r--r--node/Peer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp
index 1d22fd1f..1c7eec34 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -26,6 +26,7 @@
*/
#include "Peer.hpp"
+#include "Switch.hpp"
namespace ZeroTier {
@@ -66,6 +67,12 @@ void Peer::onReceive(const RuntimeEnvironment *_r,Demarc::Port localPort,const I
wp->localPort = localPort;
if (!wp->fixed)
wp->addr = remoteAddr;
+
+ if ((now - _lastAnnouncedTo) >= ((ZT_MULTICAST_LIKE_EXPIRE / 2) - 1000)) {
+ _lastAnnouncedTo = now;
+ _r->sw->announceMulticastGroups(SharedPtr<Peer>(this));
+ }
+
_dirty = true;
}