diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-10-01 16:01:36 -0400 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-10-01 16:01:36 -0400 |
| commit | 3443b203e4035104071f5af0143591dcd48a4974 (patch) | |
| tree | 149d93cacdd5d1e75abc50ad7bd894844284d5d4 /node/Peer.cpp | |
| parent | 1a764559863c823da227098701521ed29bec037e (diff) | |
| download | infinitytier-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.cpp | 7 |
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; } |
