Set alternative path as validated once multi-port probing succeeds. PiperOrigin-RevId: 476986441
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc index ff3834b..bf50a86 100644 --- a/quiche/quic/core/quic_connection.cc +++ b/quiche/quic/core/quic_connection.cc
@@ -7077,6 +7077,8 @@ void QuicConnection::OnMultiPortPathProbingSuccess( std::unique_ptr<QuicPathValidationContext> context, QuicTime start_time) { + QUICHE_DCHECK_EQ(Perspective::IS_CLIENT, perspective()); + alternative_path_.validated = true; multi_port_path_context_ = std::move(context); multi_port_probing_alarm_->Set(clock_->ApproximateNow() + multi_port_probing_interval_);
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc index 054e8d8..8b96894 100644 --- a/quiche/quic/core/quic_connection_test.cc +++ b/quiche/quic/core/quic_connection_test.cc
@@ -13027,6 +13027,8 @@ EXPECT_TRUE(connection_.HasPendingPathValidation()); EXPECT_TRUE(QuicConnectionPeer::IsAlternativePath( &connection_, kNewSelfAddress, connection_.peer_address())); + auto* alt_path = QuicConnectionPeer::GetAlternativePath(&connection_); + EXPECT_FALSE(alt_path->validated); // 30ms RTT. const QuicTime::Delta kTestRTT = QuicTime::Delta::FromMilliseconds(30); @@ -13042,6 +13044,7 @@ EXPECT_FALSE(connection_.HasPendingPathValidation()); EXPECT_TRUE(QuicConnectionPeer::IsAlternativePath( &connection_, kNewSelfAddress, connection_.peer_address())); + EXPECT_TRUE(alt_path->validated); auto stats = connection_.multi_port_stats(); EXPECT_EQ(1, stats->num_path_degrading);