Changeset View
Changeset View
Standalone View
Standalone View
src/net.cpp
Show First 20 Lines • Show All 2,296 Lines • ▼ Show 20 Lines | if (getifaddrs(&myaddrs) == 0) { | ||||
for (struct ifaddrs *ifa = myaddrs; ifa != nullptr; | for (struct ifaddrs *ifa = myaddrs; ifa != nullptr; | ||||
ifa = ifa->ifa_next) { | ifa = ifa->ifa_next) { | ||||
if (ifa->ifa_addr == nullptr || (ifa->ifa_flags & IFF_UP) == 0 || | if (ifa->ifa_addr == nullptr || (ifa->ifa_flags & IFF_UP) == 0 || | ||||
strcmp(ifa->ifa_name, "lo") == 0 || | strcmp(ifa->ifa_name, "lo") == 0 || | ||||
strcmp(ifa->ifa_name, "lo0") == 0) { | strcmp(ifa->ifa_name, "lo0") == 0) { | ||||
continue; | continue; | ||||
} | } | ||||
if (ifa->ifa_addr->sa_family == AF_INET) { | if (ifa->ifa_addr->sa_family == AF_INET) { | ||||
struct sockaddr_in *s4 = (struct sockaddr_in *)(ifa->ifa_addr); | struct sockaddr_in *s4 = | ||||
reinterpret_cast<struct sockaddr_in *>(ifa->ifa_addr); | |||||
CNetAddr addr(s4->sin_addr); | CNetAddr addr(s4->sin_addr); | ||||
if (AddLocal(addr, LOCAL_IF)) { | if (AddLocal(addr, LOCAL_IF)) { | ||||
LogPrintf("%s: IPv4 %s: %s\n", __func__, ifa->ifa_name, | LogPrintf("%s: IPv4 %s: %s\n", __func__, ifa->ifa_name, | ||||
addr.ToString()); | addr.ToString()); | ||||
} | } | ||||
} else if (ifa->ifa_addr->sa_family == AF_INET6) { | } else if (ifa->ifa_addr->sa_family == AF_INET6) { | ||||
struct sockaddr_in6 *s6 = | struct sockaddr_in6 *s6 = | ||||
(struct sockaddr_in6 *)(ifa->ifa_addr); | reinterpret_cast<struct sockaddr_in6 *>(ifa->ifa_addr); | ||||
CNetAddr addr(s6->sin6_addr); | CNetAddr addr(s6->sin6_addr); | ||||
if (AddLocal(addr, LOCAL_IF)) { | if (AddLocal(addr, LOCAL_IF)) { | ||||
LogPrintf("%s: IPv6 %s: %s\n", __func__, ifa->ifa_name, | LogPrintf("%s: IPv6 %s: %s\n", __func__, ifa->ifa_name, | ||||
addr.ToString()); | addr.ToString()); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
freeifaddrs(myaddrs); | freeifaddrs(myaddrs); | ||||
▲ Show 20 Lines • Show All 778 Lines • Show Last 20 Lines |