During QUIC handshake check IsHandshakeConfirmed() before mark address_validated_ as true.
address_validated_ is initialize as false and marked true before handshake gets confirmed. So this change is a no-op.
PiperOrigin-RevId: 353667687
Change-Id: I3d8eb0c75616418ed12d38f0baf88096b53a947d
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index bf8cd2d..aae0c57 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -1153,7 +1153,7 @@
clock_->ApproximateNow() + sent_packet_manager_.GetPtoDelay() * 3);
}
}
- if (EnforceAntiAmplificationLimit() &&
+ if (EnforceAntiAmplificationLimit() && !IsHandshakeConfirmed() &&
(last_decrypted_packet_level_ == ENCRYPTION_HANDSHAKE ||
last_decrypted_packet_level_ == ENCRYPTION_FORWARD_SECURE)) {
// Address is validated by successfully processing a HANDSHAKE or 1-RTT
@@ -1243,7 +1243,8 @@
if (GetQuicReloadableFlag(quic_enable_token_based_address_validation)) {
QUIC_RELOADABLE_FLAG_COUNT_N(quic_enable_token_based_address_validation, 2,
2);
- if (EnforceAntiAmplificationLimit() && !header.retry_token.empty() &&
+ if (EnforceAntiAmplificationLimit() && !IsHandshakeConfirmed() &&
+ !header.retry_token.empty() &&
visitor_->ValidateToken(header.retry_token)) {
QUIC_DLOG(INFO) << ENDPOINT << "Address validated via token.";
QUIC_CODE_COUNT(quic_address_validated_via_token);