summaryrefslogtreecommitdiff
path: root/node/Switch.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-31 16:50:22 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-31 16:50:22 -0700
commit74afef8eb1d96aec291c6dfeca31e69a2ad33d69 (patch)
tree7b976206799fd9260e5f51d4a33fbd694a81e28c /node/Switch.cpp
parent54489a7f61a19b07eaa5a87d1df2ee30101f29ee (diff)
downloadinfinitytier-74afef8eb1d96aec291c6dfeca31e69a2ad33d69.tar.gz
infinitytier-74afef8eb1d96aec291c6dfeca31e69a2ad33d69.zip
Think through and refine a few things in rules, especially edge case TEE and REDIRECT behavior and semantics.
Diffstat (limited to 'node/Switch.cpp')
-rw-r--r--node/Switch.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/node/Switch.cpp b/node/Switch.cpp
index 546c9157..8e41c89f 100644
--- a/node/Switch.cpp
+++ b/node/Switch.cpp
@@ -437,10 +437,7 @@ void Switch::onLocalEthernet(const SharedPtr<Network> &network,const MAC &from,c
//TRACE("%.16llx: MULTICAST %s -> %s %s %u",network->id(),from.toString().c_str(),mg.toString().c_str(),etherTypeName(etherType),len);
- // We filter with a NULL destination ZeroTier address first. Filtrations
- // for each ZT destination are also done in OutboundMulticast, but these
- // set noRedirect to true. This prevents multiple TEEs and REDIRECTs for
- // multicast packets.
+ // First pass sets noTee to false, but noTee is set to true in OutboundMulticast to prevent duplicates.
if (!network->filterOutgoingPacket(false,RR->identity.address(),Address(),from,to,(const uint8_t *)data,len,etherType,vlanId)) {
TRACE("%.16llx: %s -> %s %s packet not sent: filterOutgoingPacket() returned false",network->id(),from.toString().c_str(),to.toString().c_str(),etherTypeName(etherType));
return;