diff --git a/node/Multicaster.cpp b/node/Multicaster.cpp index b9b4d5e0e..bb03e9764 100644 --- a/node/Multicaster.cpp +++ b/node/Multicaster.cpp @@ -373,19 +373,14 @@ void Multicaster::_add(uint64_t now,uint64_t nwid,const MulticastGroup &mg,Multi //TRACE("..MC %s joined multicast group %.16llx/%s via %s",member.toString().c_str(),nwid,mg.toString().c_str(),((learnedFrom) ? learnedFrom.toString().c_str() : "(direct)")); - // Try to send to any outgoing multicasts that are waiting for more recipients - // TODO / LEGACY: don't send new multicast frame to old peers (if we know their version) - SharedPtr p(RR->topology->getPeer(member)); - if ((!p)||(!p->remoteVersionKnown())||(p->remoteVersionMajor() >= 1)) { - for(std::list::iterator tx(gs.txQueue.begin());tx!=gs.txQueue.end();) { - if (tx->atLimit()) { + for(std::list::iterator tx(gs.txQueue.begin());tx!=gs.txQueue.end();) { + if (tx->atLimit()) { + gs.txQueue.erase(tx++); + } else { + tx->sendIfNew(RR,member); + if (tx->atLimit()) gs.txQueue.erase(tx++); - } else { - tx->sendIfNew(RR,member); - if (tx->atLimit()) - gs.txQueue.erase(tx++); - else ++tx; - } + else ++tx; } } }