diff --git a/AUTHORS b/AUTHORS index 9394364856..8e7e1830a4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -68,6 +68,7 @@ ARM Holdings <*@arm.com> BroadSoft Inc. <*@broadsoft.com> Facebook Inc. <*@fb.com> Google Inc. <*@google.com> +HyperConnect Inc. <*@hpcnt.com> Life On Air Inc. <*@lifeonair.com> Intel Corporation <*@intel.com> MIPS Technologies <*@mips.com> diff --git a/rtc_base/ifaddrs-android.cc b/rtc_base/ifaddrs-android.cc index 85a4497fdd..b713c02442 100644 --- a/rtc_base/ifaddrs-android.cc +++ b/rtc_base/ifaddrs-android.cc @@ -174,24 +174,24 @@ int getifaddrs(struct ifaddrs** result) { rtattr* rta = IFA_RTA(address_msg); ssize_t payload_len = IFA_PAYLOAD(header); while (RTA_OK(rta, payload_len)) { - if (rta->rta_type == IFA_ADDRESS) { - int family = address_msg->ifa_family; - if (family == AF_INET || family == AF_INET6) { - ifaddrs* newest = new ifaddrs; - memset(newest, 0, sizeof(ifaddrs)); - if (current) { - current->ifa_next = newest; - } else { - start = newest; - } - if (populate_ifaddrs(newest, address_msg, RTA_DATA(rta), - RTA_PAYLOAD(rta)) != 0) { - freeifaddrs(start); - *result = nullptr; - return -1; - } - current = newest; + if ((address_msg->ifa_family == AF_INET && + rta->rta_type == IFA_LOCAL) || + (address_msg->ifa_family == AF_INET6 && + rta->rta_type == IFA_ADDRESS)) { + ifaddrs* newest = new ifaddrs; + memset(newest, 0, sizeof(ifaddrs)); + if (current) { + current->ifa_next = newest; + } else { + start = newest; } + if (populate_ifaddrs(newest, address_msg, RTA_DATA(rta), + RTA_PAYLOAD(rta)) != 0) { + freeifaddrs(start); + *result = nullptr; + return -1; + } + current = newest; } rta = RTA_NEXT(rta, payload_len); }