mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-06 20:43:44 +02:00
Supernode propagation of legacy multicast frames was brokezored.
This commit is contained in:
parent
b809dad94a
commit
620e64c58f
1 changed files with 4 additions and 2 deletions
|
@ -584,16 +584,18 @@ bool IncomingPacket::_doP5_MULTICAST_FRAME(const RuntimeEnvironment *RR,const Sh
|
||||||
std::vector<Address> legacyPeers(RR->mc->getLegacySubscribers(nwid,dest));
|
std::vector<Address> legacyPeers(RR->mc->getLegacySubscribers(nwid,dest));
|
||||||
|
|
||||||
setAt(ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_DEPTH,(uint16_t)0xffff);
|
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) {
|
for(std::vector<Address>::iterator lp(legacyPeers.begin());lp!=legacyPeers.end();++lp) {
|
||||||
if ((*lp != origin)&&(*lp != source())) {
|
if ((*lp != origin)&&(*lp != source())) {
|
||||||
newInitializationVector();
|
newInitializationVector();
|
||||||
setDestination(*lp);
|
setDestination(*lp);
|
||||||
setSource(RR->identity.address());
|
|
||||||
compress();
|
|
||||||
RR->sw->send(*this,true);
|
RR->sw->send(*this,true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
SharedPtr<Network> network(RR->nc->network(nwid)); // will be NULL if not a member
|
SharedPtr<Network> network(RR->nc->network(nwid)); // will be NULL if not a member
|
||||||
if (network) {
|
if (network) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue