summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-10-09 09:02:46 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-10-09 09:03:12 -0700
commit620e64c58f1332d6b9948108dcd1ebf99223074d (patch)
treef4fde527aca8e3c93e657b261ee87aefe2f58a26 /node
parentb809dad94aeb59d591745034b86b273633aaf925 (diff)
downloadinfinitytier-620e64c58f1332d6b9948108dcd1ebf99223074d.tar.gz
infinitytier-620e64c58f1332d6b9948108dcd1ebf99223074d.zip
Supernode propagation of legacy multicast frames was brokezored.
Diffstat (limited to 'node')
-rw-r--r--node/IncomingPacket.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp
index 4f449d3e..80988130 100644
--- a/node/IncomingPacket.cpp
+++ b/node/IncomingPacket.cpp
@@ -584,16 +584,18 @@ bool IncomingPacket::_doP5_MULTICAST_FRAME(const RuntimeEnvironment *RR,const Sh
std::vector<Address> legacyPeers(RR->mc->getLegacySubscribers(nwid,dest));
setAt(ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_DEPTH,(uint16_t)0xffff);
+ setSource(RR->identity.address());
+ compress();
for(std::vector<Address>::iterator lp(legacyPeers.begin());lp!=legacyPeers.end();++lp) {
if ((*lp != origin)&&(*lp != source())) {
newInitializationVector();
setDestination(*lp);
- setSource(RR->identity.address());
- compress();
RR->sw->send(*this,true);
}
}
+
+ return true;
} else {
SharedPtr<Network> network(RR->nc->network(nwid)); // will be NULL if not a member
if (network) {