Fix ICE connection in datagram_transport.

Connect ICE state changes to datagram transport regardless of bypass mode.

ICE states were connected to datagram transport only in bypass mode. As a result, if we received datagram state change notification before ICE state change notification, the state was not propagated.

TODO: We need fake datagram transport implementation/test so that we could unit test such failures without relying on downstream projects.

Bug: webrtc:9719
Change-Id: I5a180676e0d05f707b2a43d07e8c04fb10985027
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138982
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28094}
diff --git a/p2p/base/datagram_dtls_adaptor.cc b/p2p/base/datagram_dtls_adaptor.cc
index ecf14b3..344f1c1 100644
--- a/p2p/base/datagram_dtls_adaptor.cc
+++ b/p2p/base/datagram_dtls_adaptor.cc
@@ -58,6 +58,17 @@
 }
 
 void DatagramDtlsAdaptor::ConnectToIceTransport() {
+  ice_transport_->SignalWritableState.connect(
+      this, &DatagramDtlsAdaptor::OnWritableState);
+  ice_transport_->SignalReadyToSend.connect(
+      this, &DatagramDtlsAdaptor::OnReadyToSend);
+  ice_transport_->SignalReceivingState.connect(
+      this, &DatagramDtlsAdaptor::OnReceivingState);
+
+  // Datagram transport does not propagate network route change.
+  ice_transport_->SignalNetworkRouteChanged.connect(
+      this, &DatagramDtlsAdaptor::OnNetworkRouteChanged);
+
   if (kBypassDatagramDtlsTestOnly) {
     // In bypass mode we have to subscribe to ICE read and sent events.
     // Test only case to use ICE directly instead of data transport.
@@ -66,21 +77,10 @@
 
     ice_transport_->SignalSentPacket.connect(
         this, &DatagramDtlsAdaptor::OnSentPacket);
-
-    ice_transport_->SignalWritableState.connect(
-        this, &DatagramDtlsAdaptor::OnWritableState);
-    ice_transport_->SignalReadyToSend.connect(
-        this, &DatagramDtlsAdaptor::OnReadyToSend);
-    ice_transport_->SignalReceivingState.connect(
-        this, &DatagramDtlsAdaptor::OnReceivingState);
   } else {
     // Subscribe to Data Transport read packets.
     datagram_transport_->SetDatagramSink(this);
     datagram_transport_->SetTransportStateCallback(this);
-
-    // Datagram transport does not propagate network route change.
-    ice_transport_->SignalNetworkRouteChanged.connect(
-        this, &DatagramDtlsAdaptor::OnNetworkRouteChanged);
   }
 }