| Index: net/quic/quic_connection.cc
|
| diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc
|
| index 2fa5a12de1b49ffdbd666926733e48f1e33a221f..d465bd45dce23ec3c4d481a3532f11b184fe70a8 100644
|
| --- a/net/quic/quic_connection.cc
|
| +++ b/net/quic/quic_connection.cc
|
| @@ -1343,6 +1343,15 @@ bool QuicConnection::ProcessValidatedPacket() {
|
| }
|
|
|
| if (peer_ip_changed_ || peer_port_changed_) {
|
| + PeerAddressChangeType type = DeterminePeerAddressChangeType();
|
| + if (type != NO_CHANGE && type != UNKNOWN &&
|
| + (FLAGS_quic_disable_non_nat_address_migration &&
|
| + type != NAT_PORT_REBINDING && type != IPV4_SUBNET_REBINDING)) {
|
| + SendConnectionCloseWithDetails(QUIC_ERROR_MIGRATING_ADDRESS,
|
| + "Invalid peer address migration.");
|
| + return false;
|
| + }
|
| +
|
| IPEndPoint old_peer_address = peer_address_;
|
| peer_address_ = IPEndPoint(
|
| peer_ip_changed_ ? migrating_peer_ip_ : peer_address_.address(),
|
| @@ -1741,6 +1750,10 @@ void QuicConnection::SendOrQueuePacket(QueuedPacket packet) {
|
| }
|
| }
|
|
|
| +PeerAddressChangeType QuicConnection::DeterminePeerAddressChangeType() {
|
| + return UNKNOWN;
|
| +}
|
| +
|
| void QuicConnection::SendPing() {
|
| if (retransmission_alarm_->IsSet()) {
|
| return;
|
|
|