Index: net/quic/quic_address_mismatch.cc |
=================================================================== |
--- net/quic/quic_address_mismatch.cc (revision 271511) |
+++ net/quic/quic_address_mismatch.cc (working copy) |
@@ -14,9 +14,17 @@ |
if (first_address.address().empty() || second_address.address().empty()) { |
return -1; |
} |
+ IPAddressNumber first_ip_address = first_address.address(); |
+ if (IsIPv4Mapped(first_ip_address)) { |
+ first_ip_address = ConvertIPv4MappedToIPv4(first_ip_address); |
+ } |
+ IPAddressNumber second_ip_address = second_address.address(); |
+ if (IsIPv4Mapped(second_ip_address)) { |
+ second_ip_address = ConvertIPv4MappedToIPv4(second_ip_address); |
+ } |
int sample; |
- if (first_address.address() != second_address.address()) { |
+ if (first_ip_address != second_ip_address) { |
sample = QUIC_ADDRESS_MISMATCH_BASE; |
} else if (first_address.port() != second_address.port()) { |
sample = QUIC_PORT_MISMATCH_BASE; |
@@ -29,8 +37,8 @@ |
// V6_V6: add 1 |
// V4_V6: add 2 |
// V6_V4: add 3 |
- bool first_ipv4 = (first_address.address().size() == kIPv4AddressSize); |
- bool second_ipv4 = (second_address.address().size() == kIPv4AddressSize); |
+ bool first_ipv4 = (first_ip_address.size() == kIPv4AddressSize); |
+ bool second_ipv4 = (second_ip_address.size() == kIPv4AddressSize); |
if (first_ipv4 != second_ipv4) { |
CHECK_EQ(sample, QUIC_ADDRESS_MISMATCH_BASE); |
sample += 2; |