|
28 | 28 | #include <random.h> |
29 | 29 | #include <scheduler.h> |
30 | 30 | #include <util/fs.h> |
| 31 | +#include <util/netif.h> |
31 | 32 | #include <util/sock.h> |
32 | 33 | #include <util/strencodings.h> |
33 | 34 | #include <util/thread.h> |
@@ -3118,46 +3119,10 @@ void Discover() |
3118 | 3119 | if (!fDiscover) |
3119 | 3120 | return; |
3120 | 3121 |
|
3121 | | -#ifdef WIN32 |
3122 | | - // Get local host IP |
3123 | | - char pszHostName[256] = ""; |
3124 | | - if (gethostname(pszHostName, sizeof(pszHostName)) != SOCKET_ERROR) |
3125 | | - { |
3126 | | - const std::vector<CNetAddr> addresses{LookupHost(pszHostName, 0, true)}; |
3127 | | - for (const CNetAddr& addr : addresses) |
3128 | | - { |
3129 | | - if (AddLocal(addr, LOCAL_IF)) |
3130 | | - LogPrintf("%s: %s - %s\n", __func__, pszHostName, addr.ToStringAddr()); |
3131 | | - } |
| 3122 | + for (const CNetAddr &addr: GetLocalAddresses()) { |
| 3123 | + if (AddLocal(addr, LOCAL_IF)) |
| 3124 | + LogPrintf("%s: %s\n", __func__, addr.ToStringAddr()); |
3132 | 3125 | } |
3133 | | -#elif (HAVE_DECL_GETIFADDRS && HAVE_DECL_FREEIFADDRS) |
3134 | | - // Get local host ip |
3135 | | - struct ifaddrs* myaddrs; |
3136 | | - if (getifaddrs(&myaddrs) == 0) |
3137 | | - { |
3138 | | - for (struct ifaddrs* ifa = myaddrs; ifa != nullptr; ifa = ifa->ifa_next) |
3139 | | - { |
3140 | | - if (ifa->ifa_addr == nullptr) continue; |
3141 | | - if ((ifa->ifa_flags & IFF_UP) == 0) continue; |
3142 | | - if ((ifa->ifa_flags & IFF_LOOPBACK) != 0) continue; |
3143 | | - if (ifa->ifa_addr->sa_family == AF_INET) |
3144 | | - { |
3145 | | - struct sockaddr_in* s4 = (struct sockaddr_in*)(ifa->ifa_addr); |
3146 | | - CNetAddr addr(s4->sin_addr); |
3147 | | - if (AddLocal(addr, LOCAL_IF)) |
3148 | | - LogPrintf("%s: IPv4 %s: %s\n", __func__, ifa->ifa_name, addr.ToStringAddr()); |
3149 | | - } |
3150 | | - else if (ifa->ifa_addr->sa_family == AF_INET6) |
3151 | | - { |
3152 | | - struct sockaddr_in6* s6 = (struct sockaddr_in6*)(ifa->ifa_addr); |
3153 | | - CNetAddr addr(s6->sin6_addr); |
3154 | | - if (AddLocal(addr, LOCAL_IF)) |
3155 | | - LogPrintf("%s: IPv6 %s: %s\n", __func__, ifa->ifa_name, addr.ToStringAddr()); |
3156 | | - } |
3157 | | - } |
3158 | | - freeifaddrs(myaddrs); |
3159 | | - } |
3160 | | -#endif |
3161 | 3126 | } |
3162 | 3127 |
|
3163 | 3128 | void CConnman::SetNetworkActive(bool active) |
|
0 commit comments