diff options
| author | Michał Zieliński <michal@zielinscy.org.pl> | 2017-01-22 23:02:34 +0100 |
|---|---|---|
| committer | Michał Zieliński <michal@zielinscy.org.pl> | 2017-01-23 12:16:40 +0100 |
| commit | 8f2a42d1ad84e5dba590e7f593d8a46cc81389b3 (patch) | |
| tree | e61e1ff9fb430eb1d9eadf16ed5daacfa9551071 /service/ControlPlane.cpp | |
| parent | 9a475eeff90a181af0661b87b09af7337e39167a (diff) | |
| download | infinitytier-8f2a42d1ad84e5dba590e7f593d8a46cc81389b3.tar.gz infinitytier-8f2a42d1ad84e5dba590e7f593d8a46cc81389b3.zip | |
allow user to specify arbitrary allowed IP networks in allowManaged
Diffstat (limited to 'service/ControlPlane.cpp')
| -rw-r--r-- | service/ControlPlane.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/service/ControlPlane.cpp b/service/ControlPlane.cpp index 86158a91..27027d3b 100644 --- a/service/ControlPlane.cpp +++ b/service/ControlPlane.cpp @@ -121,6 +121,15 @@ static void _jsonAppend(unsigned int depth,std::string &buf,const ZT_VirtualNetw case ZT_NETWORK_TYPE_PUBLIC: ntype = "PUBLIC"; break; } + std::string allowManaged = (localSettings.allowManaged) ? "true" : "false"; + if (localSettings.allowManagedWhitelist.size() != 0) { + allowManaged = ""; + for (InetAddress address : localSettings.allowManagedWhitelist) { + if (allowManaged.size() != 0) allowManaged += ','; + allowManaged += address.toIpString() + "/" + std::to_string(address.netmaskBits()); + } + } + Utils::snprintf(json,sizeof(json), "%s{\n" "%s\t\"id\": \"%.16llx\",\n" @@ -158,7 +167,7 @@ static void _jsonAppend(unsigned int depth,std::string &buf,const ZT_VirtualNetw prefix,_jsonEnumerate(nc->assignedAddresses,nc->assignedAddressCount).c_str(), prefix,_jsonEnumerate(nc->routes,nc->routeCount).c_str(), prefix,_jsonEscape(portDeviceName).c_str(), - prefix,(localSettings.allowManaged) ? "true" : "false", + prefix,allowManaged.c_str(), prefix,(localSettings.allowGlobal) ? "true" : "false", prefix,(localSettings.allowDefault) ? "true" : "false", prefix); |
