summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@zerotier.com>2018-04-18 08:05:51 -0700
committerGitHub <noreply@github.com>2018-04-18 08:05:51 -0700
commitc2ffbb8627d8cb83b4502dd506d7b3263822beef (patch)
tree02f574af0d9b88a8af535db0c8254c491d208976
parent3de7691af306f86b5b3aa6fb15777841e9ba1388 (diff)
parent73ca9b6373a758bcba7d589064dd2cfb27208d3a (diff)
downloadinfinitytier-c2ffbb8627d8cb83b4502dd506d7b3263822beef.tar.gz
infinitytier-c2ffbb8627d8cb83b4502dd506d7b3263822beef.zip
Merge pull request #673 from neutronscott/dev
check physical blacklist for interface binding as well
-rw-r--r--service/OneService.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp
index abbd6e75..4d1c792f 100644
--- a/service/OneService.cpp
+++ b/service/OneService.cpp
@@ -2414,7 +2414,22 @@ public:
return false;
}
}
-
+ {
+ // Check global blacklists
+ const std::vector<InetAddress> *gbl = (const std::vector<InetAddress> *)0;
+ if (ifaddr.ss_family == AF_INET) {
+ gbl = &_globalV4Blacklist;
+ } else if (ifaddr.ss_family == AF_INET6) {
+ gbl = &_globalV6Blacklist;
+ }
+ if (gbl) {
+ Mutex::Lock _l(_localConfig_m);
+ for(std::vector<InetAddress>::const_iterator a(gbl->begin());a!=gbl->end();++a) {
+ if (a->containsAddress(ifaddr))
+ return false;
+ }
+ }
+ }
{
Mutex::Lock _l(_nets_m);
for(std::map<uint64_t,NetworkState>::const_iterator n(_nets.begin());n!=_nets.end();++n) {