Index: webrtc/p2p/client/basicportallocator.cc |
diff --git a/webrtc/p2p/client/basicportallocator.cc b/webrtc/p2p/client/basicportallocator.cc |
index 55b1fd88750ad2beda1a31147c82e16664e53c5f..6234d77b751bd8f7f30ef12ecef341dc14e82f87 100644 |
--- a/webrtc/p2p/client/basicportallocator.cc |
+++ b/webrtc/p2p/client/basicportallocator.cc |
@@ -549,10 +549,14 @@ void BasicPortAllocatorSession::DoAllocate() { |
bool done_signal_needed = false; |
std::vector<rtc::Network*> networks = GetNetworks(); |
+ if (IsStopped()) { |
Taylor Brandstetter
2016/08/23 21:50:09
Is this condition only hit when regathering due to
honghaiz3
2016/08/23 22:06:25
yes.
|
+ return; |
+ } |
if (networks.empty()) { |
LOG(LS_WARNING) << "Machine has no networks; no ports will be allocated"; |
done_signal_needed = true; |
} else { |
+ LOG(LS_INFO) << "Allocate ports on "<< networks.size() << " networks"; |
PortConfiguration* config = configs_.empty() ? nullptr : configs_.back(); |
for (uint32_t i = 0; i < networks.size(); ++i) { |
uint32_t sequence_flags = flags(); |
@@ -585,17 +589,12 @@ void BasicPortAllocatorSession::DoAllocate() { |
AllocationSequence* sequence = |
new AllocationSequence(this, networks[i], config, sequence_flags); |
- if (!sequence->Init()) { |
- delete sequence; |
- continue; |
- } |
- done_signal_needed = true; |
sequence->SignalPortAllocationComplete.connect( |
this, &BasicPortAllocatorSession::OnPortAllocationComplete); |
- if (!IsStopped()) { |
- sequence->Start(); |
- } |
+ sequence->Init(); |
+ sequence->Start(); |
sequences_.push_back(sequence); |
+ done_signal_needed = true; |
} |
} |
if (done_signal_needed) { |
@@ -618,7 +617,10 @@ void BasicPortAllocatorSession::OnNetworksChanged() { |
} |
RemovePortsAndCandidates(failed_networks); |
- network_manager_started_ = true; |
+ if (!network_manager_started_) { |
+ LOG(LS_INFO) << "Network manager is started"; |
+ network_manager_started_ = true; |
+ } |
if (allocation_started_) |
DoAllocate(); |
} |
@@ -986,7 +988,7 @@ AllocationSequence::AllocationSequence(BasicPortAllocatorSession* session, |
phase_(0) { |
} |
-bool AllocationSequence::Init() { |
+void AllocationSequence::Init() { |
if (IsFlagSet(PORTALLOCATOR_ENABLE_SHARED_SOCKET)) { |
udp_socket_.reset(session_->socket_factory()->CreateUdpSocket( |
rtc::SocketAddress(ip_, 0), session_->allocator()->min_port(), |
@@ -998,7 +1000,6 @@ bool AllocationSequence::Init() { |
// Continuing if |udp_socket_| is NULL, as local TCP and RelayPort using TCP |
// are next available options to setup a communication channel. |
} |
- return true; |
} |
void AllocationSequence::Clear() { |