mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-14 21:28:17 +00:00
Add new rule to rules engine: random match.
This commit is contained in:
@ -260,6 +260,11 @@ static json _renderRule(ZT_VirtualNetworkRule &rule)
|
||||
r["start"] = (unsigned int)rule.v.frameSize[0];
|
||||
r["end"] = (unsigned int)rule.v.frameSize[1];
|
||||
break;
|
||||
case ZT_NETWORK_RULE_MATCH_RANDOM:
|
||||
r["type"] = "MATCH_RANDOM";
|
||||
r["not"] = ((rule.t & 0x80) != 0);
|
||||
r["probability"] = (unsigned long)rule.v.randomProbability;
|
||||
break;
|
||||
case ZT_NETWORK_RULE_MATCH_TAGS_DIFFERENCE:
|
||||
r["type"] = "MATCH_TAGS_DIFFERENCE";
|
||||
r["not"] = ((rule.t & 0x80) != 0);
|
||||
@ -441,6 +446,9 @@ static bool _parseRule(json &r,ZT_VirtualNetworkRule &rule)
|
||||
rule.v.frameSize[0] = (uint16_t)(_jI(r["start"],0ULL) & 0xffffULL);
|
||||
rule.v.frameSize[1] = (uint16_t)(_jI(r["end"],(uint64_t)rule.v.frameSize[0]) & 0xffffULL);
|
||||
return true;
|
||||
} else if (t == "MATCH_RANDOM") {
|
||||
rule.t |= ZT_NETWORK_RULE_MATCH_RANDOM;
|
||||
rule.v.randomProbability = (uint32_t)(_jI(r["probability"],0ULL) & 0xffffffffULL);
|
||||
} else if (t == "MATCH_TAGS_DIFFERENCE") {
|
||||
rule.t |= ZT_NETWORK_RULE_MATCH_TAGS_DIFFERENCE;
|
||||
rule.v.tag.id = (uint32_t)(_jI(r["id"],0ULL) & 0xffffffffULL);
|
||||
|
Reference in New Issue
Block a user