| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_connection_logger.h" | 5 #include "net/quic/quic_connection_logger.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/metrics/histogram_macros.h" | 13 #include "base/metrics/histogram_macros.h" |
| 14 #include "base/metrics/sparse_histogram.h" | 14 #include "base/metrics/sparse_histogram.h" |
| 15 #include "base/profiler/scoped_tracker.h" | 15 #include "base/profiler/scoped_tracker.h" |
| 16 #include "base/strings/string_number_conversions.h" | 16 #include "base/strings/string_number_conversions.h" |
| 17 #include "base/values.h" | 17 #include "base/values.h" |
| 18 #include "net/base/ip_address.h" | 18 #include "net/base/ip_address.h" |
| 19 #include "net/cert/cert_verify_result.h" | 19 #include "net/cert/cert_verify_result.h" |
| 20 #include "net/cert/x509_certificate.h" | 20 #include "net/cert/x509_certificate.h" |
| 21 #include "net/log/net_log.h" | 21 #include "net/log/net_log.h" |
| 22 #include "net/quic/crypto/crypto_handshake_message.h" | 22 #include "net/quic/crypto/crypto_handshake_message.h" |
| 23 #include "net/quic/crypto/crypto_protocol.h" | 23 #include "net/quic/crypto/crypto_protocol.h" |
| 24 #include "net/quic/quic_address_mismatch.h" | 24 #include "net/quic/quic_address_mismatch.h" |
| 25 #include "net/quic/quic_protocol.h" |
| 25 #include "net/quic/quic_socket_address_coder.h" | 26 #include "net/quic/quic_socket_address_coder.h" |
| 26 #include "net/quic/quic_time.h" | 27 #include "net/quic/quic_time.h" |
| 27 | 28 |
| 28 using base::StringPiece; | 29 using base::StringPiece; |
| 29 using std::string; | 30 using std::string; |
| 30 | 31 |
| 31 namespace net { | 32 namespace net { |
| 32 | 33 |
| 33 namespace { | 34 namespace { |
| 34 | 35 |
| (...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 base::Bind(&NetLogQuicWindowUpdateFrameCallback, &frame)); | 607 base::Bind(&NetLogQuicWindowUpdateFrameCallback, &frame)); |
| 607 } | 608 } |
| 608 | 609 |
| 609 void QuicConnectionLogger::OnBlockedFrame(const QuicBlockedFrame& frame) { | 610 void QuicConnectionLogger::OnBlockedFrame(const QuicBlockedFrame& frame) { |
| 610 ++num_blocked_frames_received_; | 611 ++num_blocked_frames_received_; |
| 611 net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_BLOCKED_FRAME_RECEIVED, | 612 net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_BLOCKED_FRAME_RECEIVED, |
| 612 base::Bind(&NetLogQuicBlockedFrameCallback, &frame)); | 613 base::Bind(&NetLogQuicBlockedFrameCallback, &frame)); |
| 613 } | 614 } |
| 614 | 615 |
| 615 void QuicConnectionLogger::OnGoAwayFrame(const QuicGoAwayFrame& frame) { | 616 void QuicConnectionLogger::OnGoAwayFrame(const QuicGoAwayFrame& frame) { |
| 617 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.GoAwayReceivedForConnectionMigration", |
| 618 frame.error_code == QUIC_ERROR_MIGRATING_PORT); |
| 619 |
| 616 net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_GOAWAY_FRAME_RECEIVED, | 620 net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_GOAWAY_FRAME_RECEIVED, |
| 617 base::Bind(&NetLogQuicGoAwayFrameCallback, &frame)); | 621 base::Bind(&NetLogQuicGoAwayFrameCallback, &frame)); |
| 618 } | 622 } |
| 619 | 623 |
| 620 void QuicConnectionLogger::OnPingFrame(const QuicPingFrame& frame) { | 624 void QuicConnectionLogger::OnPingFrame(const QuicPingFrame& frame) { |
| 621 // PingFrame has no contents to log, so just record that it was received. | 625 // PingFrame has no contents to log, so just record that it was received. |
| 622 net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_PING_FRAME_RECEIVED); | 626 net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_PING_FRAME_RECEIVED); |
| 623 } | 627 } |
| 624 | 628 |
| 625 void QuicConnectionLogger::OnPublicResetPacket( | 629 void QuicConnectionLogger::OnPublicResetPacket( |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 continue; | 875 continue; |
| 872 } | 876 } |
| 873 // Record some overlapping patterns, to get a better picture, since this is | 877 // Record some overlapping patterns, to get a better picture, since this is |
| 874 // not very expensive. | 878 // not very expensive. |
| 875 if (i % 3 == 0) | 879 if (i % 3 == 0) |
| 876 six_packet_histogram->Add(recent_6_mask); | 880 six_packet_histogram->Add(recent_6_mask); |
| 877 } | 881 } |
| 878 } | 882 } |
| 879 | 883 |
| 880 } // namespace net | 884 } // namespace net |
| OLD | NEW |