Index: net/quic/quic_client_session.cc |
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc |
index 60bcbb50b386a8ba1f588cf1dcee635df78c346f..a12b1d042199d4fb1a36b8eecdd4b5fc8b88d1a5 100644 |
--- a/net/quic/quic_client_session.cc |
+++ b/net/quic/quic_client_session.cc |
@@ -34,6 +34,9 @@ namespace { |
// before allowing the requests to possibly proceed over TCP. |
const int k0RttHandshakeTimeoutMs = 300; |
+// IPv6 packets have an additional 20 bytes of overhead than IPv4 packets. |
+const size_t kAdditionalOverheadForIPv6 = 20; |
+ |
// Histograms for tracking down the crashes from http://crbug.com/354669 |
// Note: these values must be kept in sync with the corresponding values in: |
// tools/metrics/histograms/histograms.xml |
@@ -170,6 +173,12 @@ QuicClientSession::QuicClientSession( |
going_away_(false), |
weak_factory_(this) { |
connection->set_debug_visitor(logger_); |
+ IPEndPoint address; |
+ if (socket && socket->GetLocalAddress(&address) == OK && |
+ address.GetFamily() == ADDRESS_FAMILY_IPV6) { |
+ connection->set_max_packet_length( |
+ connection->max_packet_length() - kAdditionalOverheadForIPv6); |
+ } |
} |
void QuicClientSession::InitializeSession( |