summaryrefslogtreecommitdiff
path: root/node/Capability.hpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-10-24 13:33:53 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-10-24 13:33:53 -0700
commit395d8b31392309d2861cd2d50377aaa8953f42cd (patch)
treedc348c4e9761eaea426971f68022dcec85d5c69b /node/Capability.hpp
parentb92ef67e56f72b8eda9adfccef52a7d7f6642390 (diff)
downloadinfinitytier-395d8b31392309d2861cd2d50377aaa8953f42cd.tar.gz
infinitytier-395d8b31392309d2861cd2d50377aaa8953f42cd.zip
Full and clearer implementation of GitHub issue #588
Diffstat (limited to 'node/Capability.hpp')
-rw-r--r--node/Capability.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/node/Capability.hpp b/node/Capability.hpp
index c0336243..407884ad 100644
--- a/node/Capability.hpp
+++ b/node/Capability.hpp
@@ -278,6 +278,13 @@ public:
b.append((uint32_t)rules[i].v.tag.id);
b.append((uint32_t)rules[i].v.tag.value);
break;
+ case ZT_NETWORK_RULE_MATCH_INTEGER_RANGE:
+ b.append((uint8_t)19);
+ b.append((uint64_t)rules[i].v.intRange.start);
+ b.append((uint64_t)(rules[i].v.intRange.start + (uint64_t)rules[i].v.intRange.end)); // more future-proof
+ b.append((uint16_t)rules[i].v.intRange.idx);
+ b.append((uint8_t)rules[i].v.intRange.format);
+ break;
}
}
}
@@ -366,6 +373,12 @@ public:
rules[ruleCount].v.tag.id = b.template at<uint32_t>(p);
rules[ruleCount].v.tag.value = b.template at<uint32_t>(p + 4);
break;
+ case ZT_NETWORK_RULE_MATCH_INTEGER_RANGE:
+ rules[ruleCount].v.intRange.start = b.template at<uint64_t>(p);
+ rules[ruleCount].v.intRange.end = (uint32_t)(b.template at<uint64_t>(p + 8) - rules[ruleCount].v.intRange.start);
+ rules[ruleCount].v.intRange.idx = b.template at<uint16_t>(p + 16);
+ rules[ruleCount].v.intRange.format = (uint8_t)b[p + 18];
+ break;
}
p += fieldLen;
++ruleCount;