summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
Diffstat (limited to 'service')
-rw-r--r--service/OneService.cpp21
-rw-r--r--service/README.md2
2 files changed, 21 insertions, 2 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp
index 4b0306a1..e7229717 100644
--- a/service/OneService.cpp
+++ b/service/OneService.cpp
@@ -126,6 +126,10 @@ namespace ZeroTier { typedef WindowsEthernetTap EthernetTap; }
#include "../osdep/BSDEthernetTap.hpp"
namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
#endif // __FreeBSD__
+#ifdef __NetBSD__
+#include "../osdep/NetBSDEthernetTap.hpp"
+namespace ZeroTier { typedef NetBSDEthernetTap EthernetTap; }
+#endif // __NetBSD__
#ifdef __OpenBSD__
#include "../osdep/BSDEthernetTap.hpp"
namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
@@ -2671,7 +2675,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) {
diff --git a/service/README.md b/service/README.md
index 9ac097ab..da29d3d0 100644
--- a/service/README.md
+++ b/service/README.md
@@ -60,7 +60,7 @@ An example `local.conf`:
},
"settings": {
"softwareUpdate": "apply",
- "softwraeUpdateChannel": "release"
+ "softwareUpdateChannel": "release"
}
}
```