diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-11-21 15:21:24 -0800 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-11-21 15:21:24 -0800 |
commit | d159e5ca4400db6b6b1fc18d0e917fb0cca60627 (patch) | |
tree | 352957288481625bacfbf20b876e2103ddd59619 | |
parent | 40078a99de423bb437acd2fcc1c42a9f920b0cfa (diff) | |
download | infinitytier-d159e5ca4400db6b6b1fc18d0e917fb0cca60627.tar.gz infinitytier-d159e5ca4400db6b6b1fc18d0e917fb0cca60627.zip |
Allow relay policy setting in local.conf
-rw-r--r-- | service/OneService.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp index 289f0cbc..efb6ff3c 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -883,7 +883,7 @@ public: json &virt = _localConfig["virtual"]; if (virt.is_object()) { for(json::iterator v(virt.begin());v!=virt.end();++v) { - std::string nstr = v.key(); + const std::string nstr = v.key(); if ((nstr.length() == ZT_ADDRESS_LENGTH_HEX)&&(v.value().is_object())) { const Address ztaddr(nstr.c_str()); if (ztaddr) @@ -891,6 +891,17 @@ public: } } } + + // Set any other local config stuff + json &settings = _localConfig["settings"]; + if (settings.is_object()) { + const std::string rp(_jS(settings["relayPolicy"],"")); + if (rp == "always") + _node->setRelayPolicy(ZT_RELAY_POLICY_ALWAYS); + else if (rp == "never") + _node->setRelayPolicy(ZT_RELAY_POLICY_NEVER); + else _node->setRelayPolicy(ZT_RELAY_POLICY_TRUSTED); + } } _controller = new EmbeddedNetworkController(_node,(_homePath + ZT_PATH_SEPARATOR_S + ZT_CONTROLLER_DB_PATH).c_str()); |