From 8a7753cfe3824ad378e779140fdd99f5c2873642 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 4 Aug 2016 12:35:25 -0700 Subject: Filter cleanup, prep for filter integration in a few places. --- node/Filter.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'node/Filter.cpp') diff --git a/node/Filter.cpp b/node/Filter.cpp index 2980149b..286a0144 100644 --- a/node/Filter.cpp +++ b/node/Filter.cpp @@ -66,7 +66,8 @@ bool Filter::run( const unsigned int vlanId, const ZT_VirtualNetworkRule *rules, const unsigned int ruleCount, - const Tag *tags, + const uint32_t *tagKeys, + const uint32_t *tagValues, const unsigned int tagCount, Address &sendCopyOfPacketTo) { @@ -248,13 +249,13 @@ bool Filter::run( case ZT_NETWORK_RULE_MATCH_TAG_VALUE_BITS_ALL: case ZT_NETWORK_RULE_MATCH_TAG_VALUE_BITS_ANY: for(unsigned int i=0;i= rules[rn].v.tag.value[0])&&(tags[i].value() <= rules[rn].v.tag.value[1])); + thisRuleMatches = (uint8_t)((tagValues[i] >= rules[rn].v.tag.value[0])&&(tagValues[i] <= rules[rn].v.tag.value[1])); } else if (rt == ZT_NETWORK_RULE_MATCH_TAG_VALUE_BITS_ALL) { - thisRuleMatches = (uint8_t)((tags[i].value() & rules[rn].v.tag.value[0]) == rules[rn].v.tag.value[0]); + thisRuleMatches = (uint8_t)((tagValues[i] & rules[rn].v.tag.value[0]) == rules[rn].v.tag.value[0]); } else if (rt == ZT_NETWORK_RULE_MATCH_TAG_VALUE_BITS_ANY) { - thisRuleMatches = (uint8_t)((tags[i].value() & rules[rn].v.tag.value[0]) != 0); + thisRuleMatches = (uint8_t)((tagValues[i] & rules[rn].v.tag.value[0]) != 0); } break; } -- cgit v1.2.3