Index: webrtc/p2p/base/p2ptransportchannel.cc |
diff --git a/webrtc/p2p/base/p2ptransportchannel.cc b/webrtc/p2p/base/p2ptransportchannel.cc |
index 332d951a185a99da145c0ec15fc86f3afea3ce7c..94530506c157d6e10da76d36c4243bdf4f743a84 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel.cc |
+++ b/webrtc/p2p/base/p2ptransportchannel.cc |
@@ -785,6 +785,12 @@ void P2PTransportChannel::AddRemoteCandidate(const Candidate& candidate) { |
} |
} |
+ // If this candidate matches what was thought to be a peer reflexive |
+ // candidate, we need to update the candidate priority/etc. |
+ for (Connection* conn : connections_) { |
+ conn->MaybeUpdatePeerReflexiveCandidate(new_remote_candidate); |
+ } |
+ |
// Create connections to this remote candidate. |
CreateConnections(new_remote_candidate, NULL); |
@@ -883,9 +889,6 @@ bool P2PTransportChannel::CreateConnection(PortInterface* port, |
} |
// No new connection was created. |
- // Check if this is a peer reflexive candidate. |
- connection->MaybeUpdatePeerReflexiveCandidate(remote_candidate); |
- |
// It is not legal to try to change any of the parameters of an existing |
// connection; however, the other side can send a duplicate candidate. |
if (!remote_candidate.IsEquivalent(connection->remote_candidate())) { |