From fe530548bbc8d4d0e274f814718fad579a012812 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 22 Dec 2016 16:57:45 -0800 Subject: Fix MATCH_RANDOM in controller. --- controller/EmbeddedNetworkController.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'controller/EmbeddedNetworkController.cpp') diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index df20d4ce..01a7152c 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -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); -- cgit v1.2.3 From 0d066e3b08b723dc5fe3630fbf6a6d2a5a3f0baf Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 22 Dec 2016 18:26:43 -0800 Subject: Fix JSON parse bug in REDIRECT target. --- controller/EmbeddedNetworkController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'controller/EmbeddedNetworkController.cpp') diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index 01a7152c..ee243777 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") { -- cgit v1.2.3 From bf2b9e3692c1a20dd7af3d8bfca4b6c591cd2214 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 22 Dec 2016 18:52:34 -0800 Subject: Auto-authorize new members on public networks properly. --- controller/EmbeddedNetworkController.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'controller/EmbeddedNetworkController.cpp') diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index ee243777..bed76df7 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -1287,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]; -- cgit v1.2.3