summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/extensions/api/dial/dial_service.cc3
-rw-r--r--chrome/browser/extensions/api/socket/socket_api.cc3
-rw-r--r--chrome/browser/extensions/api/system_network/system_network_api.cc3
-rw-r--r--chrome/browser/local_discovery/privet_traffic_detector.cc2
-rw-r--r--chrome/browser/media/webrtc_logging_handler_host.cc3
-rw-r--r--chrome_frame/test/chrome_frame_test_utils.cc3
-rw-r--r--cloud_print/gcp20/prototype/printer.cc3
-rw-r--r--content/browser/renderer_host/p2p/socket_dispatcher_host.cc2
-rw-r--r--content/browser/renderer_host/pepper/pepper_network_monitor_host.cc2
-rw-r--r--net/base/net_util.h9
-rw-r--r--net/base/net_util_posix.cc11
-rw-r--r--net/base/net_util_unittest.cc2
-rw-r--r--net/base/net_util_win.cc12
-rw-r--r--net/dns/mdns_client.cc2
14 files changed, 44 insertions, 16 deletions
diff --git a/chrome/browser/extensions/api/dial/dial_service.cc b/chrome/browser/extensions/api/dial/dial_service.cc
index 773bdc7..c1bbcff 100644
--- a/chrome/browser/extensions/api/dial/dial_service.cc
+++ b/chrome/browser/extensions/api/dial/dial_service.cc
@@ -113,7 +113,8 @@ void GetNetworkListOnFileThread(
const scoped_refptr<base::MessageLoopProxy>& loop,
const base::Callback<void(const NetworkInterfaceList& networks)>& cb) {
NetworkInterfaceList list;
- bool success = net::GetNetworkList(&list);
+ bool success = net::GetNetworkList(
+ &list, net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES);
if (!success)
DVLOG(1) << "Could not retrieve network list!";
diff --git a/chrome/browser/extensions/api/socket/socket_api.cc b/chrome/browser/extensions/api/socket/socket_api.cc
index da173c2..cd17a7f 100644
--- a/chrome/browser/extensions/api/socket/socket_api.cc
+++ b/chrome/browser/extensions/api/socket/socket_api.cc
@@ -661,7 +661,8 @@ bool SocketGetNetworkListFunction::RunImpl() {
void SocketGetNetworkListFunction::GetNetworkListOnFileThread() {
net::NetworkInterfaceList interface_list;
- if (GetNetworkList(&interface_list)) {
+ if (GetNetworkList(&interface_list,
+ net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES)) {
content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
base::Bind(&SocketGetNetworkListFunction::SendResponseOnUIThread,
this, interface_list));
diff --git a/chrome/browser/extensions/api/system_network/system_network_api.cc b/chrome/browser/extensions/api/system_network/system_network_api.cc
index 25621c2..633cea3 100644
--- a/chrome/browser/extensions/api/system_network/system_network_api.cc
+++ b/chrome/browser/extensions/api/system_network/system_network_api.cc
@@ -27,7 +27,8 @@ bool SystemNetworkGetNetworkInterfacesFunction::RunImpl() {
void SystemNetworkGetNetworkInterfacesFunction::GetListOnFileThread() {
net::NetworkInterfaceList interface_list;
- if (net::GetNetworkList(&interface_list)) {
+ if (net::GetNetworkList(
+ &interface_list, net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES)) {
content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
base::Bind(&SystemNetworkGetNetworkInterfacesFunction::
SendResponseOnUIThread,
diff --git a/chrome/browser/local_discovery/privet_traffic_detector.cc b/chrome/browser/local_discovery/privet_traffic_detector.cc
index 602e7f1..0d8f70f 100644
--- a/chrome/browser/local_discovery/privet_traffic_detector.cc
+++ b/chrome/browser/local_discovery/privet_traffic_detector.cc
@@ -24,7 +24,7 @@ void GetNetworkListOnFileThread(
const base::Callback<void(const net::NetworkInterfaceList&)> callback) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
net::NetworkInterfaceList networks;
- if (!GetNetworkList(&networks))
+ if (!GetNetworkList(&networks, net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES))
return;
net::NetworkInterfaceList ip4_networks;
diff --git a/chrome/browser/media/webrtc_logging_handler_host.cc b/chrome/browser/media/webrtc_logging_handler_host.cc
index c912815..bed00cb 100644
--- a/chrome/browser/media/webrtc_logging_handler_host.cc
+++ b/chrome/browser/media/webrtc_logging_handler_host.cc
@@ -325,7 +325,8 @@ void WebRtcLoggingHandlerHost::LogMachineInfo() {
// Network interfaces
net::NetworkInterfaceList network_list;
- net::GetNetworkList(&network_list);
+ net::GetNetworkList(&network_list,
+ net::EXCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES);
info = "Discovered " + IntToString(network_list.size()) +
" network interfaces:" + '\n';
pcb.Write(info.c_str(), info.length());
diff --git a/chrome_frame/test/chrome_frame_test_utils.cc b/chrome_frame/test/chrome_frame_test_utils.cc
index c614214..8dfc86e 100644
--- a/chrome_frame/test/chrome_frame_test_utils.cc
+++ b/chrome_frame/test/chrome_frame_test_utils.cc
@@ -712,7 +712,8 @@ std::string GetLocalIPv4Address() {
std::string address;
net::NetworkInterfaceList nic_list;
- if (!net::GetNetworkList(&nic_list)) {
+ if (!net::GetNetworkList(&nic_list,
+ net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES)) {
LOG(ERROR) << "GetNetworkList failed to look up non-loopback adapters. "
<< "Tests will be run over the loopback adapter, which may "
<< "result in hangs.";
diff --git a/cloud_print/gcp20/prototype/printer.cc b/cloud_print/gcp20/prototype/printer.cc
index 1d758f7..e5828261 100644
--- a/cloud_print/gcp20/prototype/printer.cc
+++ b/cloud_print/gcp20/prototype/printer.cc
@@ -111,7 +111,8 @@ const char kCdd[] =
net::IPAddressNumber GetLocalIp(const std::string& interface_name,
bool return_ipv6_number) {
net::NetworkInterfaceList interfaces;
- bool success = net::GetNetworkList(&interfaces);
+ bool success = net::GetNetworkList(
+ &interfaces, net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES);
DCHECK(success);
size_t expected_address_size = return_ipv6_number ? net::kIPv6AddressSize
diff --git a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
index 1608ae0..5038342 100644
--- a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
+++ b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
@@ -256,7 +256,7 @@ void P2PSocketDispatcherHost::OnDestroySocket(int socket_id) {
void P2PSocketDispatcherHost::DoGetNetworkList() {
net::NetworkInterfaceList list;
- net::GetNetworkList(&list);
+ net::GetNetworkList(&list, net::EXCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES);
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE, base::Bind(
&P2PSocketDispatcherHost::SendNetworkList, this, list));
diff --git a/content/browser/renderer_host/pepper/pepper_network_monitor_host.cc b/content/browser/renderer_host/pepper/pepper_network_monitor_host.cc
index b53a60b..32ed3cf 100644
--- a/content/browser/renderer_host/pepper/pepper_network_monitor_host.cc
+++ b/content/browser/renderer_host/pepper/pepper_network_monitor_host.cc
@@ -32,7 +32,7 @@ bool CanUseNetworkMonitor(bool external_plugin,
scoped_ptr<net::NetworkInterfaceList> GetNetworkList() {
scoped_ptr<net::NetworkInterfaceList> list(new net::NetworkInterfaceList());
- net::GetNetworkList(list.get());
+ net::GetNetworkList(list.get(), net::INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES);
return list.Pass();
}
diff --git a/net/base/net_util.h b/net/base/net_util.h
index baa68e3..fe91844 100644
--- a/net/base/net_util.h
+++ b/net/base/net_util.h
@@ -528,11 +528,18 @@ struct NET_EXPORT NetworkInterface {
typedef std::vector<NetworkInterface> NetworkInterfaceList;
+// Policy settings to include/exclude VMWare host only network interfaces.
+enum HostScopeVirtualInterfacePolicy {
+ INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES,
+ EXCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES,
+};
+
// Returns list of network interfaces except loopback interface. If an
// interface has more than one address, a separate entry is added to
// the list for each address.
// Can be called only on a thread that allows IO.
-NET_EXPORT bool GetNetworkList(NetworkInterfaceList* networks);
+NET_EXPORT bool GetNetworkList(NetworkInterfaceList* networks,
+ HostScopeVirtualInterfacePolicy policy);
// General category of the IEEE 802.11 (wifi) physical layer operating mode.
enum WifiPHYLayerProtocol {
diff --git a/net/base/net_util_posix.cc b/net/base/net_util_posix.cc
index 5e1042b..0045938 100644
--- a/net/base/net_util_posix.cc
+++ b/net/base/net_util_posix.cc
@@ -63,7 +63,8 @@ bool FileURLToFilePath(const GURL& url, base::FilePath* path) {
return !file_path_str.empty();
}
-bool GetNetworkList(NetworkInterfaceList* networks) {
+bool GetNetworkList(NetworkInterfaceList* networks,
+ HostScopeVirtualInterfacePolicy policy) {
#if defined(OS_ANDROID)
std::string network_list = android::GetNetworkList();
base::StringTokenizer network_interfaces(network_list, "\n");
@@ -138,8 +139,14 @@ bool GetNetworkList(NetworkInterfaceList* networks) {
continue;
}
+ const std::string& name = interface->ifa_name;
+ // Filter out VMware interfaces, typically named vmnet1 and vmnet8.
+ if (policy == EXCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES &&
+ ((name.find("vmnet") != std::string::npos) ||
+ (name.find("vnic") != std::string::npos))) {
+ continue;
+ }
IPEndPoint address;
- std::string name = interface->ifa_name;
if (address.FromSockAddr(addr, addr_size)) {
uint8 net_mask = 0;
if (interface->ifa_netmask) {
diff --git a/net/base/net_util_unittest.cc b/net/base/net_util_unittest.cc
index 2259629..5d5137a 100644
--- a/net/base/net_util_unittest.cc
+++ b/net/base/net_util_unittest.cc
@@ -3299,7 +3299,7 @@ TEST(NetUtilTest, IsLocalhost) {
// Verify GetNetworkList().
TEST(NetUtilTest, GetNetworkList) {
NetworkInterfaceList list;
- ASSERT_TRUE(GetNetworkList(&list));
+ ASSERT_TRUE(GetNetworkList(&list, INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES));
for (NetworkInterfaceList::iterator it = list.begin();
it != list.end(); ++it) {
// Verify that the name is not empty.
diff --git a/net/base/net_util_win.cc b/net/base/net_util_win.cc
index d0efe39..b15337b 100644
--- a/net/base/net_util_win.cc
+++ b/net/base/net_util_win.cc
@@ -138,7 +138,8 @@ bool FileURLToFilePath(const GURL& url, base::FilePath* file_path) {
return true;
}
-bool GetNetworkList(NetworkInterfaceList* networks) {
+bool GetNetworkList(NetworkInterfaceList* networks,
+ HostScopeVirtualInterfacePolicy policy) {
// GetAdaptersAddresses() may require IO operations.
base::ThreadRestrictions::AssertIOAllowed();
bool is_xp = base::win::GetVersion() < base::win::VERSION_VISTA;
@@ -170,7 +171,14 @@ bool GetNetworkList(NetworkInterfaceList* networks) {
continue;
}
- std::string name = adapter->AdapterName;
+ // Ignore any HOST side vmware adapters with a description like:
+ // VMware Virtual Ethernet Adapter for VMnet1
+ // but don't ignore any GUEST side adapters with a description like:
+ // VMware Accelerated AMD PCNet Adapter #2
+ if (policy == EXCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES &&
+ strstr(adapter->AdapterName, "VMnet") != NULL) {
+ continue;
+ }
for (IP_ADAPTER_UNICAST_ADDRESS* address = adapter->FirstUnicastAddress;
address; address = address->Next) {
diff --git a/net/dns/mdns_client.cc b/net/dns/mdns_client.cc
index 93f1d61..c55de6e 100644
--- a/net/dns/mdns_client.cc
+++ b/net/dns/mdns_client.cc
@@ -67,7 +67,7 @@ IPEndPoint GetMDnsIPEndPoint(AddressFamily address_family) {
InterfaceIndexFamilyList GetMDnsInterfacesToBind() {
NetworkInterfaceList network_list;
InterfaceIndexFamilyList interfaces;
- if (!GetNetworkList(&network_list))
+ if (!GetNetworkList(&network_list, INCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES))
return interfaces;
for (size_t i = 0; i < network_list.size(); ++i) {
AddressFamily family = GetAddressFamily(network_list[i].address);