| Index: webrtc/p2p/base/p2ptransportchannel.cc
|
| diff --git a/webrtc/p2p/base/p2ptransportchannel.cc b/webrtc/p2p/base/p2ptransportchannel.cc
|
| index 1d02689960994c7a674ce96ab584b49729dcb815..fc1f0a4e6769ee96ce28f851d0f7cbc368fbf69c 100644
|
| --- a/webrtc/p2p/base/p2ptransportchannel.cc
|
| +++ b/webrtc/p2p/base/p2ptransportchannel.cc
|
| @@ -279,7 +279,6 @@
|
| // We now only want to apply new candidates that we receive to the ports
|
| // created by this new session because these are replacing those of the
|
| // previous sessions.
|
| - removed_ports_.insert(removed_ports_.end(), ports_.begin(), ports_.end());
|
| ports_.clear();
|
|
|
| allocator_sessions_.push_back(std::move(session));
|
| @@ -306,20 +305,16 @@
|
| ASSERT(worker_thread_ == rtc::Thread::Current());
|
| if (ice_role_ != ice_role) {
|
| ice_role_ = ice_role;
|
| - for (PortInterface* port : ports_) {
|
| - port->SetIceRole(ice_role);
|
| - }
|
| - // Update role on removed ports as well, because they may still have
|
| - // connections alive that should be using the correct role.
|
| - for (PortInterface* port : removed_ports_) {
|
| - port->SetIceRole(ice_role);
|
| + for (std::vector<PortInterface *>::iterator it = ports_.begin();
|
| + it != ports_.end(); ++it) {
|
| + (*it)->SetIceRole(ice_role);
|
| }
|
| }
|
| }
|
|
|
| void P2PTransportChannel::SetIceTiebreaker(uint64_t tiebreaker) {
|
| ASSERT(worker_thread_ == rtc::Thread::Current());
|
| - if (!ports_.empty() || !removed_ports_.empty()) {
|
| + if (!ports_.empty()) {
|
| LOG(LS_ERROR)
|
| << "Attempt to change tiebreaker after Port has been allocated.";
|
| return;
|
| @@ -972,13 +967,13 @@
|
| it->second = value;
|
| }
|
|
|
| - for (PortInterface* port : ports_) {
|
| - int val = port->SetOption(opt, value);
|
| + for (size_t i = 0; i < ports_.size(); ++i) {
|
| + int val = ports_[i]->SetOption(opt, value);
|
| if (val < 0) {
|
| // Because this also occurs deferred, probably no point in reporting an
|
| // error
|
| - LOG(WARNING) << "SetOption(" << opt << ", " << value
|
| - << ") failed: " << port->GetError();
|
| + LOG(WARNING) << "SetOption(" << opt << ", " << value << ") failed: "
|
| + << ports_[i]->GetError();
|
| }
|
| }
|
| return 0;
|
| @@ -1518,9 +1513,10 @@
|
| ASSERT(worker_thread_ == rtc::Thread::Current());
|
|
|
| // Remove this port from the list (if we didn't drop it already).
|
| - ports_.erase(std::remove(ports_.begin(), ports_.end(), port));
|
| - removed_ports_.erase(
|
| - std::remove(removed_ports_.begin(), removed_ports_.end(), port));
|
| + std::vector<PortInterface*>::iterator iter =
|
| + std::find(ports_.begin(), ports_.end(), port);
|
| + if (iter != ports_.end())
|
| + ports_.erase(iter);
|
|
|
| LOG(INFO) << "Removed port from p2p socket: "
|
| << static_cast<int>(ports_.size()) << " remaining";
|
| @@ -1537,7 +1533,6 @@
|
| if (it == ports_.end()) {
|
| return;
|
| }
|
| - removed_ports_.push_back(*it);
|
| ports_.erase(it);
|
| LOG(INFO) << "Removed port due to inactive networks: " << ports_.size()
|
| << " remaining";
|
|
|