Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: webrtc/base/network.cc

Issue 1547883002: Revert "Enable IPv6 temporary address filtering on iOS." (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/network.h ('k') | webrtc/base/network_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/network.cc
diff --git a/webrtc/base/network.cc b/webrtc/base/network.cc
index d398c357630358d1b02213a00dadf69861ecbe72..2dcfa1762375f96654e9be8130ebdd2a38c319ac 100644
--- a/webrtc/base/network.cc
+++ b/webrtc/base/network.cc
@@ -24,13 +24,23 @@
#elif !defined(__native_client__)
#include <net/if.h>
#endif
+#include <sys/socket.h>
+#include <sys/utsname.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#if defined(WEBRTC_ANDROID)
+#include "webrtc/base/ifaddrs-android.h"
+#elif !defined(__native_client__)
+#include <ifaddrs.h>
+#endif
+
#endif // WEBRTC_POSIX
#if defined(WEBRTC_WIN)
#include "webrtc/base/win32.h"
#include <Iphlpapi.h>
-#else
-#include "webrtc/base/ifaddrs_converter.h"
#endif
#include <stdio.h>
@@ -119,7 +129,7 @@ std::string AdapterTypeToString(AdapterType type) {
}
}
-bool IsIgnoredIPv6(const InterfaceAddress& ip) {
+bool IsIgnoredIPv6(const IPAddress& ip) {
if (ip.family() != AF_INET6) {
return false;
}
@@ -136,11 +146,6 @@ bool IsIgnoredIPv6(const InterfaceAddress& ip) {
return true;
}
- // Ignore deprecated IPv6.
- if (ip.ipv6_flags() & IPV6_ADDRESS_FLAG_DEPRECATED) {
- return true;
- }
-
return false;
}
@@ -388,47 +393,49 @@ bool BasicNetworkManager::CreateNetworks(bool include_ignored,
#elif defined(WEBRTC_POSIX)
void BasicNetworkManager::ConvertIfAddrs(struct ifaddrs* interfaces,
- IfAddrsConverter* ifaddrs_converter,
bool include_ignored,
NetworkList* networks) const {
NetworkMap current_networks;
-
for (struct ifaddrs* cursor = interfaces;
cursor != NULL; cursor = cursor->ifa_next) {
IPAddress prefix;
IPAddress mask;
- InterfaceAddress ip;
+ IPAddress ip;
int scope_id = 0;
// Some interfaces may not have address assigned.
- if (!cursor->ifa_addr || !cursor->ifa_netmask) {
- continue;
- }
- // Skip ones which are down.
- if (!(cursor->ifa_flags & IFF_RUNNING)) {
- continue;
- }
- // Skip unknown family.
- if (cursor->ifa_addr->sa_family != AF_INET &&
- cursor->ifa_addr->sa_family != AF_INET6) {
- continue;
- }
- // Skip IPv6 if not enabled.
- if (cursor->ifa_addr->sa_family == AF_INET6 && !ipv6_enabled()) {
- continue;
- }
- // Convert to InterfaceAddress.
- if (!ifaddrs_converter->ConvertIfAddrsToIPAddress(cursor, &ip, &mask)) {
+ if (!cursor->ifa_addr || !cursor->ifa_netmask)
continue;
- }
- // Special case for IPv6 address.
- if (cursor->ifa_addr->sa_family == AF_INET6) {
- if (IsIgnoredIPv6(ip)) {
+ switch (cursor->ifa_addr->sa_family) {
+ case AF_INET: {
+ ip = IPAddress(
+ reinterpret_cast<sockaddr_in*>(cursor->ifa_addr)->sin_addr);
+ mask = IPAddress(
+ reinterpret_cast<sockaddr_in*>(cursor->ifa_netmask)->sin_addr);
+ break;
+ }
+ case AF_INET6: {
+ if (ipv6_enabled()) {
+ ip = IPAddress(
+ reinterpret_cast<sockaddr_in6*>(cursor->ifa_addr)->sin6_addr);
+
+ if (IsIgnoredIPv6(ip)) {
+ continue;
+ }
+
+ mask = IPAddress(
+ reinterpret_cast<sockaddr_in6*>(cursor->ifa_netmask)->sin6_addr);
+ scope_id =
+ reinterpret_cast<sockaddr_in6*>(cursor->ifa_addr)->sin6_scope_id;
+ break;
+ } else {
+ continue;
+ }
+ }
+ default: {
continue;
}
- scope_id =
- reinterpret_cast<sockaddr_in6*>(cursor->ifa_addr)->sin6_scope_id;
}
int prefix_length = CountIPMaskBits(mask);
@@ -474,9 +481,7 @@ bool BasicNetworkManager::CreateNetworks(bool include_ignored,
return false;
}
- rtc::scoped_ptr<IfAddrsConverter> ifaddrs_converter(CreateIfAddrsConverter());
- ConvertIfAddrs(interfaces, ifaddrs_converter.get(), include_ignored,
- networks);
+ ConvertIfAddrs(interfaces, include_ignored, networks);
freeifaddrs(interfaces);
return true;
« no previous file with comments | « webrtc/base/network.h ('k') | webrtc/base/network_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698