Add IceTransportInterface object
This creates the API for an ICE transport object, and lets it
be accessible from a DTLS transport object.
Bug: chromium:907849
Change-Id: Ieb24570217dec75ce0deca8420739c1f116fbba4
Reviewed-on: https://webrtc-review.googlesource.com/c/118703
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26472}
diff --git a/pc/dtls_transport.cc b/pc/dtls_transport.cc
index 4709107..62a75f2 100644
--- a/pc/dtls_transport.cc
+++ b/pc/dtls_transport.cc
@@ -12,6 +12,8 @@
#include <utility>
+#include "pc/ice_transport.h"
+
namespace webrtc {
namespace {
@@ -46,6 +48,8 @@
RTC_DCHECK(internal_dtls_transport_.get());
internal_dtls_transport_->SignalDtlsState.connect(
this, &DtlsTransport::OnInternalDtlsState);
+ ice_transport_ = new rtc::RefCountedObject<IceTransportWithPointer>(
+ internal_dtls_transport_->ice_transport());
}
DtlsTransport::~DtlsTransport() {
@@ -74,6 +78,10 @@
observer_ = nullptr;
}
+rtc::scoped_refptr<IceTransportInterface> DtlsTransport::ice_transport() {
+ return ice_transport_;
+}
+
// Internal functions
void DtlsTransport::Clear() {
RTC_DCHECK(signaling_thread_->IsCurrent());
@@ -86,6 +94,7 @@
} else {
internal_dtls_transport_.reset();
}
+ ice_transport_->Clear();
}
void DtlsTransport::OnInternalDtlsState(