| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef NET_QUIC_QUIC_ADDRESS_MISMATCH_H_ |
| #define NET_QUIC_QUIC_ADDRESS_MISMATCH_H_ |
| |
| #include "net/base/ip_endpoint.h" |
| #include "net/base/net_export.h" |
| |
| namespace net { |
| |
| enum QuicAddressMismatch { |
| // The addresses don't match. |
| QUIC_ADDRESS_MISMATCH_BASE = 0, |
| QUIC_ADDRESS_MISMATCH_V4_V4 = 0, |
| QUIC_ADDRESS_MISMATCH_V6_V6 = 1, |
| QUIC_ADDRESS_MISMATCH_V4_V6 = 2, |
| QUIC_ADDRESS_MISMATCH_V6_V4 = 3, |
| |
| // The addresses match, but the ports don't match. |
| QUIC_PORT_MISMATCH_BASE = 4, |
| QUIC_PORT_MISMATCH_V4_V4 = 4, |
| QUIC_PORT_MISMATCH_V6_V6 = 5, |
| |
| QUIC_ADDRESS_AND_PORT_MATCH_BASE = 6, |
| QUIC_ADDRESS_AND_PORT_MATCH_V4_V4 = 6, |
| QUIC_ADDRESS_AND_PORT_MATCH_V6_V6 = 7, |
| |
| QUIC_ADDRESS_MISMATCH_MAX, |
| }; |
| |
| // Returns a value of the QuicAddressMismatch enum type that indicates how |
| // |first_address| differs from |second_address|. Returns -1 if either address |
| // is empty. |
| // |
| // Only used by the Net.quic::QuicSession.PublicResetAddressMismatch histogram. |
| NET_EXPORT_PRIVATE int GetAddressMismatch(const IPEndPoint& first_address, |
| const IPEndPoint& second_address); |
| |
| } // namespace net |
| |
| #endif // NET_QUIC_QUIC_ADDRESS_MISMATCH_H_ |