diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-08-05 15:55:38 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-08-05 15:55:38 -0700 |
commit | 4d7f625aa10e422395f92520c645dff40ad83d3c (patch) | |
tree | 811d9fc1c97446a292a409875ecd161c111a824d /node/Network.cpp | |
parent | e2f783ebbd39466bc03bf115b20064d222b91944 (diff) | |
download | infinitytier-4d7f625aa10e422395f92520c645dff40ad83d3c.tar.gz infinitytier-4d7f625aa10e422395f92520c645dff40ad83d3c.zip |
.
Diffstat (limited to 'node/Network.cpp')
-rw-r--r-- | node/Network.cpp | 38 |
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 |