Do not always disable migration when using TLS

gfe-relnote: do not disable migration, protected by disabled TLS flag
PiperOrigin-RevId: 280335423
Change-Id: I4808c98b40958d49efd7ec3c12ee1562bae836bf
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc
index 135fb64..f1736a3 100644
--- a/quic/core/quic_config.cc
+++ b/quic/core/quic_config.cc
@@ -1069,8 +1069,9 @@
   if (params.ack_delay_exponent.IsValid()) {
     ack_delay_exponent_.SetReceivedValue(params.ack_delay_exponent.value());
   }
-  connection_migration_disabled_.SetReceivedValue(
-      params.disable_migration ? 1u : 0u);
+  if (params.disable_migration) {
+    connection_migration_disabled_.SetReceivedValue(1u);
+  }
 
   if (params.preferred_address != nullptr) {
     if (params.preferred_address->ipv6_socket_address.port() != 0) {
diff --git a/quic/core/quic_config_test.cc b/quic/core/quic_config_test.cc
index 882516e..282e88c 100644
--- a/quic/core/quic_config_test.cc
+++ b/quic/core/quic_config_test.cc
@@ -444,6 +444,16 @@
 
   ASSERT_TRUE(config_.HasReceivedMaxPacketSize());
   EXPECT_EQ(kMaxPacketSizeForTest, config_.ReceivedMaxPacketSize());
+  EXPECT_FALSE(config_.DisableConnectionMigration());
+}
+
+TEST_P(QuicConfigTest, DisableMigrationTransportParameter) {
+  TransportParameters params;
+  params.disable_migration = true;
+  std::string error_details;
+  EXPECT_EQ(QUIC_NO_ERROR,
+            config_.ProcessTransportParameters(params, SERVER, &error_details));
+  EXPECT_TRUE(config_.DisableConnectionMigration());
 }
 
 }  // namespace