Fix port change determination logic in QuicConnection::MigratePath().
PiperOrigin-RevId: 361004639
Change-Id: Iacb514eed2c469be402305dfdeac5cd68e26eca2
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 0bdc1bf..b64c565 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -6092,11 +6092,17 @@
if (!connected_) {
return;
}
- const bool is_port_change =
- QuicUtils::DetermineAddressChangeType(default_path_.self_address,
- self_address) == PORT_CHANGE &&
- QuicUtils::DetermineAddressChangeType(default_path_.peer_address,
- peer_address) == PORT_CHANGE;
+
+ const auto self_address_change_type = QuicUtils::DetermineAddressChangeType(
+ default_path_.self_address, self_address);
+ const auto peer_address_change_type = QuicUtils::DetermineAddressChangeType(
+ default_path_.peer_address, peer_address);
+ QUICHE_DCHECK(self_address_change_type != NO_CHANGE ||
+ peer_address_change_type != NO_CHANGE);
+ const bool is_port_change = (self_address_change_type == PORT_CHANGE ||
+ self_address_change_type == NO_CHANGE) &&
+ (peer_address_change_type == PORT_CHANGE ||
+ peer_address_change_type == NO_CHANGE);
SetSelfAddress(self_address);
UpdatePeerAddress(peer_address);
SetQuicPacketWriter(writer, owns_writer);