Remove cricket::DtlsTransportState.
Bug: webrtc:12762
Change-Id: I7a6535f7ce57b1d521364f3c62086377f5aebf57
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218600
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34087}
diff --git a/p2p/base/dtls_transport.cc b/p2p/base/dtls_transport.cc
index 99ee0f1..76b94a8 100644
--- a/p2p/base/dtls_transport.cc
+++ b/p2p/base/dtls_transport.cc
@@ -15,6 +15,7 @@
#include <utility>
#include "absl/memory/memory.h"
+#include "api/dtls_transport_interface.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h"
#include "logging/rtc_event_log/events/rtc_event_dtls_writable_state.h"
@@ -148,7 +149,7 @@
DtlsTransport::~DtlsTransport() = default;
-DtlsTransportState DtlsTransport::dtls_state() const {
+webrtc::DtlsTransportState DtlsTransport::dtls_state() const {
return dtls_state_;
}
@@ -218,7 +219,7 @@
}
bool DtlsTransport::GetSslCipherSuite(int* cipher) {
- if (dtls_state() != DTLS_TRANSPORT_CONNECTED) {
+ if (dtls_state() != webrtc::DtlsTransportState::kConnected) {
return false;
}
@@ -276,7 +277,7 @@
remote_fingerprint_value_.size(), &err)) {
RTC_LOG(LS_ERROR) << ToString()
<< ": Couldn't set DTLS certificate digest.";
- set_dtls_state(DTLS_TRANSPORT_FAILED);
+ set_dtls_state(webrtc::DtlsTransportState::kFailed);
// If the error is "verification failed", don't return false, because
// this means the fingerprint was formatted correctly but didn't match
// the certificate from the DTLS handshake. Thus the DTLS state should go
@@ -290,12 +291,12 @@
// create a new one, resetting our state.
if (dtls_ && fingerprint_changing) {
dtls_.reset(nullptr);
- set_dtls_state(DTLS_TRANSPORT_NEW);
+ set_dtls_state(webrtc::DtlsTransportState::kNew);
set_writable(false);
}
if (!SetupDtls()) {
- set_dtls_state(DTLS_TRANSPORT_FAILED);
+ set_dtls_state(webrtc::DtlsTransportState::kFailed);
return false;
}
@@ -373,7 +374,7 @@
}
bool DtlsTransport::GetSrtpCryptoSuite(int* cipher) {
- if (dtls_state() != DTLS_TRANSPORT_CONNECTED) {
+ if (dtls_state() != webrtc::DtlsTransportState::kConnected) {
return false;
}
@@ -381,7 +382,7 @@
}
bool DtlsTransport::GetSslVersionBytes(int* version) const {
- if (dtls_state() != DTLS_TRANSPORT_CONNECTED) {
+ if (dtls_state() != webrtc::DtlsTransportState::kConnected) {
return false;
}
@@ -399,14 +400,14 @@
}
switch (dtls_state()) {
- case DTLS_TRANSPORT_NEW:
+ case webrtc::DtlsTransportState::kNew:
// Can't send data until the connection is active.
// TODO(ekr@rtfm.com): assert here if dtls_ is NULL?
return -1;
- case DTLS_TRANSPORT_CONNECTING:
+ case webrtc::DtlsTransportState::kConnecting:
// Can't send data until the connection is active.
return -1;
- case DTLS_TRANSPORT_CONNECTED:
+ case webrtc::DtlsTransportState::kConnected:
if (flags & PF_SRTP_BYPASS) {
RTC_DCHECK(!srtp_ciphers_.empty());
if (!IsRtpPacket(data, size)) {
@@ -419,17 +420,17 @@
? static_cast<int>(size)
: -1;
}
- case DTLS_TRANSPORT_FAILED:
+ case webrtc::DtlsTransportState::kFailed:
// Can't send anything when we're failed.
- RTC_LOG(LS_ERROR)
- << ToString()
- << ": Couldn't send packet due to DTLS_TRANSPORT_FAILED.";
+ RTC_LOG(LS_ERROR) << ToString()
+ << ": Couldn't send packet due to "
+ "webrtc::DtlsTransportState::kFailed.";
return -1;
- case DTLS_TRANSPORT_CLOSED:
+ case webrtc::DtlsTransportState::kClosed:
// Can't send anything when we're closed.
- RTC_LOG(LS_ERROR)
- << ToString()
- << ": Couldn't send packet due to DTLS_TRANSPORT_CLOSED.";
+ RTC_LOG(LS_ERROR) << ToString()
+ << ": Couldn't send packet due to "
+ "webrtc::DtlsTransportState::kClosed.";
return -1;
default:
RTC_NOTREACHED();
@@ -508,27 +509,30 @@
}
switch (dtls_state()) {
- case DTLS_TRANSPORT_NEW:
+ case webrtc::DtlsTransportState::kNew:
MaybeStartDtls();
break;
- case DTLS_TRANSPORT_CONNECTED:
+ case webrtc::DtlsTransportState::kConnected:
// Note: SignalWritableState fired by set_writable.
set_writable(ice_transport_->writable());
break;
- case DTLS_TRANSPORT_CONNECTING:
+ case webrtc::DtlsTransportState::kConnecting:
// Do nothing.
break;
- case DTLS_TRANSPORT_FAILED:
+ case webrtc::DtlsTransportState::kFailed:
// Should not happen. Do nothing.
- RTC_LOG(LS_ERROR)
- << ToString()
- << ": OnWritableState() called in state DTLS_TRANSPORT_FAILED.";
+ RTC_LOG(LS_ERROR) << ToString()
+ << ": OnWritableState() called in state "
+ "webrtc::DtlsTransportState::kFailed.";
break;
- case DTLS_TRANSPORT_CLOSED:
+ case webrtc::DtlsTransportState::kClosed:
// Should not happen. Do nothing.
- RTC_LOG(LS_ERROR)
- << ToString()
- << ": OnWritableState() called in state DTLS_TRANSPORT_CLOSED.";
+ RTC_LOG(LS_ERROR) << ToString()
+ << ": OnWritableState() called in state "
+ "webrtc::DtlsTransportState::kClosed.";
+ break;
+ case webrtc::DtlsTransportState::kNumValues:
+ RTC_NOTREACHED();
break;
}
}
@@ -540,7 +544,7 @@
<< ": ice_transport "
"receiving state changed to "
<< ice_transport_->receiving();
- if (!dtls_active_ || dtls_state() == DTLS_TRANSPORT_CONNECTED) {
+ if (!dtls_active_ || dtls_state() == webrtc::DtlsTransportState::kConnected) {
// Note: SignalReceivingState fired by set_receiving.
set_receiving(ice_transport_->receiving());
}
@@ -562,7 +566,7 @@
}
switch (dtls_state()) {
- case DTLS_TRANSPORT_NEW:
+ case webrtc::DtlsTransportState::kNew:
if (dtls_) {
RTC_LOG(LS_INFO) << ToString()
<< ": Packet received before DTLS started.";
@@ -591,8 +595,8 @@
}
break;
- case DTLS_TRANSPORT_CONNECTING:
- case DTLS_TRANSPORT_CONNECTED:
+ case webrtc::DtlsTransportState::kConnecting:
+ case webrtc::DtlsTransportState::kConnected:
// We should only get DTLS or SRTP packets; STUN's already been demuxed.
// Is this potentially a DTLS packet?
if (IsDtlsPacket(data, size)) {
@@ -602,7 +606,7 @@
}
} else {
// Not a DTLS packet; our handshake should be complete by now.
- if (dtls_state() != DTLS_TRANSPORT_CONNECTED) {
+ if (dtls_state() != webrtc::DtlsTransportState::kConnected) {
RTC_LOG(LS_ERROR) << ToString()
<< ": Received non-DTLS packet before DTLS "
"complete.";
@@ -623,8 +627,9 @@
SignalReadPacket(this, data, size, packet_time_us, PF_SRTP_BYPASS);
}
break;
- case DTLS_TRANSPORT_FAILED:
- case DTLS_TRANSPORT_CLOSED:
+ case webrtc::DtlsTransportState::kFailed:
+ case webrtc::DtlsTransportState::kClosed:
+ case webrtc::DtlsTransportState::kNumValues:
// This shouldn't be happening. Drop the packet.
break;
}
@@ -652,7 +657,7 @@
if (dtls_->GetState() == rtc::SS_OPEN) {
// The check for OPEN shouldn't be necessary but let's make
// sure we don't accidentally frob the state if it's closed.
- set_dtls_state(DTLS_TRANSPORT_CONNECTED);
+ set_dtls_state(webrtc::DtlsTransportState::kConnected);
set_writable(true);
}
}
@@ -671,7 +676,7 @@
// Remote peer shut down the association with no error.
RTC_LOG(LS_INFO) << ToString() << ": DTLS transport closed by remote";
set_writable(false);
- set_dtls_state(DTLS_TRANSPORT_CLOSED);
+ set_dtls_state(webrtc::DtlsTransportState::kClosed);
SignalClosed(this);
} else if (ret == rtc::SR_ERROR) {
// Remote peer shut down the association with an error.
@@ -680,7 +685,7 @@
<< ": Closed by remote with DTLS transport error, code="
<< read_error;
set_writable(false);
- set_dtls_state(DTLS_TRANSPORT_FAILED);
+ set_dtls_state(webrtc::DtlsTransportState::kFailed);
SignalClosed(this);
}
} while (ret == rtc::SR_SUCCESS);
@@ -690,10 +695,10 @@
set_writable(false);
if (!err) {
RTC_LOG(LS_INFO) << ToString() << ": DTLS transport closed";
- set_dtls_state(DTLS_TRANSPORT_CLOSED);
+ set_dtls_state(webrtc::DtlsTransportState::kClosed);
} else {
RTC_LOG(LS_INFO) << ToString() << ": DTLS transport error, code=" << err;
- set_dtls_state(DTLS_TRANSPORT_FAILED);
+ set_dtls_state(webrtc::DtlsTransportState::kFailed);
}
}
}
@@ -717,11 +722,11 @@
// configuration and therefore are our fault.
RTC_NOTREACHED() << "StartSSL failed.";
RTC_LOG(LS_ERROR) << ToString() << ": Couldn't start DTLS handshake";
- set_dtls_state(DTLS_TRANSPORT_FAILED);
+ set_dtls_state(webrtc::DtlsTransportState::kFailed);
return;
}
RTC_LOG(LS_INFO) << ToString() << ": DtlsTransport: Started DTLS handshake";
- set_dtls_state(DTLS_TRANSPORT_CONNECTING);
+ set_dtls_state(webrtc::DtlsTransportState::kConnecting);
// Now that the handshake has started, we can process a cached ClientHello
// (if one exists).
if (cached_client_hello_.size()) {
@@ -789,16 +794,17 @@
SignalWritableState(this);
}
-void DtlsTransport::set_dtls_state(DtlsTransportState state) {
+void DtlsTransport::set_dtls_state(webrtc::DtlsTransportState state) {
if (dtls_state_ == state) {
return;
}
if (event_log_) {
- event_log_->Log(std::make_unique<webrtc::RtcEventDtlsTransportState>(
- ConvertDtlsTransportState(state)));
+ event_log_->Log(
+ std::make_unique<webrtc::RtcEventDtlsTransportState>(state));
}
- RTC_LOG(LS_VERBOSE) << ToString() << ": set_dtls_state from:" << dtls_state_
- << " to " << state;
+ RTC_LOG(LS_VERBOSE) << ToString() << ": set_dtls_state from:"
+ << static_cast<int>(dtls_state_) << " to "
+ << static_cast<int>(state);
dtls_state_ = state;
SendDtlsState(this, state);
}
diff --git a/p2p/base/dtls_transport.h b/p2p/base/dtls_transport.h
index f37e468..0296a74 100644
--- a/p2p/base/dtls_transport.h
+++ b/p2p/base/dtls_transport.h
@@ -16,6 +16,7 @@
#include <vector>
#include "api/crypto/crypto_options.h"
+#include "api/dtls_transport_interface.h"
#include "api/sequence_checker.h"
#include "p2p/base/dtls_transport_internal.h"
#include "p2p/base/ice_transport_internal.h"
@@ -109,7 +110,7 @@
~DtlsTransport() override;
- DtlsTransportState dtls_state() const override;
+ webrtc::DtlsTransportState dtls_state() const override;
const std::string& transport_name() const override;
int component() const override;
@@ -219,12 +220,12 @@
void set_receiving(bool receiving);
void set_writable(bool writable);
// Sets the DTLS state, signaling if necessary.
- void set_dtls_state(DtlsTransportState state);
+ void set_dtls_state(webrtc::DtlsTransportState state);
webrtc::SequenceChecker thread_checker_;
const int component_;
- DtlsTransportState dtls_state_ = DTLS_TRANSPORT_NEW;
+ webrtc::DtlsTransportState dtls_state_ = webrtc::DtlsTransportState::kNew;
// Underlying ice_transport, not owned by this class.
IceTransportInternal* const ice_transport_;
std::unique_ptr<rtc::SSLStreamAdapter> dtls_; // The DTLS stream
diff --git a/p2p/base/dtls_transport_internal.cc b/p2p/base/dtls_transport_internal.cc
index dd23b1b..6997dbc 100644
--- a/p2p/base/dtls_transport_internal.cc
+++ b/p2p/base/dtls_transport_internal.cc
@@ -16,22 +16,4 @@
DtlsTransportInternal::~DtlsTransportInternal() = default;
-webrtc::DtlsTransportState ConvertDtlsTransportState(
- cricket::DtlsTransportState cricket_state) {
- switch (cricket_state) {
- case DtlsTransportState::DTLS_TRANSPORT_NEW:
- return webrtc::DtlsTransportState::kNew;
- case DtlsTransportState::DTLS_TRANSPORT_CONNECTING:
- return webrtc::DtlsTransportState::kConnecting;
- case DtlsTransportState::DTLS_TRANSPORT_CONNECTED:
- return webrtc::DtlsTransportState::kConnected;
- case DtlsTransportState::DTLS_TRANSPORT_CLOSED:
- return webrtc::DtlsTransportState::kClosed;
- case DtlsTransportState::DTLS_TRANSPORT_FAILED:
- return webrtc::DtlsTransportState::kFailed;
- }
- RTC_NOTREACHED();
- return webrtc::DtlsTransportState::kNew;
-}
-
} // namespace cricket
diff --git a/p2p/base/dtls_transport_internal.h b/p2p/base/dtls_transport_internal.h
index d0af5e8..0b26a7f 100644
--- a/p2p/base/dtls_transport_internal.h
+++ b/p2p/base/dtls_transport_internal.h
@@ -32,24 +32,6 @@
namespace cricket {
-enum DtlsTransportState {
- // Haven't started negotiating.
- DTLS_TRANSPORT_NEW = static_cast<int>(webrtc::DtlsTransportState::kNew),
- // Have started negotiating.
- DTLS_TRANSPORT_CONNECTING =
- static_cast<int>(webrtc::DtlsTransportState::kConnecting),
- // Negotiated, and has a secure connection.
- DTLS_TRANSPORT_CONNECTED =
- static_cast<int>(webrtc::DtlsTransportState::kConnected),
- // Transport is closed.
- DTLS_TRANSPORT_CLOSED = static_cast<int>(webrtc::DtlsTransportState::kClosed),
- // Failed due to some error in the handshake process.
- DTLS_TRANSPORT_FAILED = static_cast<int>(webrtc::DtlsTransportState::kFailed),
-};
-
-webrtc::DtlsTransportState ConvertDtlsTransportState(
- cricket::DtlsTransportState cricket_state);
-
enum PacketFlags {
PF_NORMAL = 0x00, // A normal packet.
PF_SRTP_BYPASS = 0x01, // An encrypted SRTP packet; bypass any additional
@@ -66,7 +48,7 @@
public:
~DtlsTransportInternal() override;
- virtual DtlsTransportState dtls_state() const = 0;
+ virtual webrtc::DtlsTransportState dtls_state() const = 0;
virtual int component() const = 0;
@@ -117,21 +99,6 @@
// Expose the underneath IceTransport.
virtual IceTransportInternal* ice_transport() = 0;
- // F: void(DtlsTransportInternal*, const DtlsTransportState)
- template <typename F>
- void SubscribeDtlsState(F&& callback) {
- dtls_state_callback_list_.AddReceiver(std::forward<F>(callback));
- }
-
- template <typename F>
- void SubscribeDtlsState(const void* id, F&& callback) {
- dtls_state_callback_list_.AddReceiver(id, std::forward<F>(callback));
- }
- // Unsubscribe the subscription with given id.
- void UnsubscribeDtlsState(const void* id) {
- dtls_state_callback_list_.RemoveReceivers(id);
- }
-
// F: void(DtlsTransportInternal*, const webrtc::DtlsTransportState)
template <typename F>
void SubscribeDtlsTransportState(F&& callback) {
@@ -149,10 +116,8 @@
}
void SendDtlsState(DtlsTransportInternal* transport,
- DtlsTransportState state) {
- dtls_state_callback_list_.Send(transport, state);
- dtls_transport_state_callback_list_.Send(transport,
- ConvertDtlsTransportState(state));
+ webrtc::DtlsTransportState state) {
+ dtls_transport_state_callback_list_.Send(transport, state);
}
// Emitted whenever the Dtls handshake failed on some transport channel.
@@ -173,10 +138,6 @@
RTC_DISALLOW_COPY_AND_ASSIGN(DtlsTransportInternal);
webrtc::CallbackList<const rtc::SSLHandshakeError>
dtls_handshake_error_callback_list_;
- // TODO(bugs.webrtc.org/12762): Remove in favor of
- // dtls_transport_state_callback_list_.
- webrtc::CallbackList<DtlsTransportInternal*, const DtlsTransportState>
- dtls_state_callback_list_;
webrtc::CallbackList<DtlsTransportInternal*, const webrtc::DtlsTransportState>
dtls_transport_state_callback_list_;
};
diff --git a/p2p/base/dtls_transport_unittest.cc b/p2p/base/dtls_transport_unittest.cc
index a2ad213..f01566d 100644
--- a/p2p/base/dtls_transport_unittest.cc
+++ b/p2p/base/dtls_transport_unittest.cc
@@ -15,6 +15,7 @@
#include <set>
#include <utility>
+#include "api/dtls_transport_interface.h"
#include "p2p/base/fake_ice_transport.h"
#include "p2p/base/packet_transport_internal.h"
#include "rtc_base/checks.h"
@@ -668,18 +669,19 @@
// Sanity check that the handshake hasn't already finished.
EXPECT_FALSE(client1_.dtls_transport()->IsDtlsConnected() ||
client1_.dtls_transport()->dtls_state() ==
- DTLS_TRANSPORT_FAILED);
+ webrtc::DtlsTransportState::kFailed);
EXPECT_TRUE_SIMULATED_WAIT(
client1_.dtls_transport()->IsDtlsConnected() ||
client1_.dtls_transport()->dtls_state() ==
- DTLS_TRANSPORT_FAILED,
+ webrtc::DtlsTransportState::kFailed,
kTimeout, fake_clock_);
break;
}
}
- DtlsTransportState expected_final_state =
- valid_fingerprint ? DTLS_TRANSPORT_CONNECTED : DTLS_TRANSPORT_FAILED;
+ webrtc::DtlsTransportState expected_final_state =
+ valid_fingerprint ? webrtc::DtlsTransportState::kConnected
+ : webrtc::DtlsTransportState::kFailed;
EXPECT_EQ_SIMULATED_WAIT(expected_final_state,
client1_.dtls_transport()->dtls_state(), kTimeout,
fake_clock_);
diff --git a/p2p/base/fake_dtls_transport.h b/p2p/base/fake_dtls_transport.h
index 0628c4c..e02755c 100644
--- a/p2p/base/fake_dtls_transport.h
+++ b/p2p/base/fake_dtls_transport.h
@@ -17,6 +17,7 @@
#include <vector>
#include "api/crypto/crypto_options.h"
+#include "api/dtls_transport_interface.h"
#include "p2p/base/dtls_transport_internal.h"
#include "p2p/base/fake_ice_transport.h"
#include "rtc_base/fake_ssl_identity.h"
@@ -89,7 +90,7 @@
ice_transport_->SetReceiving(receiving);
set_receiving(receiving);
}
- void SetDtlsState(DtlsTransportState state) {
+ void SetDtlsState(webrtc::DtlsTransportState state) {
dtls_state_ = state;
SendDtlsState(this, dtls_state_);
}
@@ -121,7 +122,7 @@
if (!dtls_role_) {
dtls_role_ = std::move(rtc::SSL_CLIENT);
}
- SetDtlsState(DTLS_TRANSPORT_CONNECTED);
+ SetDtlsState(webrtc::DtlsTransportState::kConnected);
ice_transport_->SetDestination(
static_cast<FakeIceTransport*>(dest->ice_transport()), asymmetric);
} else {
@@ -133,7 +134,7 @@
}
// Fake DtlsTransportInternal implementation.
- DtlsTransportState dtls_state() const override { return dtls_state_; }
+ webrtc::DtlsTransportState dtls_state() const override { return dtls_state_; }
const std::string& transport_name() const override { return transport_name_; }
int component() const override { return component_; }
const rtc::SSLFingerprint& dtls_fingerprint() const {
@@ -295,7 +296,7 @@
int crypto_suite_ = rtc::SRTP_AES128_CM_SHA1_80;
absl::optional<int> ssl_cipher_suite_;
- DtlsTransportState dtls_state_ = DTLS_TRANSPORT_NEW;
+ webrtc::DtlsTransportState dtls_state_ = webrtc::DtlsTransportState::kNew;
bool receiving_ = false;
bool writable_ = false;
diff --git a/pc/dtls_srtp_transport.cc b/pc/dtls_srtp_transport.cc
index f272ab79..ac091c6 100644
--- a/pc/dtls_srtp_transport.cc
+++ b/pc/dtls_srtp_transport.cc
@@ -15,6 +15,7 @@
#include <string>
#include <utility>
+#include "api/dtls_transport_interface.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/ssl_stream_adapter.h"
@@ -114,10 +115,9 @@
auto rtcp_dtls_transport =
rtcp_mux_enabled() ? nullptr : rtcp_dtls_transport_;
return (rtp_dtls_transport_ &&
- rtp_dtls_transport_->dtls_state() ==
- cricket::DTLS_TRANSPORT_CONNECTED &&
+ rtp_dtls_transport_->dtls_state() == DtlsTransportState::kConnected &&
(!rtcp_dtls_transport || rtcp_dtls_transport->dtls_state() ==
- cricket::DTLS_TRANSPORT_CONNECTED));
+ DtlsTransportState::kConnected));
}
bool DtlsSrtpTransport::IsDtlsWritable() {
@@ -275,17 +275,16 @@
}
if (*old_dtls_transport) {
- (*old_dtls_transport)->UnsubscribeDtlsState(this);
+ (*old_dtls_transport)->UnsubscribeDtlsTransportState(this);
}
*old_dtls_transport = new_dtls_transport;
if (new_dtls_transport) {
- new_dtls_transport->SubscribeDtlsState(
- this, [this](cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state) {
- OnDtlsState(transport, state);
- });
+ new_dtls_transport->SubscribeDtlsTransportState(
+ this,
+ [this](cricket::DtlsTransportInternal* transport,
+ DtlsTransportState state) { OnDtlsState(transport, state); });
}
}
@@ -300,7 +299,7 @@
}
void DtlsSrtpTransport::OnDtlsState(cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state) {
+ DtlsTransportState state) {
RTC_DCHECK(transport == rtp_dtls_transport_ ||
transport == rtcp_dtls_transport_);
@@ -308,7 +307,7 @@
on_dtls_state_change_();
}
- if (state != cricket::DTLS_TRANSPORT_CONNECTED) {
+ if (state != DtlsTransportState::kConnected) {
ResetParams();
return;
}
diff --git a/pc/dtls_srtp_transport.h b/pc/dtls_srtp_transport.h
index bc82fd5..9c52dcf 100644
--- a/pc/dtls_srtp_transport.h
+++ b/pc/dtls_srtp_transport.h
@@ -16,6 +16,7 @@
#include "absl/types/optional.h"
#include "api/crypto_params.h"
+#include "api/dtls_transport_interface.h"
#include "api/rtc_error.h"
#include "p2p/base/dtls_transport_internal.h"
#include "p2p/base/packet_transport_internal.h"
@@ -82,7 +83,7 @@
cricket::DtlsTransportInternal* rtcp_dtls_transport);
void OnDtlsState(cricket::DtlsTransportInternal* dtls_transport,
- cricket::DtlsTransportState state);
+ DtlsTransportState state);
// Override the SrtpTransport::OnWritableState.
void OnWritableState(rtc::PacketTransportInternal* packet_transport) override;
diff --git a/pc/dtls_transport.cc b/pc/dtls_transport.cc
index 1369db1..074f44e 100644
--- a/pc/dtls_transport.cc
+++ b/pc/dtls_transport.cc
@@ -13,6 +13,7 @@
#include <utility>
#include "absl/types/optional.h"
+#include "api/dtls_transport_interface.h"
#include "api/sequence_checker.h"
#include "pc/ice_transport.h"
#include "rtc_base/checks.h"
@@ -22,26 +23,6 @@
namespace webrtc {
-namespace {
-
-DtlsTransportState TranslateState(cricket::DtlsTransportState internal_state) {
- switch (internal_state) {
- case cricket::DTLS_TRANSPORT_NEW:
- return DtlsTransportState::kNew;
- case cricket::DTLS_TRANSPORT_CONNECTING:
- return DtlsTransportState::kConnecting;
- case cricket::DTLS_TRANSPORT_CONNECTED:
- return DtlsTransportState::kConnected;
- case cricket::DTLS_TRANSPORT_CLOSED:
- return DtlsTransportState::kClosed;
- case cricket::DTLS_TRANSPORT_FAILED:
- return DtlsTransportState::kFailed;
- }
- RTC_CHECK_NOTREACHED();
-}
-
-} // namespace
-
// Implementation of DtlsTransportInterface
DtlsTransport::DtlsTransport(
std::unique_ptr<cricket::DtlsTransportInternal> internal)
@@ -51,9 +32,9 @@
ice_transport_(rtc::make_ref_counted<IceTransportWithPointer>(
internal_dtls_transport_->ice_transport())) {
RTC_DCHECK(internal_dtls_transport_.get());
- internal_dtls_transport_->SubscribeDtlsState(
+ internal_dtls_transport_->SubscribeDtlsTransportState(
[this](cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state) {
+ DtlsTransportState state) {
OnInternalDtlsState(transport, state);
});
UpdateInformation();
@@ -90,7 +71,7 @@
RTC_DCHECK_RUN_ON(owner_thread_);
RTC_DCHECK(internal());
bool must_send_event =
- (internal()->dtls_state() != cricket::DTLS_TRANSPORT_CLOSED);
+ (internal()->dtls_state() != DtlsTransportState::kClosed);
// The destructor of cricket::DtlsTransportInternal calls back
// into DtlsTransport, so we can't hold the lock while releasing.
std::unique_ptr<cricket::DtlsTransportInternal> transport_to_release;
@@ -107,7 +88,7 @@
void DtlsTransport::OnInternalDtlsState(
cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state) {
+ DtlsTransportState state) {
RTC_DCHECK_RUN_ON(owner_thread_);
RTC_DCHECK(transport == internal());
RTC_DCHECK(state == internal()->dtls_state());
@@ -122,7 +103,7 @@
MutexLock lock(&lock_);
if (internal_dtls_transport_) {
if (internal_dtls_transport_->dtls_state() ==
- cricket::DTLS_TRANSPORT_CONNECTED) {
+ DtlsTransportState::kConnected) {
bool success = true;
int ssl_cipher_suite;
int tls_version;
@@ -132,20 +113,19 @@
success &= internal_dtls_transport_->GetSrtpCryptoSuite(&srtp_cipher);
if (success) {
info_ = DtlsTransportInformation(
- TranslateState(internal_dtls_transport_->dtls_state()), tls_version,
+ internal_dtls_transport_->dtls_state(), tls_version,
ssl_cipher_suite, srtp_cipher,
internal_dtls_transport_->GetRemoteSSLCertChain());
} else {
RTC_LOG(LS_ERROR) << "DtlsTransport in connected state has incomplete "
"TLS information";
info_ = DtlsTransportInformation(
- TranslateState(internal_dtls_transport_->dtls_state()),
- absl::nullopt, absl::nullopt, absl::nullopt,
+ internal_dtls_transport_->dtls_state(), absl::nullopt,
+ absl::nullopt, absl::nullopt,
internal_dtls_transport_->GetRemoteSSLCertChain());
}
} else {
- info_ = DtlsTransportInformation(
- TranslateState(internal_dtls_transport_->dtls_state()));
+ info_ = DtlsTransportInformation(internal_dtls_transport_->dtls_state());
}
} else {
info_ = DtlsTransportInformation(DtlsTransportState::kClosed);
diff --git a/pc/dtls_transport.h b/pc/dtls_transport.h
index 893b126..cca4cc9 100644
--- a/pc/dtls_transport.h
+++ b/pc/dtls_transport.h
@@ -60,7 +60,7 @@
private:
void OnInternalDtlsState(cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state);
+ DtlsTransportState state);
void UpdateInformation();
DtlsTransportObserverInterface* observer_ = nullptr;
diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc
index 372f4f6..05f8b3a 100644
--- a/pc/jsep_transport_controller.cc
+++ b/pc/jsep_transport_controller.cc
@@ -17,6 +17,7 @@
#include <utility>
#include "absl/algorithm/container.h"
+#include "api/dtls_transport_interface.h"
#include "api/rtp_parameters.h"
#include "api/sequence_checker.h"
#include "api/transport/enums.h"
@@ -1291,7 +1292,7 @@
bool all_done_gathering = !dtls_transports.empty();
std::map<IceTransportState, int> ice_state_counts;
- std::map<cricket::DtlsTransportState, int> dtls_state_counts;
+ std::map<DtlsTransportState, int> dtls_state_counts;
for (const auto& dtls : dtls_transports) {
any_failed = any_failed || dtls->ice_transport()->GetState() ==
@@ -1393,16 +1394,15 @@
// Note that "connecting" is only a valid state for DTLS transports while
// "checking", "completed" and "disconnected" are only valid for ICE
// transports.
- int total_connected = total_ice_connected +
- dtls_state_counts[cricket::DTLS_TRANSPORT_CONNECTED];
+ int total_connected =
+ total_ice_connected + dtls_state_counts[DtlsTransportState::kConnected];
int total_dtls_connecting =
- dtls_state_counts[cricket::DTLS_TRANSPORT_CONNECTING];
+ dtls_state_counts[DtlsTransportState::kConnecting];
int total_failed =
- total_ice_failed + dtls_state_counts[cricket::DTLS_TRANSPORT_FAILED];
+ total_ice_failed + dtls_state_counts[DtlsTransportState::kFailed];
int total_closed =
- total_ice_closed + dtls_state_counts[cricket::DTLS_TRANSPORT_CLOSED];
- int total_new =
- total_ice_new + dtls_state_counts[cricket::DTLS_TRANSPORT_NEW];
+ total_ice_closed + dtls_state_counts[DtlsTransportState::kClosed];
+ int total_new = total_ice_new + dtls_state_counts[DtlsTransportState::kNew];
int total_transports = total_ice * 2;
if (total_failed > 0) {
diff --git a/pc/jsep_transport_controller_unittest.cc b/pc/jsep_transport_controller_unittest.cc
index d13a94c..2b261c8 100644
--- a/pc/jsep_transport_controller_unittest.cc
+++ b/pc/jsep_transport_controller_unittest.cc
@@ -13,6 +13,7 @@
#include <map>
#include <memory>
+#include "api/dtls_transport_interface.h"
#include "p2p/base/dtls_transport_factory.h"
#include "p2p/base/fake_dtls_transport.h"
#include "p2p/base/fake_ice_transport.h"
@@ -693,8 +694,8 @@
combined_connection_state_, kTimeout);
EXPECT_EQ(2, combined_connection_state_signal_count_);
- fake_audio_dtls->SetDtlsState(cricket::DTLS_TRANSPORT_CONNECTED);
- fake_video_dtls->SetDtlsState(cricket::DTLS_TRANSPORT_CONNECTED);
+ fake_audio_dtls->SetDtlsState(DtlsTransportState::kConnected);
+ fake_video_dtls->SetDtlsState(DtlsTransportState::kConnected);
// Set the connection count to be 2 and the cricket::FakeIceTransport will set
// the transport state to be STATE_CONNECTING.
fake_video_dtls->fake_ice_transport()->SetConnectionCount(2);
@@ -750,8 +751,8 @@
combined_connection_state_, kTimeout);
EXPECT_EQ(2, combined_connection_state_signal_count_);
- fake_audio_dtls->SetDtlsState(cricket::DTLS_TRANSPORT_CONNECTED);
- fake_video_dtls->SetDtlsState(cricket::DTLS_TRANSPORT_CONNECTED);
+ fake_audio_dtls->SetDtlsState(DtlsTransportState::kConnected);
+ fake_video_dtls->SetDtlsState(DtlsTransportState::kConnected);
// Set the connection count to be 1 and the cricket::FakeIceTransport will set
// the transport state to be STATE_COMPLETED.
fake_video_dtls->fake_ice_transport()->SetTransportState(
@@ -839,7 +840,7 @@
fake_audio_dtls->SetWritable(true);
fake_audio_dtls->fake_ice_transport()->SetCandidatesGatheringComplete();
fake_audio_dtls->fake_ice_transport()->SetConnectionCount(1);
- fake_audio_dtls->SetDtlsState(cricket::DTLS_TRANSPORT_CONNECTED);
+ fake_audio_dtls->SetDtlsState(DtlsTransportState::kConnected);
EXPECT_EQ(1, gathering_state_signal_count_);
// Set the remote description and enable the bundle.
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 7e781a7..f3a94b0 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -209,20 +209,20 @@
}
const char* DtlsTransportStateToRTCDtlsTransportState(
- cricket::DtlsTransportState state) {
+ DtlsTransportState state) {
switch (state) {
- case cricket::DTLS_TRANSPORT_NEW:
+ case DtlsTransportState::kNew:
return RTCDtlsTransportState::kNew;
- case cricket::DTLS_TRANSPORT_CONNECTING:
+ case DtlsTransportState::kConnecting:
return RTCDtlsTransportState::kConnecting;
- case cricket::DTLS_TRANSPORT_CONNECTED:
+ case DtlsTransportState::kConnected:
return RTCDtlsTransportState::kConnected;
- case cricket::DTLS_TRANSPORT_CLOSED:
+ case DtlsTransportState::kClosed:
return RTCDtlsTransportState::kClosed;
- case cricket::DTLS_TRANSPORT_FAILED:
+ case DtlsTransportState::kFailed:
return RTCDtlsTransportState::kFailed;
default:
- RTC_NOTREACHED();
+ RTC_CHECK_NOTREACHED();
return nullptr;
}
}
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 6a56839..def98d4 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -22,6 +22,7 @@
#include "absl/memory/memory.h"
#include "absl/strings/str_replace.h"
+#include "api/dtls_transport_interface.h"
#include "api/media_stream_track.h"
#include "api/rtp_parameters.h"
#include "api/stats/rtc_stats_report.h"
@@ -2322,7 +2323,7 @@
rtp_transport_channel_stats.component = cricket::ICE_CANDIDATE_COMPONENT_RTP;
rtp_transport_channel_stats.ice_transport_stats.connection_infos.push_back(
rtp_connection_info);
- rtp_transport_channel_stats.dtls_state = cricket::DTLS_TRANSPORT_NEW;
+ rtp_transport_channel_stats.dtls_state = DtlsTransportState::kNew;
rtp_transport_channel_stats.ice_transport_stats
.selected_candidate_pair_changes = 1;
pc_->SetTransportStats(kTransportName, {rtp_transport_channel_stats});
@@ -2360,7 +2361,7 @@
cricket::ICE_CANDIDATE_COMPONENT_RTCP;
rtcp_transport_channel_stats.ice_transport_stats.connection_infos.push_back(
rtcp_connection_info);
- rtcp_transport_channel_stats.dtls_state = cricket::DTLS_TRANSPORT_CONNECTING;
+ rtcp_transport_channel_stats.dtls_state = DtlsTransportState::kConnecting;
pc_->SetTransportStats(kTransportName, {rtp_transport_channel_stats,
rtcp_transport_channel_stats});
@@ -2476,7 +2477,7 @@
rtp_transport_channel_stats.ice_transport_stats.connection_infos.push_back(
rtp_connection_info);
// The state must be connected in order for crypto parameters to show up.
- rtp_transport_channel_stats.dtls_state = cricket::DTLS_TRANSPORT_CONNECTED;
+ rtp_transport_channel_stats.dtls_state = DtlsTransportState::kConnected;
rtp_transport_channel_stats.ice_transport_stats
.selected_candidate_pair_changes = 1;
rtp_transport_channel_stats.ssl_version_bytes = 0x0203;
@@ -2963,11 +2964,11 @@
cricket::TransportChannelStats rtp_transport_channel_stats;
rtp_transport_channel_stats.component = cricket::ICE_CANDIDATE_COMPONENT_RTP;
- rtp_transport_channel_stats.dtls_state = cricket::DTLS_TRANSPORT_NEW;
+ rtp_transport_channel_stats.dtls_state = DtlsTransportState::kNew;
cricket::TransportChannelStats rtcp_transport_channel_stats;
rtcp_transport_channel_stats.component =
cricket::ICE_CANDIDATE_COMPONENT_RTCP;
- rtcp_transport_channel_stats.dtls_state = cricket::DTLS_TRANSPORT_NEW;
+ rtcp_transport_channel_stats.dtls_state = DtlsTransportState::kNew;
pc_->SetTransportStats("TransportName", {rtp_transport_channel_stats,
rtcp_transport_channel_stats});
AddSenderInfoAndMediaChannel("TransportName", {report_block_data},
diff --git a/pc/sctp_transport.cc b/pc/sctp_transport.cc
index 14a09d7..7d4e455 100644
--- a/pc/sctp_transport.cc
+++ b/pc/sctp_transport.cc
@@ -14,6 +14,7 @@
#include <utility>
#include "absl/types/optional.h"
+#include "api/dtls_transport_interface.h"
#include "api/sequence_checker.h"
#include "rtc_base/checks.h"
#include "rtc_base/location.h"
@@ -95,9 +96,9 @@
if (transport) {
internal_sctp_transport_->SetDtlsTransport(transport->internal());
- transport->internal()->SubscribeDtlsState(
+ transport->internal()->SubscribeDtlsTransportState(
[this](cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state) {
+ DtlsTransportState state) {
OnDtlsStateChange(transport, state);
});
if (info_.state() == SctpTransportState::kNew) {
@@ -159,11 +160,11 @@
}
void SctpTransport::OnDtlsStateChange(cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state) {
+ DtlsTransportState state) {
RTC_DCHECK_RUN_ON(owner_thread_);
RTC_CHECK(transport == dtls_transport_->internal());
- if (state == cricket::DTLS_TRANSPORT_CLOSED ||
- state == cricket::DTLS_TRANSPORT_FAILED) {
+ if (state == DtlsTransportState::kClosed ||
+ state == DtlsTransportState::kFailed) {
UpdateInformation(SctpTransportState::kClosed);
// TODO(http://bugs.webrtc.org/11090): Close all the data channels
}
diff --git a/pc/sctp_transport.h b/pc/sctp_transport.h
index a8bc45b..87fde53 100644
--- a/pc/sctp_transport.h
+++ b/pc/sctp_transport.h
@@ -71,7 +71,7 @@
void OnInternalClosingProcedureStartedRemotely(int sid);
void OnInternalClosingProcedureComplete(int sid);
void OnDtlsStateChange(cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state);
+ DtlsTransportState state);
// NOTE: |owner_thread_| is the thread that the SctpTransport object is
// constructed on. In the context of PeerConnection, it's the network thread.
diff --git a/pc/sctp_transport_unittest.cc b/pc/sctp_transport_unittest.cc
index b4618ed..679b481 100644
--- a/pc/sctp_transport_unittest.cc
+++ b/pc/sctp_transport_unittest.cc
@@ -14,6 +14,7 @@
#include <vector>
#include "absl/memory/memory.h"
+#include "api/dtls_transport_interface.h"
#include "p2p/base/fake_dtls_transport.h"
#include "pc/dtls_transport.h"
#include "rtc_base/gunit.h"
@@ -204,7 +205,7 @@
ASSERT_EQ_WAIT(SctpTransportState::kConnected, observer_.State(),
kDefaultTimeout);
static_cast<cricket::FakeDtlsTransport*>(dtls_transport_->internal())
- ->SetDtlsState(cricket::DTLS_TRANSPORT_CLOSED);
+ ->SetDtlsState(DtlsTransportState::kClosed);
ASSERT_EQ_WAIT(SctpTransportState::kClosed, observer_.State(),
kDefaultTimeout);
}
diff --git a/pc/transport_stats.h b/pc/transport_stats.h
index 7cb95f4..173af91 100644
--- a/pc/transport_stats.h
+++ b/pc/transport_stats.h
@@ -14,6 +14,7 @@
#include <string>
#include <vector>
+#include "api/dtls_transport_interface.h"
#include "p2p/base/dtls_transport_internal.h"
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/port.h"
@@ -30,7 +31,7 @@
int ssl_version_bytes = 0;
int srtp_crypto_suite = rtc::SRTP_INVALID_CRYPTO_SUITE;
int ssl_cipher_suite = rtc::TLS_NULL_WITH_NULL_NULL;
- DtlsTransportState dtls_state = DTLS_TRANSPORT_NEW;
+ webrtc::DtlsTransportState dtls_state = webrtc::DtlsTransportState::kNew;
IceTransportStats ice_transport_stats;
};