diff options
author | Grant Limberg <grant.limberg@zerotier.com> | 2017-01-05 13:56:15 -0800 |
---|---|---|
committer | Grant Limberg <grant.limberg@zerotier.com> | 2017-01-05 13:56:15 -0800 |
commit | 7ebb207005620ce753bed57e25afddff1bf7e80e (patch) | |
tree | 6b00a3cd8182a971bbeb305169e0b3c3cfa6c7bd /controller/EmbeddedNetworkController.cpp | |
parent | e41d71cd19b4179c0b061d1121527788f388c6e2 (diff) | |
parent | aaf69d1aff59a244990e1c3c1de4ef6bf6ac6a3b (diff) | |
download | infinitytier-7ebb207005620ce753bed57e25afddff1bf7e80e.tar.gz infinitytier-7ebb207005620ce753bed57e25afddff1bf7e80e.zip |
Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev
Diffstat (limited to 'controller/EmbeddedNetworkController.cpp')
-rw-r--r-- | controller/EmbeddedNetworkController.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index df20d4ce..bed76df7 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -310,7 +310,7 @@ static bool _parseRule(json &r,ZT_VirtualNetworkRule &rule) return true; } else if (t == "ACTION_REDIRECT") { rule.t |= ZT_NETWORK_RULE_ACTION_REDIRECT; - rule.v.fwd.address = Utils::hexStrToU64(_jS(r["zt"],"0").c_str()) & 0xffffffffffULL; + rule.v.fwd.address = Utils::hexStrToU64(_jS(r["address"],"0").c_str()) & 0xffffffffffULL; rule.v.fwd.flags = (uint32_t)(_jI(r["flags"],0ULL) & 0xffffffffULL); return true; } else if (t == "ACTION_DEBUG_LOG") { @@ -428,6 +428,7 @@ static bool _parseRule(json &r,ZT_VirtualNetworkRule &rule) } else if (t == "MATCH_RANDOM") { rule.t |= ZT_NETWORK_RULE_MATCH_RANDOM; rule.v.randomProbability = (uint32_t)(_jI(r["probability"],0ULL) & 0xffffffffULL); + return true; } 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); @@ -1286,7 +1287,8 @@ void EmbeddedNetworkController::_request( authorizedBy = "memberIsAuthorized"; } else if (!_jB(network["private"],true)) { authorizedBy = "networkIsPublic"; - if (!member.count("authorized")) + json &ahist = member["authHistory"]; + if ((!ahist.is_array())||(ahist.size() == 0)) autoAuthorized = true; } else { char presentedAuth[512]; |