Index: webrtc/p2p/client/basicportallocator.cc |
diff --git a/webrtc/p2p/client/basicportallocator.cc b/webrtc/p2p/client/basicportallocator.cc |
index a14f85b6f289c0516ef732540b9081b5e6146d05..515661402232ffea61ccad84231ba91104aa02f1 100644 |
--- a/webrtc/p2p/client/basicportallocator.cc |
+++ b/webrtc/p2p/client/basicportallocator.cc |
@@ -70,15 +70,16 @@ BasicPortAllocator::BasicPortAllocator( |
: network_manager_(network_manager), |
socket_factory_(socket_factory), |
stun_servers_() { |
- ASSERT(socket_factory_ != NULL); |
+ ASSERT(network_manager_ != nullptr); |
+ ASSERT(socket_factory_ != nullptr); |
Construct(); |
} |
-BasicPortAllocator::BasicPortAllocator( |
- rtc::NetworkManager* network_manager) |
+BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager) |
: network_manager_(network_manager), |
- socket_factory_(NULL), |
+ socket_factory_(nullptr), |
stun_servers_() { |
+ ASSERT(network_manager_ != nullptr); |
Construct(); |
} |
@@ -318,14 +319,20 @@ void BasicPortAllocatorSession::GetNetworks( |
rtc::NetworkManager::ENUMERATION_BLOCKED) { |
set_flags(flags() | PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION); |
} |
+ std::vector<rtc::Network*> unfiltered_networks; |
// If the adapter enumeration is disabled, we'll just bind to any address |
// instead of specific NIC. This is to ensure the same routing for http |
// traffic by OS is also used here to avoid any local or public IP leakage |
// during stun process. |
if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) { |
- network_manager->GetAnyAddressNetworks(networks); |
+ network_manager->GetAnyAddressNetworks(&unfiltered_networks); |
} else { |
- network_manager->GetNetworks(networks); |
+ network_manager->GetNetworks(&unfiltered_networks); |
+ } |
+ for (rtc::Network* network : unfiltered_networks) { |
+ if (!(allocator_->network_ignore_mask() & network->type())) { |
pthatcher1
2015/12/15 23:53:18
Might be slightly more readable as:
bool ignored
|
+ networks->push_back(network); |
+ } |
} |
} |