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 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 | 623 |
624 if (options.disable_encryption) { | 624 if (options.disable_encryption) { |
625 webrtc_session_desc_factory_->SetSdesPolicy(cricket::SEC_DISABLED); | 625 webrtc_session_desc_factory_->SetSdesPolicy(cricket::SEC_DISABLED); |
626 } | 626 } |
627 | 627 |
628 return true; | 628 return true; |
629 } | 629 } |
630 | 630 |
631 void WebRtcSession::Close() { | 631 void WebRtcSession::Close() { |
632 SetState(STATE_CLOSED); | 632 SetState(STATE_CLOSED); |
| 633 call_ = nullptr; |
633 RemoveUnusedChannels(nullptr); | 634 RemoveUnusedChannels(nullptr); |
| 635 RTC_DCHECK(!call_); |
634 RTC_DCHECK(!voice_channel_); | 636 RTC_DCHECK(!voice_channel_); |
635 RTC_DCHECK(!video_channel_); | 637 RTC_DCHECK(!video_channel_); |
636 RTC_DCHECK(!rtp_data_channel_); | 638 RTC_DCHECK(!rtp_data_channel_); |
637 RTC_DCHECK(!sctp_transport_); | 639 RTC_DCHECK(!sctp_transport_); |
638 } | 640 } |
639 | 641 |
640 cricket::BaseChannel* WebRtcSession::GetChannel( | 642 cricket::BaseChannel* WebRtcSession::GetChannel( |
641 const std::string& content_name) { | 643 const std::string& content_name) { |
642 if (voice_channel() && voice_channel()->content_name() == content_name) { | 644 if (voice_channel() && voice_channel()->content_name() == content_name) { |
643 return voice_channel(); | 645 return voice_channel(); |
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1888 this, &WebRtcSession::OnDtlsSrtpSetupFailure); | 1890 this, &WebRtcSession::OnDtlsSrtpSetupFailure); |
1889 rtp_data_channel_->SignalSentPacket.connect(this, | 1891 rtp_data_channel_->SignalSentPacket.connect(this, |
1890 &WebRtcSession::OnSentPacket_w); | 1892 &WebRtcSession::OnSentPacket_w); |
1891 } | 1893 } |
1892 | 1894 |
1893 SignalDataChannelCreated(); | 1895 SignalDataChannelCreated(); |
1894 | 1896 |
1895 return true; | 1897 return true; |
1896 } | 1898 } |
1897 | 1899 |
| 1900 Call::Stats WebRtcSession::GetCallStats() { |
| 1901 if (!worker_thread()->IsCurrent()) { |
| 1902 return worker_thread()->Invoke<Call::Stats>( |
| 1903 RTC_FROM_HERE, rtc::Bind(&WebRtcSession::GetCallStats, this)); |
| 1904 } |
| 1905 RTC_DCHECK(call_); |
| 1906 return call_->GetStats(); |
| 1907 } |
| 1908 |
1898 std::unique_ptr<SessionStats> WebRtcSession::GetStats_n( | 1909 std::unique_ptr<SessionStats> WebRtcSession::GetStats_n( |
1899 const ChannelNamePairs& channel_name_pairs) { | 1910 const ChannelNamePairs& channel_name_pairs) { |
1900 RTC_DCHECK(network_thread()->IsCurrent()); | 1911 RTC_DCHECK(network_thread()->IsCurrent()); |
1901 std::unique_ptr<SessionStats> session_stats(new SessionStats()); | 1912 std::unique_ptr<SessionStats> session_stats(new SessionStats()); |
1902 for (const auto channel_name_pair : { &channel_name_pairs.voice, | 1913 for (const auto channel_name_pair : { &channel_name_pairs.voice, |
1903 &channel_name_pairs.video, | 1914 &channel_name_pairs.video, |
1904 &channel_name_pairs.data }) { | 1915 &channel_name_pairs.data }) { |
1905 if (*channel_name_pair) { | 1916 if (*channel_name_pair) { |
1906 cricket::TransportStats transport_stats; | 1917 cricket::TransportStats transport_stats; |
1907 if (!transport_controller_->GetStats((*channel_name_pair)->transport_name, | 1918 if (!transport_controller_->GetStats((*channel_name_pair)->transport_name, |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2310 srtp_crypto_suite); | 2321 srtp_crypto_suite); |
2311 } | 2322 } |
2312 if (ssl_cipher_suite != rtc::TLS_NULL_WITH_NULL_NULL) { | 2323 if (ssl_cipher_suite != rtc::TLS_NULL_WITH_NULL_NULL) { |
2313 metrics_observer_->IncrementSparseEnumCounter(ssl_counter_type, | 2324 metrics_observer_->IncrementSparseEnumCounter(ssl_counter_type, |
2314 ssl_cipher_suite); | 2325 ssl_cipher_suite); |
2315 } | 2326 } |
2316 } | 2327 } |
2317 | 2328 |
2318 void WebRtcSession::OnSentPacket_w(const rtc::SentPacket& sent_packet) { | 2329 void WebRtcSession::OnSentPacket_w(const rtc::SentPacket& sent_packet) { |
2319 RTC_DCHECK(worker_thread()->IsCurrent()); | 2330 RTC_DCHECK(worker_thread()->IsCurrent()); |
2320 call_->OnSentPacket(sent_packet); | 2331 if (call_) |
| 2332 call_->OnSentPacket(sent_packet); |
2321 } | 2333 } |
2322 | 2334 |
2323 const std::string WebRtcSession::GetTransportName( | 2335 const std::string WebRtcSession::GetTransportName( |
2324 const std::string& content_name) { | 2336 const std::string& content_name) { |
2325 cricket::BaseChannel* channel = GetChannel(content_name); | 2337 cricket::BaseChannel* channel = GetChannel(content_name); |
2326 if (!channel) { | 2338 if (!channel) { |
2327 #ifdef HAVE_QUIC | 2339 #ifdef HAVE_QUIC |
2328 if (data_channel_type_ == cricket::DCT_QUIC && quic_data_transport_ && | 2340 if (data_channel_type_ == cricket::DCT_QUIC && quic_data_transport_ && |
2329 content_name == quic_data_transport_->transport_name()) { | 2341 content_name == quic_data_transport_->transport_name()) { |
2330 return quic_data_transport_->transport_name(); | 2342 return quic_data_transport_->transport_name(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2388 (rtp_data_channel_->rtcp_dtls_transport() != nullptr); | 2400 (rtp_data_channel_->rtcp_dtls_transport() != nullptr); |
2389 channel_manager_->DestroyRtpDataChannel(rtp_data_channel_.release()); | 2401 channel_manager_->DestroyRtpDataChannel(rtp_data_channel_.release()); |
2390 transport_controller_->DestroyDtlsTransport( | 2402 transport_controller_->DestroyDtlsTransport( |
2391 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP); | 2403 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP); |
2392 if (need_to_delete_rtcp) { | 2404 if (need_to_delete_rtcp) { |
2393 transport_controller_->DestroyDtlsTransport( | 2405 transport_controller_->DestroyDtlsTransport( |
2394 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); | 2406 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); |
2395 } | 2407 } |
2396 } | 2408 } |
2397 } // namespace webrtc | 2409 } // namespace webrtc |
OLD | NEW |