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