Index: webrtc/p2p/base/p2ptransportchannel.cc |
diff --git a/webrtc/p2p/base/p2ptransportchannel.cc b/webrtc/p2p/base/p2ptransportchannel.cc |
index 66532411b29f5241c6b0f163d87c91d7ba9cbe2a..acbcfd77e7165281e43588b4f7ce21dc2bf1f025 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel.cc |
+++ b/webrtc/p2p/base/p2ptransportchannel.cc |
@@ -390,10 +390,15 @@ void P2PTransportChannel::SetRemoteIceCredentials(const std::string& ice_ufrag, |
candidate.set_password(ice_pwd); |
} |
} |
- // We need to update the credentials for any peer reflexive candidates. |
+ // We need to update the credentials and generation for any peer reflexive |
+ // candidates. |
for (Connection* conn : connections_) { |
- conn->MaybeSetRemoteIceCredentials(ice_ufrag, ice_pwd); |
+ conn->MaybeSetRemoteIceCredentialsAndGeneration( |
+ ice_ufrag, ice_pwd, |
+ static_cast<int>(remote_ice_parameters_.size() - 1)); |
} |
+ // Updating the remote ICE candidate generation could change the sort order. |
+ RequestSort(); |
} |
void P2PTransportChannel::SetRemoteIceMode(IceMode mode) { |