Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: net/spdy/buffered_spdy_framer.h

Issue 1360253002: Log GOAWAY frame debug data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Initialize |goaway_count_|. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef NET_SPDY_BUFFERED_SPDY_FRAMER_H_ 5 #ifndef NET_SPDY_BUFFERED_SPDY_FRAMER_H_
6 #define NET_SPDY_BUFFERED_SPDY_FRAMER_H_ 6 #define NET_SPDY_BUFFERED_SPDY_FRAMER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 // Called when a PING frame has been parsed. 94 // Called when a PING frame has been parsed.
95 virtual void OnPing(SpdyPingId unique_id, bool is_ack) = 0; 95 virtual void OnPing(SpdyPingId unique_id, bool is_ack) = 0;
96 96
97 // Called when a RST_STREAM frame has been parsed. 97 // Called when a RST_STREAM frame has been parsed.
98 virtual void OnRstStream(SpdyStreamId stream_id, 98 virtual void OnRstStream(SpdyStreamId stream_id,
99 SpdyRstStreamStatus status) = 0; 99 SpdyRstStreamStatus status) = 0;
100 100
101 // Called when a GOAWAY frame has been parsed. 101 // Called when a GOAWAY frame has been parsed.
102 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, 102 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
103 SpdyGoAwayStatus status) = 0; 103 SpdyGoAwayStatus status,
104 base::StringPiece debug_data) = 0;
104 105
105 // Called when a WINDOW_UPDATE frame has been parsed. 106 // Called when a WINDOW_UPDATE frame has been parsed.
106 virtual void OnWindowUpdate(SpdyStreamId stream_id, 107 virtual void OnWindowUpdate(SpdyStreamId stream_id,
107 int delta_window_size) = 0; 108 int delta_window_size) = 0;
108 109
109 // Called when a PUSH_PROMISE frame has been parsed. 110 // Called when a PUSH_PROMISE frame has been parsed.
110 virtual void OnPushPromise(SpdyStreamId stream_id, 111 virtual void OnPushPromise(SpdyStreamId stream_id,
111 SpdyStreamId promised_stream_id, 112 SpdyStreamId promised_stream_id,
112 const SpdyHeaderBlock& headers) = 0; 113 const SpdyHeaderBlock& headers) = 0;
113 114
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 bool fin) override; 167 bool fin) override;
167 void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; 168 void OnStreamPadding(SpdyStreamId stream_id, size_t len) override;
168 void OnSettings(bool clear_persisted) override; 169 void OnSettings(bool clear_persisted) override;
169 void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override; 170 void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override;
170 void OnSettingsAck() override; 171 void OnSettingsAck() override;
171 void OnSettingsEnd() override; 172 void OnSettingsEnd() override;
172 void OnPing(SpdyPingId unique_id, bool is_ack) override; 173 void OnPing(SpdyPingId unique_id, bool is_ack) override;
173 void OnRstStream(SpdyStreamId stream_id, SpdyRstStreamStatus status) override; 174 void OnRstStream(SpdyStreamId stream_id, SpdyRstStreamStatus status) override;
174 void OnGoAway(SpdyStreamId last_accepted_stream_id, 175 void OnGoAway(SpdyStreamId last_accepted_stream_id,
175 SpdyGoAwayStatus status) override; 176 SpdyGoAwayStatus status) override;
177 bool OnGoAwayFrameData(const char* goaway_data, size_t len) override;
176 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; 178 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override;
177 void OnPushPromise(SpdyStreamId stream_id, 179 void OnPushPromise(SpdyStreamId stream_id,
178 SpdyStreamId promised_stream_id, 180 SpdyStreamId promised_stream_id,
179 bool end) override; 181 bool end) override;
180 void OnDataFrameHeader(SpdyStreamId stream_id, 182 void OnDataFrameHeader(SpdyStreamId stream_id,
181 size_t length, 183 size_t length,
182 bool fin) override; 184 bool fin) override;
183 void OnContinuation(SpdyStreamId stream_id, bool end) override; 185 void OnContinuation(SpdyStreamId stream_id, bool end) override;
184 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override; 186 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override;
185 187
(...skipping 10 matching lines...) Expand all
196 SpdyPriority priority, 198 SpdyPriority priority,
197 SpdyControlFlags flags, 199 SpdyControlFlags flags,
198 const SpdyHeaderBlock* headers); 200 const SpdyHeaderBlock* headers);
199 SpdyFrame* CreateSynReply(SpdyStreamId stream_id, 201 SpdyFrame* CreateSynReply(SpdyStreamId stream_id,
200 SpdyControlFlags flags, 202 SpdyControlFlags flags,
201 const SpdyHeaderBlock* headers); 203 const SpdyHeaderBlock* headers);
202 SpdyFrame* CreateRstStream(SpdyStreamId stream_id, 204 SpdyFrame* CreateRstStream(SpdyStreamId stream_id,
203 SpdyRstStreamStatus status) const; 205 SpdyRstStreamStatus status) const;
204 SpdyFrame* CreateSettings(const SettingsMap& values) const; 206 SpdyFrame* CreateSettings(const SettingsMap& values) const;
205 SpdyFrame* CreatePingFrame(SpdyPingId unique_id, bool is_ack) const; 207 SpdyFrame* CreatePingFrame(SpdyPingId unique_id, bool is_ack) const;
206 SpdyFrame* CreateGoAway( 208 SpdyFrame* CreateGoAway(SpdyStreamId last_accepted_stream_id,
207 SpdyStreamId last_accepted_stream_id, 209 SpdyGoAwayStatus status,
208 SpdyGoAwayStatus status) const; 210 base::StringPiece debug_data) const;
209 SpdyFrame* CreateHeaders(SpdyStreamId stream_id, 211 SpdyFrame* CreateHeaders(SpdyStreamId stream_id,
210 SpdyControlFlags flags, 212 SpdyControlFlags flags,
211 SpdyPriority priority, 213 SpdyPriority priority,
212 const SpdyHeaderBlock* headers); 214 const SpdyHeaderBlock* headers);
213 SpdyFrame* CreateWindowUpdate( 215 SpdyFrame* CreateWindowUpdate(
214 SpdyStreamId stream_id, 216 SpdyStreamId stream_id,
215 uint32 delta_window_size) const; 217 uint32 delta_window_size) const;
216 SpdyFrame* CreateDataFrame(SpdyStreamId stream_id, 218 SpdyFrame* CreateDataFrame(SpdyStreamId stream_id,
217 const char* data, 219 const char* data,
218 uint32 len, 220 uint32 len,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 bool has_priority; 282 bool has_priority;
281 SpdyPriority priority; 283 SpdyPriority priority;
282 SpdyStreamId parent_stream_id; 284 SpdyStreamId parent_stream_id;
283 bool exclusive; 285 bool exclusive;
284 uint8 credential_slot; 286 uint8 credential_slot;
285 bool fin; 287 bool fin;
286 bool unidirectional; 288 bool unidirectional;
287 }; 289 };
288 scoped_ptr<ControlFrameFields> control_frame_fields_; 290 scoped_ptr<ControlFrameFields> control_frame_fields_;
289 291
292 // Collection of fields of a GOAWAY frame that we need to buffer.
eroman 2015/10/06 17:19:41 nit: I see other comments similarly use "we", howe
Bence 2015/10/07 15:18:27 Done.
293 struct GoAwayFields {
294 SpdyStreamId last_accepted_stream_id;
295 SpdyGoAwayStatus status;
296 std::string debug_data;
297 };
298 scoped_ptr<GoAwayFields> go_away_fields_;
299
290 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer); 300 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer);
291 }; 301 };
292 302
293 } // namespace net 303 } // namespace net
294 304
295 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_ 305 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698