| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 void P2PTransportChannel::Connect() { | 448 void P2PTransportChannel::Connect() { |
| 449 ASSERT(worker_thread_ == rtc::Thread::Current()); | 449 ASSERT(worker_thread_ == rtc::Thread::Current()); |
| 450 if (ice_ufrag_.empty() || ice_pwd_.empty()) { | 450 if (ice_ufrag_.empty() || ice_pwd_.empty()) { |
| 451 ASSERT(false); | 451 ASSERT(false); |
| 452 LOG(LS_ERROR) << "P2PTransportChannel::Connect: The ice_ufrag_ and the " | 452 LOG(LS_ERROR) << "P2PTransportChannel::Connect: The ice_ufrag_ and the " |
| 453 << "ice_pwd_ are not set."; | 453 << "ice_pwd_ are not set."; |
| 454 return; | 454 return; |
| 455 } | 455 } |
| 456 | 456 |
| 457 // Start checking and pinging as the ports come in. | 457 // Start checking and pinging as the ports come in. |
| 458 thread()->Post(this, MSG_CHECK_AND_PING); | 458 thread()->Post(RTC_FROM_HERE, this, MSG_CHECK_AND_PING); |
| 459 } | 459 } |
| 460 | 460 |
| 461 void P2PTransportChannel::MaybeStartGathering() { | 461 void P2PTransportChannel::MaybeStartGathering() { |
| 462 // Start gathering if we never started before, or if an ICE restart occurred. | 462 // Start gathering if we never started before, or if an ICE restart occurred. |
| 463 if (allocator_sessions_.empty() || | 463 if (allocator_sessions_.empty() || |
| 464 IceCredentialsChanged(allocator_sessions_.back()->ice_ufrag(), | 464 IceCredentialsChanged(allocator_sessions_.back()->ice_ufrag(), |
| 465 allocator_sessions_.back()->ice_pwd(), ice_ufrag_, | 465 allocator_sessions_.back()->ice_pwd(), ice_ufrag_, |
| 466 ice_pwd_)) { | 466 ice_pwd_)) { |
| 467 if (gathering_state_ != kIceGatheringGathering) { | 467 if (gathering_state_ != kIceGatheringGathering) { |
| 468 gathering_state_ = kIceGatheringGathering; | 468 gathering_state_ = kIceGatheringGathering; |
| (...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1051 | 1051 |
| 1052 // We need to copy the list of connections since some may delete themselves | 1052 // We need to copy the list of connections since some may delete themselves |
| 1053 // when we call UpdateState. | 1053 // when we call UpdateState. |
| 1054 for (size_t i = 0; i < connections_.size(); ++i) | 1054 for (size_t i = 0; i < connections_.size(); ++i) |
| 1055 connections_[i]->UpdateState(now); | 1055 connections_[i]->UpdateState(now); |
| 1056 } | 1056 } |
| 1057 | 1057 |
| 1058 // Prepare for best candidate sorting. | 1058 // Prepare for best candidate sorting. |
| 1059 void P2PTransportChannel::RequestSort() { | 1059 void P2PTransportChannel::RequestSort() { |
| 1060 if (!sort_dirty_) { | 1060 if (!sort_dirty_) { |
| 1061 worker_thread_->Post(this, MSG_SORT); | 1061 worker_thread_->Post(RTC_FROM_HERE, this, MSG_SORT); |
| 1062 sort_dirty_ = true; | 1062 sort_dirty_ = true; |
| 1063 } | 1063 } |
| 1064 } | 1064 } |
| 1065 | 1065 |
| 1066 // Sort the available connections to find the best one. We also monitor | 1066 // Sort the available connections to find the best one. We also monitor |
| 1067 // the number of available connections and the current state. | 1067 // the number of available connections and the current state. |
| 1068 void P2PTransportChannel::SortConnections() { | 1068 void P2PTransportChannel::SortConnections() { |
| 1069 ASSERT(worker_thread_ == rtc::Thread::Current()); | 1069 ASSERT(worker_thread_ == rtc::Thread::Current()); |
| 1070 | 1070 |
| 1071 // Make sure the connection states are up-to-date since this affects how they | 1071 // Make sure the connection states are up-to-date since this affects how they |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 ? weak_ping_interval_ | 1334 ? weak_ping_interval_ |
| 1335 : STRONG_PING_INTERVAL; | 1335 : STRONG_PING_INTERVAL; |
| 1336 if (rtc::TimeMillis() >= last_ping_sent_ms_ + ping_interval) { | 1336 if (rtc::TimeMillis() >= last_ping_sent_ms_ + ping_interval) { |
| 1337 Connection* conn = FindNextPingableConnection(); | 1337 Connection* conn = FindNextPingableConnection(); |
| 1338 if (conn) { | 1338 if (conn) { |
| 1339 PingConnection(conn); | 1339 PingConnection(conn); |
| 1340 MarkConnectionPinged(conn); | 1340 MarkConnectionPinged(conn); |
| 1341 } | 1341 } |
| 1342 } | 1342 } |
| 1343 int delay = std::min(ping_interval, check_receiving_interval_); | 1343 int delay = std::min(ping_interval, check_receiving_interval_); |
| 1344 thread()->PostDelayed(delay, this, MSG_CHECK_AND_PING); | 1344 thread()->PostDelayed(RTC_FROM_HERE, delay, this, MSG_CHECK_AND_PING); |
| 1345 } | 1345 } |
| 1346 | 1346 |
| 1347 // A connection is considered a backup connection if the channel state | 1347 // A connection is considered a backup connection if the channel state |
| 1348 // is completed, the connection is not the best connection and it is active. | 1348 // is completed, the connection is not the best connection and it is active. |
| 1349 bool P2PTransportChannel::IsBackupConnection(Connection* conn) const { | 1349 bool P2PTransportChannel::IsBackupConnection(Connection* conn) const { |
| 1350 return state_ == STATE_COMPLETED && conn != best_connection_ && | 1350 return state_ == STATE_COMPLETED && conn != best_connection_ && |
| 1351 conn->active(); | 1351 conn->active(); |
| 1352 } | 1352 } |
| 1353 | 1353 |
| 1354 // Is the connection in a state for us to even consider pinging the other side? | 1354 // Is the connection in a state for us to even consider pinging the other side? |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1688 | 1688 |
| 1689 // During the initial state when nothing has been pinged yet, return the first | 1689 // During the initial state when nothing has been pinged yet, return the first |
| 1690 // one in the ordered |connections_|. | 1690 // one in the ordered |connections_|. |
| 1691 return *(std::find_if(connections_.begin(), connections_.end(), | 1691 return *(std::find_if(connections_.begin(), connections_.end(), |
| 1692 [conn1, conn2](Connection* conn) { | 1692 [conn1, conn2](Connection* conn) { |
| 1693 return conn == conn1 || conn == conn2; | 1693 return conn == conn1 || conn == conn2; |
| 1694 })); | 1694 })); |
| 1695 } | 1695 } |
| 1696 | 1696 |
| 1697 } // namespace cricket | 1697 } // namespace cricket |
| OLD | NEW |