diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-01-11 09:11:35 -0800 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-01-11 09:11:35 -0800 |
commit | eea634a43204473b846941245b934e4c0ddd9bc2 (patch) | |
tree | 386af43eed68dc37a3765c44b6ac8cd4de776c12 | |
parent | ab19e19f00dcefc530d061cbeb6b149eae329362 (diff) | |
download | infinitytier-eea634a43204473b846941245b934e4c0ddd9bc2.tar.gz infinitytier-eea634a43204473b846941245b934e4c0ddd9bc2.zip |
Refactor to eliminate copypasta.
-rw-r--r-- | service/OneService.cpp | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp index f17d2194..57e1718d 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -763,6 +763,13 @@ public: if ((now - lastLocalInterfaceAddressCheck) >= ZT_LOCAL_INTERFACE_CHECK_INTERVAL) { lastLocalInterfaceAddressCheck = now; + _node->clearLocalInterfaceAddresses(); +#ifdef ZT_USE_MINIUPNPC + std::vector<InetAddress> mappedAddresses(_portMapper->get()); + for(std::vector<InetAddress>::const_iterator ext(mappedAddresses.begin());ext!=mappedAddresses.end();++ext) + _node->addLocalInterfaceAddress(reinterpret_cast<const struct sockaddr_storage *>(&(*ext))); +#endif + #ifdef __UNIX_LIKE__ std::vector<std::string> ztDevices; { @@ -770,15 +777,6 @@ public: for(std::map< uint64_t,EthernetTap *>::const_iterator t(_taps.begin());t!=_taps.end();++t) ztDevices.push_back(t->second->deviceName()); } - - _node->clearLocalInterfaceAddresses(); - -#ifdef ZT_USE_MINIUPNPC - std::vector<InetAddress> mappedAddresses(_portMapper->get()); - for(std::vector<InetAddress>::const_iterator ext(mappedAddresses.begin());ext!=mappedAddresses.end();++ext) - _node->addLocalInterfaceAddress(reinterpret_cast<const struct sockaddr_storage *>(&(*ext))); -#endif - struct ifaddrs *ifatbl = (struct ifaddrs *)0; if ((getifaddrs(&ifatbl) == 0)&&(ifatbl)) { struct ifaddrs *ifa = ifatbl; @@ -810,15 +808,6 @@ public: for(std::map< uint64_t,EthernetTap *>::const_iterator t(_taps.begin());t!=_taps.end();++t) ztDevices.push_back(t->second->luid()); } - - _node->clearLocalInterfaceAddresses(); - -#ifdef ZT_USE_MINIUPNPC - std::vector<InetAddress> mappedAddresses(_portMapper->get()); - for(std::vector<InetAddress>::const_iterator ext(mappedAddresses.begin());ext!=mappedAddresses.end();++ext) - _node->addLocalInterfaceAddress(reinterpret_cast<const struct sockaddr_storage *>(&(*ext))); -#endif - char aabuf[16384]; ULONG aalen = sizeof(aabuf); if (GetAdaptersAddresses(AF_UNSPEC,GAA_FLAG_SKIP_ANYCAST|GAA_FLAG_SKIP_MULTICAST|GAA_FLAG_SKIP_DNS_SERVER,(void *)0,reinterpret_cast<PIP_ADAPTER_ADDRESSES>(aabuf),&aalen) == NO_ERROR) { |