Browse Source

Check multicast limit on send after NDP emulation code.

pull/1/head
Adam Ierymenko 10 years ago
parent
commit
e1fbf7b34c
  1. 11
      node/Switch.cpp

11
node/Switch.cpp

@ -349,11 +349,6 @@ void Switch::onLocalEthernet(const SharedPtr<Network> &network,const MAC &from,c
}
if (to.isMulticast()) {
if (network->config().multicastLimit == 0) {
TRACE("%.16llx: dropped multicast: not allowed on network",network->id());
return;
}
MulticastGroup multicastGroup(to,0);
if (to.isBroadcast()) {
@ -457,6 +452,12 @@ void Switch::onLocalEthernet(const SharedPtr<Network> &network,const MAC &from,c
} // else no NDP emulation
}
// Check this after NDP emulation, since that has to be allowed in exactly this case
if (network->config().multicastLimit == 0) {
TRACE("%.16llx: dropped multicast: not allowed on network",network->id());
return;
}
/* Learn multicast groups for bridged-in hosts.
* Note that some OSes, most notably Linux, do this for you by learning
* multicast addresses on bridge interfaces and subscribing each slave.

Loading…
Cancel
Save