diff --git a/node/EthernetTap.hpp b/node/EthernetTap.hpp index 1b35aefbc..02bd25ae7 100644 --- a/node/EthernetTap.hpp +++ b/node/EthernetTap.hpp @@ -148,15 +148,23 @@ public: for(std::set::iterator i(allIps.begin());i!=allIps.end();++i) addIP(*i); std::set myIps(ips()); +#ifdef __APPLE__ bool haveV6LinkLocal = false; for(std::set::iterator i(myIps.begin());i!=myIps.end();++i) { - if ((i->isV6())&&(i->isLinkLocal())) - haveV6LinkLocal = true; - else if (!allIps.count(*i)) + if (i->isLinkLocal()) { + if (i->isV6()) + haveV6LinkLocal = true; + } else if (!allIps.count(*i)) removeIP(*i); } if (!haveV6LinkLocal) addIP(InetAddress::makeIpv6LinkLocal(_mac)); +#else + for(std::set::iterator i(myIps.begin());i!=myIps.end();++i) { + if ((!i->isLinkLocal())&&(!allIps.count(*i))) + removeIP(*i); + } +#endif } /**