| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2012 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 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 const std::string& desc) { | 414 const std::string& desc) { |
| 415 std::ostringstream ret; | 415 std::ostringstream ret; |
| 416 ret << error << " " << desc; | 416 ret << error << " " << desc; |
| 417 return ret.str(); | 417 return ret.str(); |
| 418 } | 418 } |
| 419 | 419 |
| 420 static std::string MakeTdErrorString(const std::string& desc) { | 420 static std::string MakeTdErrorString(const std::string& desc) { |
| 421 return MakeErrorString(kPushDownTDFailed, desc); | 421 return MakeErrorString(kPushDownTDFailed, desc); |
| 422 } | 422 } |
| 423 | 423 |
| 424 uint32_t ConvertIceTransportTypeToCandidateFilter( |
| 425 PeerConnectionInterface::IceTransportsType type) { |
| 426 switch (type) { |
| 427 case PeerConnectionInterface::kNone: |
| 428 return cricket::CF_NONE; |
| 429 case PeerConnectionInterface::kRelay: |
| 430 return cricket::CF_RELAY; |
| 431 case PeerConnectionInterface::kNoHost: |
| 432 return (cricket::CF_ALL & ~cricket::CF_HOST); |
| 433 case PeerConnectionInterface::kAll: |
| 434 return cricket::CF_ALL; |
| 435 default: ASSERT(false); |
| 436 } |
| 437 return cricket::CF_NONE; |
| 438 } |
| 439 |
| 424 // Returns true if |new_desc| requests an ICE restart (i.e., new ufrag/pwd). | 440 // Returns true if |new_desc| requests an ICE restart (i.e., new ufrag/pwd). |
| 425 bool CheckForRemoteIceRestart(const SessionDescriptionInterface* old_desc, | 441 bool CheckForRemoteIceRestart(const SessionDescriptionInterface* old_desc, |
| 426 const SessionDescriptionInterface* new_desc, | 442 const SessionDescriptionInterface* new_desc, |
| 427 const std::string& content_name) { | 443 const std::string& content_name) { |
| 428 if (!old_desc) { | 444 if (!old_desc) { |
| 429 return false; | 445 return false; |
| 430 } | 446 } |
| 431 const SessionDescription* new_sd = new_desc->description(); | 447 const SessionDescription* new_sd = new_desc->description(); |
| 432 const SessionDescription* old_sd = old_desc->description(); | 448 const SessionDescription* old_sd = old_desc->description(); |
| 433 const ContentInfo* cinfo = new_sd->GetContentByName(content_name); | 449 const ContentInfo* cinfo = new_sd->GetContentByName(content_name); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 452 } | 468 } |
| 453 return false; | 469 return false; |
| 454 } | 470 } |
| 455 | 471 |
| 456 WebRtcSession::WebRtcSession(webrtc::MediaControllerInterface* media_controller, | 472 WebRtcSession::WebRtcSession(webrtc::MediaControllerInterface* media_controller, |
| 457 rtc::Thread* signaling_thread, | 473 rtc::Thread* signaling_thread, |
| 458 rtc::Thread* worker_thread, | 474 rtc::Thread* worker_thread, |
| 459 cricket::PortAllocator* port_allocator) | 475 cricket::PortAllocator* port_allocator) |
| 460 : signaling_thread_(signaling_thread), | 476 : signaling_thread_(signaling_thread), |
| 461 worker_thread_(worker_thread), | 477 worker_thread_(worker_thread), |
| 478 port_allocator_(port_allocator), |
| 462 // RFC 3264: The numeric value of the session id and version in the | 479 // RFC 3264: The numeric value of the session id and version in the |
| 463 // o line MUST be representable with a "64 bit signed integer". | 480 // o line MUST be representable with a "64 bit signed integer". |
| 464 // Due to this constraint session id |sid_| is max limited to LLONG_MAX. | 481 // Due to this constraint session id |sid_| is max limited to LLONG_MAX. |
| 465 sid_(rtc::ToString(rtc::CreateRandomId64() & LLONG_MAX)), | 482 sid_(rtc::ToString(rtc::CreateRandomId64() & LLONG_MAX)), |
| 466 transport_controller_(new cricket::TransportController(signaling_thread, | 483 transport_controller_(new cricket::TransportController(signaling_thread, |
| 467 worker_thread, | 484 worker_thread, |
| 468 port_allocator)), | 485 port_allocator)), |
| 469 media_controller_(media_controller), | 486 media_controller_(media_controller), |
| 470 channel_manager_(media_controller_->channel_manager()), | 487 channel_manager_(media_controller_->channel_manager()), |
| 471 ice_observer_(NULL), | 488 ice_observer_(NULL), |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 signaling_thread(), channel_manager_, certificate, this, id())); | 597 signaling_thread(), channel_manager_, certificate, this, id())); |
| 581 } | 598 } |
| 582 } | 599 } |
| 583 | 600 |
| 584 webrtc_session_desc_factory_->SignalCertificateReady.connect( | 601 webrtc_session_desc_factory_->SignalCertificateReady.connect( |
| 585 this, &WebRtcSession::OnCertificateReady); | 602 this, &WebRtcSession::OnCertificateReady); |
| 586 | 603 |
| 587 if (options.disable_encryption) { | 604 if (options.disable_encryption) { |
| 588 webrtc_session_desc_factory_->SetSdesPolicy(cricket::SEC_DISABLED); | 605 webrtc_session_desc_factory_->SetSdesPolicy(cricket::SEC_DISABLED); |
| 589 } | 606 } |
| 607 port_allocator()->set_candidate_filter( |
| 608 ConvertIceTransportTypeToCandidateFilter(rtc_configuration.type)); |
| 590 | 609 |
| 591 return true; | 610 return true; |
| 592 } | 611 } |
| 593 | 612 |
| 594 void WebRtcSession::Close() { | 613 void WebRtcSession::Close() { |
| 595 SetState(STATE_CLOSED); | 614 SetState(STATE_CLOSED); |
| 596 RemoveUnusedChannels(nullptr); | 615 RemoveUnusedChannels(nullptr); |
| 597 ASSERT(!voice_channel_); | 616 ASSERT(!voice_channel_); |
| 598 ASSERT(!video_channel_); | 617 ASSERT(!video_channel_); |
| 599 ASSERT(!data_channel_); | 618 ASSERT(!data_channel_); |
| (...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1119 | 1138 |
| 1120 // Remove the candidates from the transport controller. | 1139 // Remove the candidates from the transport controller. |
| 1121 std::string error; | 1140 std::string error; |
| 1122 bool res = transport_controller_->RemoveRemoteCandidates(candidates, &error); | 1141 bool res = transport_controller_->RemoveRemoteCandidates(candidates, &error); |
| 1123 if (!res && !error.empty()) { | 1142 if (!res && !error.empty()) { |
| 1124 LOG(LS_ERROR) << "Error when removing remote candidates: " << error; | 1143 LOG(LS_ERROR) << "Error when removing remote candidates: " << error; |
| 1125 } | 1144 } |
| 1126 return true; | 1145 return true; |
| 1127 } | 1146 } |
| 1128 | 1147 |
| 1148 bool WebRtcSession::SetIceTransports( |
| 1149 PeerConnectionInterface::IceTransportsType type) { |
| 1150 return port_allocator()->set_candidate_filter( |
| 1151 ConvertIceTransportTypeToCandidateFilter(type)); |
| 1152 } |
| 1153 |
| 1129 cricket::IceConfig WebRtcSession::ParseIceConfig( | 1154 cricket::IceConfig WebRtcSession::ParseIceConfig( |
| 1130 const PeerConnectionInterface::RTCConfiguration& config) const { | 1155 const PeerConnectionInterface::RTCConfiguration& config) const { |
| 1131 cricket::IceConfig ice_config; | 1156 cricket::IceConfig ice_config; |
| 1132 ice_config.receiving_timeout = config.ice_connection_receiving_timeout; | 1157 ice_config.receiving_timeout = config.ice_connection_receiving_timeout; |
| 1133 ice_config.prioritize_most_likely_candidate_pairs = | 1158 ice_config.prioritize_most_likely_candidate_pairs = |
| 1134 config.prioritize_most_likely_ice_candidate_pairs; | 1159 config.prioritize_most_likely_ice_candidate_pairs; |
| 1135 ice_config.backup_connection_ping_interval = | 1160 ice_config.backup_connection_ping_interval = |
| 1136 config.ice_backup_candidate_pair_ping_interval; | 1161 config.ice_backup_candidate_pair_ping_interval; |
| 1137 ice_config.gather_continually = (config.continual_gathering_policy == | 1162 ice_config.gather_continually = (config.continual_gathering_policy == |
| 1138 PeerConnectionInterface::GATHER_CONTINUALLY); | 1163 PeerConnectionInterface::GATHER_CONTINUALLY); |
| (...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2130 } | 2155 } |
| 2131 } | 2156 } |
| 2132 | 2157 |
| 2133 void WebRtcSession::OnSentPacket_w(cricket::TransportChannel* channel, | 2158 void WebRtcSession::OnSentPacket_w(cricket::TransportChannel* channel, |
| 2134 const rtc::SentPacket& sent_packet) { | 2159 const rtc::SentPacket& sent_packet) { |
| 2135 RTC_DCHECK(worker_thread()->IsCurrent()); | 2160 RTC_DCHECK(worker_thread()->IsCurrent()); |
| 2136 media_controller_->call_w()->OnSentPacket(sent_packet); | 2161 media_controller_->call_w()->OnSentPacket(sent_packet); |
| 2137 } | 2162 } |
| 2138 | 2163 |
| 2139 } // namespace webrtc | 2164 } // namespace webrtc |
| OLD | NEW |