Index: webrtc/p2p/base/p2ptransportchannel.cc |
diff --git a/webrtc/p2p/base/p2ptransportchannel.cc b/webrtc/p2p/base/p2ptransportchannel.cc |
index 206113c4ebcc554d9b401e716c5031412eda4845..4733bea0c996bff49dd01194123b59f98164f49b 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel.cc |
+++ b/webrtc/p2p/base/p2ptransportchannel.cc |
@@ -507,6 +507,8 @@ void P2PTransportChannel::OnPortReady(PortAllocatorSession *session, |
port->SignalDestroyed.connect(this, &P2PTransportChannel::OnPortDestroyed); |
port->SignalNetworkInactive.connect( |
this, &P2PTransportChannel::OnPortNetworkInactive); |
+ port->SignalNetworkCostChanged.connect( |
+ this, &P2PTransportChannel::OnPortNetworkCostChanged); |
port->SignalRoleConflict.connect( |
this, &P2PTransportChannel::OnRoleConflict); |
port->SignalSentPacket.connect(this, &P2PTransportChannel::OnSentPacket); |
@@ -1497,6 +1499,12 @@ void P2PTransportChannel::OnPortNetworkInactive(PortInterface* port) { |
SignalCandidatesRemoved(this, candidates); |
} |
+void P2PTransportChannel::OnPortNetworkCostChanged(PortInterface* port) { |
+ // Network cost of a port will affect the connection comparison. |
+ // So request sorting if the network cost of any port has changed. |
+ RequestSort(); |
+} |
+ |
// We data is available, let listeners know |
void P2PTransportChannel::OnReadPacket(Connection* connection, |
const char* data, |