diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc index 36ffd1122f..2e7434083a 100644 --- a/pc/peer_connection.cc +++ b/pc/peer_connection.cc @@ -2097,7 +2097,7 @@ void PeerConnection::SetSctpDataMid(const std::string& mid) { void PeerConnection::ResetSctpDataMid() { RTC_DCHECK_RUN_ON(signaling_thread()); sctp_mid_s_.reset(); - sctp_transport_name_s_.clear(); + SetSctpTransportName(""); } void PeerConnection::OnSctpDataChannelClosed(DataChannelInterface* channel) { @@ -2305,6 +2305,12 @@ absl::optional PeerConnection::sctp_transport_name() const { return absl::optional(); } +void PeerConnection::SetSctpTransportName(std::string sctp_transport_name) { + RTC_DCHECK_RUN_ON(signaling_thread()); + sctp_transport_name_s_ = std::move(sctp_transport_name); + ClearStatsCache(); +} + absl::optional PeerConnection::sctp_mid() const { RTC_DCHECK_RUN_ON(signaling_thread()); return sctp_mid_s_; @@ -2534,7 +2540,7 @@ bool PeerConnection::SetupDataChannelTransport_n(const std::string& mid) { SafeTask(signaling_thread_safety_.flag(), [this, name = dtls_transport->transport_name()] { RTC_DCHECK_RUN_ON(signaling_thread()); - sctp_transport_name_s_ = std::move(name); + SetSctpTransportName(std::move(name)); })); } @@ -2922,7 +2928,7 @@ bool PeerConnection::OnTransportChanged( [this, name = std::string(dtls_transport->internal()->transport_name())] { RTC_DCHECK_RUN_ON(signaling_thread()); - sctp_transport_name_s_ = std::move(name); + SetSctpTransportName(std::move(name)); })); } } diff --git a/pc/peer_connection.h b/pc/peer_connection.h index a4b21f0e01..850142b958 100644 --- a/pc/peer_connection.h +++ b/pc/peer_connection.h @@ -597,6 +597,8 @@ class PeerConnection : public PeerConnectionInternal, rtc::scoped_refptr dtls_transport, DataChannelTransportInterface* data_channel_transport) override; + void SetSctpTransportName(std::string sctp_transport_name); + std::function InitializeRtcpCallback();