1 // Copyright 2014 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef NET_QUIC_QUIC_ADDRESS_MISMATCH_H_ 6 #define NET_QUIC_QUIC_ADDRESS_MISMATCH_H_ 7 8 #include "net/base/ip_endpoint.h" 9 #include "net/base/net_export.h" 10 11 namespace net { 12 13 enum QuicAddressMismatch { 14 // The addresses don't match. 15 QUIC_ADDRESS_MISMATCH_BASE = 0, 16 QUIC_ADDRESS_MISMATCH_V4_V4 = 0, 17 QUIC_ADDRESS_MISMATCH_V6_V6 = 1, 18 QUIC_ADDRESS_MISMATCH_V4_V6 = 2, 19 QUIC_ADDRESS_MISMATCH_V6_V4 = 3, 20 21 // The addresses match, but the ports don't match. 22 QUIC_PORT_MISMATCH_BASE = 4, 23 QUIC_PORT_MISMATCH_V4_V4 = 4, 24 QUIC_PORT_MISMATCH_V6_V6 = 5, 25 26 QUIC_ADDRESS_AND_PORT_MATCH_BASE = 6, 27 QUIC_ADDRESS_AND_PORT_MATCH_V4_V4 = 6, 28 QUIC_ADDRESS_AND_PORT_MATCH_V6_V6 = 7, 29 30 QUIC_ADDRESS_MISMATCH_MAX, 31 }; 32 33 // Returns a value of the QuicAddressMismatch enum type that indicates how 34 // |first_address| differs from |second_address|. Returns -1 if either address 35 // is empty. 36 NET_EXPORT_PRIVATE int GetAddressMismatch(const IPEndPoint& first_address, 37 const IPEndPoint& second_address); 38 39 } // namespace net 40 41 #endif // NET_QUIC_QUIC_ADDRESS_MISMATCH_H_ 42