Index: net/quic/quic_chromium_client_session.cc |
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc |
index a10373a34071deac27865d68de00db8edddad790..8aab42d4bcf31953c950703cfa7324f5dd8ccef4 100644 |
--- a/net/quic/quic_chromium_client_session.cc |
+++ b/net/quic/quic_chromium_client_session.cc |
@@ -737,6 +737,16 @@ void QuicChromiumClientSession::OnClosedStream() { |
} |
} |
+void QuicChromiumClientSession::OnConfigNegotiated() { |
+ QuicClientSessionBase::OnConfigNegotiated(); |
+ if (stream_factory_ && config()->HasReceivedAlternateServerAddress()) { |
+ // Server has sent an alternate address to connect to. |
+ stream_factory_->MigrateSessionToNewSocket( |
+ this, config()->ReceivedAlternateServerAddress(), |
+ NetworkChangeNotifier::kInvalidNetworkHandle, net_log_, nullptr); |
+ } |
+} |
+ |
void QuicChromiumClientSession::OnCryptoHandshakeEvent( |
CryptoHandshakeEvent event) { |
if (stream_factory_ && event == HANDSHAKE_CONFIRMED && |