diff options
-rw-r--r-- | node/IncomingPacket.cpp | 6 |
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) { |