summaryrefslogtreecommitdiff
path: root/node/Network.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-05 15:55:38 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-05 15:55:38 -0700
commit4d7f625aa10e422395f92520c645dff40ad83d3c (patch)
tree811d9fc1c97446a292a409875ecd161c111a824d /node/Network.cpp
parente2f783ebbd39466bc03bf115b20064d222b91944 (diff)
downloadinfinitytier-4d7f625aa10e422395f92520c645dff40ad83d3c.tar.gz
infinitytier-4d7f625aa10e422395f92520c645dff40ad83d3c.zip
.
Diffstat (limited to 'node/Network.cpp')
-rw-r--r--node/Network.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index 314edf5c..1c894306 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -482,6 +482,44 @@ bool Network::filterIncomingPacket(
const unsigned int etherType,
const unsigned int vlanId)
{
+ uint32_t remoteTagIds[ZT_MAX_NETWORK_TAGS];
+ uint32_t remoteTagValues[ZT_MAX_NETWORK_TAGS];
+ const Tag *relevantLocalTags[ZT_MAX_NETWORK_TAGS];
+ unsigned int relevantLocalTagCount = 0;
+
+ Mutex::Lock _l(_lock);
+
+ Membership &m = _memberships[ztDest];
+ const unsigned int remoteTagCount = m.getAllTags(_config,remoteTagIds,remoteTagValues,ZT_MAX_NETWORK_TAGS);
+
+ if (_doZtFilter(
+ RR,
+ _id,
+ true,
+ sourcePeer->address(),
+ ztDest,
+ macSource,
+ macDest,
+ frameData,
+ frameLen,
+ etherType,
+ vlanId,
+ _config.rules,
+ _config.ruleCount,
+ _config.tags,
+ _config.tagCount,
+ remoteTagIds,
+ remoteTagValues,
+ remoteTagCount,
+ relevantLocalTags,
+ relevantLocalTagCount
+ )) {
+ return true;
+ }
+
+
+
+ return false;
}
bool Network::subscribedToMulticastGroup(const MulticastGroup &mg,bool includeBridgedGroups) const