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 "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "net/base/net_log.h" | 11 #include "net/base/net_log.h" |
12 | 12 |
13 namespace net { | 13 namespace net { |
14 | 14 |
15 namespace { | 15 namespace { |
16 | 16 |
17 Value* NetLogQuicPacketCallback(const IPEndPoint* self_address, | 17 Value* NetLogQuicPacketCallback(const IPEndPoint* self_address, |
18 const IPEndPoint* peer_address, | 18 const IPEndPoint* peer_address, |
19 size_t packet_size, | 19 size_t packet_size, |
20 NetLog::LogLevel /* log_level */) { | 20 NetLog::LogLevel /* log_level */) { |
21 DictionaryValue* dict = new DictionaryValue(); | 21 DictionaryValue* dict = new DictionaryValue(); |
22 dict->SetString("self_address", self_address->ToString()); | 22 dict->SetString("self_address", self_address->ToString()); |
23 dict->SetString("peer_address", peer_address->ToString()); | 23 dict->SetString("peer_address", peer_address->ToString()); |
24 dict->SetInteger("size", packet_size); | 24 dict->SetInteger("size", packet_size); |
25 return dict; | 25 return dict; |
26 } | 26 } |
27 | 27 |
28 Value* NetLogQuicPacketSentCallback(QuicPacketSequenceNumber sequence_number, | |
29 EncryptionLevel level, | |
30 size_t packet_size, | |
31 int rv, | |
32 NetLog::LogLevel /* log_level */) { | |
33 DictionaryValue* dict = new DictionaryValue(); | |
eroman
2013/06/20 22:20:04
Drop the "t". It is cleaner.
Nah, just kidding :)
Ryan Hamilton
2013/06/20 22:44:16
:>
| |
34 dict->SetInteger("encryption_level", level); | |
35 dict->SetString("packet_sequence_number", | |
36 base::Uint64ToString(sequence_number)); | |
37 dict->SetInteger("size", packet_size); | |
38 if (rv < 0) { | |
39 dict->SetInteger("net_error", rv); | |
40 } | |
41 return dict; | |
42 } | |
43 | |
28 Value* NetLogQuicPacketHeaderCallback(const QuicPacketHeader* header, | 44 Value* NetLogQuicPacketHeaderCallback(const QuicPacketHeader* header, |
29 NetLog::LogLevel /* log_level */) { | 45 NetLog::LogLevel /* log_level */) { |
30 DictionaryValue* dict = new DictionaryValue(); | 46 DictionaryValue* dict = new DictionaryValue(); |
31 dict->SetString("guid", | 47 dict->SetString("guid", |
32 base::Uint64ToString(header->public_header.guid)); | 48 base::Uint64ToString(header->public_header.guid)); |
33 dict->SetInteger("reset_flag", header->public_header.reset_flag); | 49 dict->SetInteger("reset_flag", header->public_header.reset_flag); |
34 dict->SetInteger("version_flag", header->public_header.version_flag); | 50 dict->SetInteger("version_flag", header->public_header.version_flag); |
35 dict->SetString("packet_sequence_number", | 51 dict->SetString("packet_sequence_number", |
36 base::Uint64ToString(header->packet_sequence_number)); | 52 base::Uint64ToString(header->packet_sequence_number)); |
37 dict->SetInteger("entropy_flag", header->entropy_flag); | 53 dict->SetInteger("entropy_flag", header->entropy_flag); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
129 | 145 |
130 } // namespace | 146 } // namespace |
131 | 147 |
132 QuicConnectionLogger::QuicConnectionLogger(const BoundNetLog& net_log) | 148 QuicConnectionLogger::QuicConnectionLogger(const BoundNetLog& net_log) |
133 : net_log_(net_log) { | 149 : net_log_(net_log) { |
134 } | 150 } |
135 | 151 |
136 QuicConnectionLogger::~QuicConnectionLogger() { | 152 QuicConnectionLogger::~QuicConnectionLogger() { |
137 } | 153 } |
138 | 154 |
139 // QuicConnectionDebugVisitorInterface | 155 void QuicConnectionLogger::OnFrameAddedToPacket(const QuicFrame& frame) { |
156 switch (frame.type) { | |
157 case PADDING_FRAME: | |
158 break; | |
159 case STREAM_FRAME: | |
160 net_log_.AddEvent( | |
161 NetLog::TYPE_QUIC_SESSION_STREAM_FRAME_SENT, | |
162 base::Bind(&NetLogQuicStreamFrameCallback, frame.stream_frame)); | |
163 break; | |
164 case ACK_FRAME: | |
165 net_log_.AddEvent( | |
166 NetLog::TYPE_QUIC_SESSION_ACK_FRAME_SENT, | |
167 base::Bind(&NetLogQuicAckFrameCallback, frame.ack_frame)); | |
168 break; | |
169 case CONGESTION_FEEDBACK_FRAME: | |
170 net_log_.AddEvent( | |
171 NetLog::TYPE_QUIC_SESSION_CONGESTION_FEEDBACK_FRAME_SENT, | |
172 base::Bind(&NetLogQuicCongestionFeedbackFrameCallback, | |
173 frame.congestion_feedback_frame)); | |
174 break; | |
175 case RST_STREAM_FRAME: | |
176 net_log_.AddEvent( | |
177 NetLog::TYPE_QUIC_SESSION_RST_STREAM_FRAME_SENT, | |
178 base::Bind(&NetLogQuicRstStreamFrameCallback, | |
179 frame.rst_stream_frame)); | |
180 break; | |
181 case CONNECTION_CLOSE_FRAME: | |
182 net_log_.AddEvent( | |
183 NetLog::TYPE_QUIC_SESSION_CONNECTION_CLOSE_FRAME_SENT, | |
184 base::Bind(&NetLogQuicConnectionCloseFrameCallback, | |
185 frame.connection_close_frame)); | |
186 break; | |
187 case GOAWAY_FRAME: | |
188 break; | |
189 default: | |
190 DCHECK(false) << "Illegal frame type: " << frame.type; | |
191 } | |
192 } | |
193 | |
194 void QuicConnectionLogger::OnPacketSent( | |
195 QuicPacketSequenceNumber sequence_number, | |
196 EncryptionLevel level, | |
197 const QuicEncryptedPacket& packet, | |
198 int rv) { | |
199 net_log_.AddEvent( | |
200 NetLog::TYPE_QUIC_SESSION_PACKET_SENT, | |
201 base::Bind(&NetLogQuicPacketSentCallback, sequence_number, level, | |
202 packet.length(), rv)); | |
203 } | |
204 | |
140 void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address, | 205 void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address, |
141 const IPEndPoint& peer_address, | 206 const IPEndPoint& peer_address, |
142 const QuicEncryptedPacket& packet) { | 207 const QuicEncryptedPacket& packet) { |
143 net_log_.AddEvent( | 208 net_log_.AddEvent( |
144 NetLog::TYPE_QUIC_SESSION_PACKET_RECEIVED, | 209 NetLog::TYPE_QUIC_SESSION_PACKET_RECEIVED, |
145 base::Bind(&NetLogQuicPacketCallback, &self_address, &peer_address, | 210 base::Bind(&NetLogQuicPacketCallback, &self_address, &peer_address, |
146 packet.length())); | 211 packet.length())); |
147 } | 212 } |
148 | 213 |
149 void QuicConnectionLogger::OnProtocolVersionMismatch(QuicTag received_version) { | 214 void QuicConnectionLogger::OnProtocolVersionMismatch(QuicTag received_version) { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
195 void QuicConnectionLogger::OnVersionNegotiationPacket( | 260 void QuicConnectionLogger::OnVersionNegotiationPacket( |
196 const QuicVersionNegotiationPacket& packet) { | 261 const QuicVersionNegotiationPacket& packet) { |
197 } | 262 } |
198 | 263 |
199 void QuicConnectionLogger::OnRevivedPacket( | 264 void QuicConnectionLogger::OnRevivedPacket( |
200 const QuicPacketHeader& revived_header, | 265 const QuicPacketHeader& revived_header, |
201 base::StringPiece payload) { | 266 base::StringPiece payload) { |
202 } | 267 } |
203 | 268 |
204 } // namespace net | 269 } // namespace net |
OLD | NEW |