Recognize additional adapter types on Windows

Specifically, Ethernet, Wi-Fi and cellular interfaces.

Note that this only affects native applications, as chromium already
has its own code for this:
https://cs.chromium.org/chromium/src/net/base/network_interfaces_win.cc?l=29&rcl=568ba7132833eea41fc863dd41c377928f49fa51

Which WebRTC accesses through "IpcNetworkManager".

Bug: webrtc:3149, webrtc:6588
Change-Id: I347f2734d95ea24cea3f89e6ed5bf2d135a9fc77
Reviewed-on: https://webrtc-review.googlesource.com/76622
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23332}
This commit is contained in:
Yura Yaroshevich
2018-05-15 11:15:32 +03:00
committed by Commit Bot
parent c941b7e28d
commit 0ce868c60e

View File

@ -708,9 +708,29 @@ bool BasicNetworkManager::CreateNetworks(bool include_ignored,
auto existing_network = current_networks.find(key);
if (existing_network == current_networks.end()) {
AdapterType adapter_type = ADAPTER_TYPE_UNKNOWN;
if (adapter_addrs->IfType == IF_TYPE_SOFTWARE_LOOPBACK) {
// TODO(phoglund): Need to recognize other types as well.
adapter_type = ADAPTER_TYPE_LOOPBACK;
switch (adapter_addrs->IfType) {
case IF_TYPE_SOFTWARE_LOOPBACK:
adapter_type = ADAPTER_TYPE_LOOPBACK;
break;
case IF_TYPE_ETHERNET_CSMACD:
case IF_TYPE_ETHERNET_3MBIT:
case IF_TYPE_IEEE80212:
case IF_TYPE_FASTETHER:
case IF_TYPE_FASTETHER_FX:
case IF_TYPE_GIGABITETHERNET:
adapter_type = ADAPTER_TYPE_ETHERNET;
break;
case IF_TYPE_IEEE80211:
adapter_type = ADAPTER_TYPE_WIFI;
break;
case IF_TYPE_WWANPP:
case IF_TYPE_WWANPP2:
adapter_type = ADAPTER_TYPE_CELLULAR;
break;
default:
// TODO(phoglund): Need to recognize other types as well.
adapter_type = ADAPTER_TYPE_UNKNOWN;
break;
}
std::unique_ptr<Network> network(new Network(
name, description, prefix, prefix_length, adapter_type));