diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-11-24 10:05:16 -0800 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-11-24 10:05:16 -0800 |
commit | d772639cc67365cd6a20ccb3b1a0850620494a12 (patch) | |
tree | e62326dd6d3803652bc2463e23bf344ea7d3f840 /node | |
parent | acac88cf773ad51d0a47cd401ce6044f538fcde7 (diff) | |
download | infinitytier-d772639cc67365cd6a20ccb3b1a0850620494a12.tar.gz infinitytier-d772639cc67365cd6a20ccb3b1a0850620494a12.zip |
Multicast code cleanup.
Diffstat (limited to 'node')
-rw-r--r-- | node/Multicaster.cpp | 26 | ||||
-rw-r--r-- | node/OutboundMulticast.hpp | 2 |
2 files changed, 14 insertions, 14 deletions
diff --git a/node/Multicaster.cpp b/node/Multicaster.cpp index 5583b65b..34cbabe6 100644 --- a/node/Multicaster.cpp +++ b/node/Multicaster.cpp @@ -304,6 +304,7 @@ void Multicaster::send( // supernode. Our supernode then takes care of relaying it down to <1.0.0 // nodes. This code can go away (along with support for P5_MULTICAST_FRAME) // once there are no more such nodes on the network. +#if 0 { SharedPtr<Peer> sn(RR->topology->getBestSupernode()); if (sn) { @@ -342,32 +343,31 @@ void Multicaster::send( sn->send(RR,outp.data(),outp.size(),now); } } +#endif } void Multicaster::clean(uint64_t now) { Mutex::Lock _l(_groups_m); for(std::map< std::pair<uint64_t,MulticastGroup>,MulticastGroupStatus >::iterator mm(_groups.begin());mm!=_groups.end();) { - // Remove expired outgoing multicasts from multicast TX queue for(std::list<OutboundMulticast>::iterator tx(mm->second.txQueue.begin());tx!=mm->second.txQueue.end();) { if ((tx->expired(now))||(tx->atLimit())) mm->second.txQueue.erase(tx++); else ++tx; } - // Remove expired members from membership list, and update rank - // so that remaining members can be sorted in ascending order of - // transmit priority. - std::vector<MulticastGroupMember>::iterator reader(mm->second.members.begin()); - std::vector<MulticastGroupMember>::iterator writer(reader); - unsigned int count = 0; - while (reader != mm->second.members.end()) { - if ((now - reader->timestamp) < ZT_MULTICAST_LIKE_EXPIRE) { - *writer = *reader; - ++writer; - ++count; + unsigned long count = 0; + { + std::vector<MulticastGroupMember>::iterator reader(mm->second.members.begin()); + std::vector<MulticastGroupMember>::iterator writer(reader); + while (reader != mm->second.members.end()) { + if ((now - reader->timestamp) < ZT_MULTICAST_LIKE_EXPIRE) { + *writer = *reader; + ++writer; + ++count; + } + ++reader; } - ++reader; } if (count) { diff --git a/node/OutboundMulticast.hpp b/node/OutboundMulticast.hpp index f87656eb..b3ca36a5 100644 --- a/node/OutboundMulticast.hpp +++ b/node/OutboundMulticast.hpp @@ -133,7 +133,7 @@ public: */ inline bool sendIfNew(const RuntimeEnvironment *RR,const Address &toAddr) { - for(std::vector<Address>::iterator a(_alreadySentTo.begin());a!=_alreadySentTo.end();++a) { + for(std::vector<Address>::const_iterator a(_alreadySentTo.begin());a!=_alreadySentTo.end();++a) { if (*a == toAddr) return false; } |