Index: webrtc/p2p/client/basicportallocator.cc |
diff --git a/webrtc/p2p/client/basicportallocator.cc b/webrtc/p2p/client/basicportallocator.cc |
index 21c8921f4024c51b3679471595a97dae199c1625..865fbbb4c0f33efa736ba5d6cdfef6dc816c4f90 100644 |
--- a/webrtc/p2p/client/basicportallocator.cc |
+++ b/webrtc/p2p/client/basicportallocator.cc |
@@ -436,7 +436,8 @@ void BasicPortAllocatorSession::AddAllocatedPort(Port* port, |
// When adapter enumeration is disabled, disable CF_HOST at port level so |
// local address is not leaked by stunport in the candidate's related address. |
- if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) { |
+ if ((flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) && |
+ (flags() & PORTALLOCATOR_DISABLE_DEFAULT_LOCAL_CANDIDATE)) { |
candidate_filter &= ~CF_HOST; |
} |
port->set_candidate_filter(candidate_filter); |
@@ -600,25 +601,6 @@ bool BasicPortAllocatorSession::CheckCandidateFilter(const Candidate& c) { |
return true; |
} |
- // If PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE is specified and it's |
- // loopback address, we should allow it as it's for demo page connectivity |
- // when no TURN/STUN specified. |
- if (c.address().IsLoopbackIP() && |
- (flags() & PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE) != 0) { |
- return true; |
- } |
- |
- // This is just to prevent the case when binding to any address (all 0s), if |
- // somehow the host candidate address is not all 0s. Either because local |
- // installed proxy changes the address or a packet has been sent for any |
- // reason before getsockname is called. |
- if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) { |
- LOG(LS_WARNING) << "Received non-0 host address: " |
- << c.address().ToString() |
- << " when adapter enumeration is disabled"; |
- return false; |
- } |
- |
return ((filter & CF_HOST) != 0); |
} |
return false; |
@@ -882,19 +864,19 @@ void AllocationSequence::CreateUDPPorts() { |
// TODO(mallinath) - Remove UDPPort creating socket after shared socket |
// is enabled completely. |
UDPPort* port = NULL; |
- bool emit_localhost_for_anyaddress = |
- IsFlagSet(PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE); |
+ bool emit_local_candidate_for_anyaddress = |
+ !IsFlagSet(PORTALLOCATOR_DISABLE_DEFAULT_LOCAL_CANDIDATE); |
if (IsFlagSet(PORTALLOCATOR_ENABLE_SHARED_SOCKET) && udp_socket_) { |
port = UDPPort::Create( |
session_->network_thread(), session_->socket_factory(), network_, |
udp_socket_.get(), session_->username(), session_->password(), |
- session_->allocator()->origin(), emit_localhost_for_anyaddress); |
+ session_->allocator()->origin(), emit_local_candidate_for_anyaddress); |
} else { |
port = UDPPort::Create( |
session_->network_thread(), session_->socket_factory(), network_, ip_, |
session_->allocator()->min_port(), session_->allocator()->max_port(), |
session_->username(), session_->password(), |
- session_->allocator()->origin(), emit_localhost_for_anyaddress); |
+ session_->allocator()->origin(), emit_local_candidate_for_anyaddress); |
} |
if (port) { |