summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/api/dtls_transport_interface.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/api/dtls_transport_interface.cc')
-rw-r--r--third_party/libwebrtc/api/dtls_transport_interface.cc73
1 files changed, 73 insertions, 0 deletions
diff --git a/third_party/libwebrtc/api/dtls_transport_interface.cc b/third_party/libwebrtc/api/dtls_transport_interface.cc
new file mode 100644
index 0000000000..faebc0972f
--- /dev/null
+++ b/third_party/libwebrtc/api/dtls_transport_interface.cc
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2019 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "api/dtls_transport_interface.h"
+
+namespace webrtc {
+
+DtlsTransportInformation::DtlsTransportInformation()
+ : state_(DtlsTransportState::kNew) {}
+
+DtlsTransportInformation::DtlsTransportInformation(DtlsTransportState state)
+ : state_(state) {}
+
+DtlsTransportInformation::DtlsTransportInformation(
+ DtlsTransportState state,
+ absl::optional<DtlsTransportTlsRole> role,
+ absl::optional<int> tls_version,
+ absl::optional<int> ssl_cipher_suite,
+ absl::optional<int> srtp_cipher_suite,
+ std::unique_ptr<rtc::SSLCertChain> remote_ssl_certificates)
+ : state_(state),
+ role_(role),
+ tls_version_(tls_version),
+ ssl_cipher_suite_(ssl_cipher_suite),
+ srtp_cipher_suite_(srtp_cipher_suite),
+ remote_ssl_certificates_(std::move(remote_ssl_certificates)) {}
+
+// Deprecated version
+DtlsTransportInformation::DtlsTransportInformation(
+ DtlsTransportState state,
+ absl::optional<int> tls_version,
+ absl::optional<int> ssl_cipher_suite,
+ absl::optional<int> srtp_cipher_suite,
+ std::unique_ptr<rtc::SSLCertChain> remote_ssl_certificates)
+ : state_(state),
+ role_(absl::nullopt),
+ tls_version_(tls_version),
+ ssl_cipher_suite_(ssl_cipher_suite),
+ srtp_cipher_suite_(srtp_cipher_suite),
+ remote_ssl_certificates_(std::move(remote_ssl_certificates)) {}
+
+DtlsTransportInformation::DtlsTransportInformation(
+ const DtlsTransportInformation& c)
+ : state_(c.state()),
+ role_(c.role_),
+ tls_version_(c.tls_version_),
+ ssl_cipher_suite_(c.ssl_cipher_suite_),
+ srtp_cipher_suite_(c.srtp_cipher_suite_),
+ remote_ssl_certificates_(c.remote_ssl_certificates()
+ ? c.remote_ssl_certificates()->Clone()
+ : nullptr) {}
+
+DtlsTransportInformation& DtlsTransportInformation::operator=(
+ const DtlsTransportInformation& c) {
+ state_ = c.state();
+ role_ = c.role_;
+ tls_version_ = c.tls_version_;
+ ssl_cipher_suite_ = c.ssl_cipher_suite_;
+ srtp_cipher_suite_ = c.srtp_cipher_suite_;
+ remote_ssl_certificates_ = c.remote_ssl_certificates()
+ ? c.remote_ssl_certificates()->Clone()
+ : nullptr;
+ return *this;
+}
+
+} // namespace webrtc