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

Side by Side Diff: net/spdy/spdy_protocol.cc

Issue 202383002: Add settings IDs to SpdyConstants. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Test fix. Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_protocol.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "net/spdy/spdy_protocol.h" 5 #include "net/spdy/spdy_protocol.h"
6 6
7 namespace net { 7 namespace net {
8 8
9 SpdyFrameWithNameValueBlockIR::SpdyFrameWithNameValueBlockIR( 9 SpdyFrameWithNameValueBlockIR::SpdyFrameWithNameValueBlockIR(
10 SpdyStreamId stream_id) : SpdyFrameWithFinIR(stream_id) {} 10 SpdyStreamId stream_id) : SpdyFrameWithFinIR(stream_id) {}
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 return false; 54 return false;
55 } 55 }
56 56
57 // BLOCKED is the last valid frame. 57 // BLOCKED is the last valid frame.
58 if (frame_type_field > SerializeFrameType(version, BLOCKED)) { 58 if (frame_type_field > SerializeFrameType(version, BLOCKED)) {
59 return false; 59 return false;
60 } 60 }
61 61
62 return true; 62 return true;
63 } 63 }
64
65 LOG(DFATAL) << "Unhandled SPDY version " << version;
66 return false;
64 } 67 }
65 68
66 SpdyFrameType SpdyConstants::ParseFrameType(SpdyMajorVersion version, 69 SpdyFrameType SpdyConstants::ParseFrameType(SpdyMajorVersion version,
67 int frame_type_field) { 70 int frame_type_field) {
68 switch (version) { 71 switch (version) {
69 case SPDY2: 72 case SPDY2:
70 case SPDY3: 73 case SPDY3:
71 switch (frame_type_field) { 74 switch (frame_type_field) {
72 case 1: 75 case 1:
73 return SYN_STREAM; 76 return SYN_STREAM;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 return 8; 168 return 8;
166 case CONTINUATION: 169 case CONTINUATION:
167 return 9; 170 return 9;
168 case BLOCKED: 171 case BLOCKED:
169 return 10; 172 return 10;
170 default: 173 default:
171 LOG(DFATAL) << "Serializing unhandled frame type " << frame_type; 174 LOG(DFATAL) << "Serializing unhandled frame type " << frame_type;
172 return -1; 175 return -1;
173 } 176 }
174 } 177 }
178
179 LOG(DFATAL) << "Unhandled SPDY version " << version;
180 return -1;
181 }
182
183 bool SpdyConstants::IsValidSettingId(SpdyMajorVersion version,
184 int setting_id_field) {
185 switch (version) {
186 case SPDY2:
187 case SPDY3:
188 // UPLOAD_BANDWIDTH is the first valid setting id.
189 if (setting_id_field <
190 SerializeSettingId(version, SETTINGS_UPLOAD_BANDWIDTH)) {
191 return false;
192 }
193
194 // INITIAL_WINDOW_SIZE is the last valid setting id.
195 if (setting_id_field >
196 SerializeSettingId(version, SETTINGS_INITIAL_WINDOW_SIZE)) {
197 return false;
198 }
199
200 return true;
201 case SPDY4:
202 // HEADER_TABLE_SIZE is the first valid setting id.
203 if (setting_id_field <
204 SerializeSettingId(version, SETTINGS_HEADER_TABLE_SIZE)) {
205 return false;
206 }
207
208 // INITIAL_WINDOW_SIZE is the last valid setting id.
209 if (setting_id_field >
210 SerializeSettingId(version, SETTINGS_INITIAL_WINDOW_SIZE)) {
211 return false;
212 }
213
214 return true;
215 }
216
217 LOG(DFATAL) << "Unhandled SPDY version " << version;
218 return false;
219 }
220
221 SpdySettingsIds SpdyConstants::ParseSettingId(SpdyMajorVersion version,
222 int setting_id_field) {
223 switch (version) {
224 case SPDY2:
225 case SPDY3:
226 switch (setting_id_field) {
227 case 1:
228 return SETTINGS_UPLOAD_BANDWIDTH;
229 case 2:
230 return SETTINGS_DOWNLOAD_BANDWIDTH;
231 case 3:
232 return SETTINGS_ROUND_TRIP_TIME;
233 case 4:
234 return SETTINGS_MAX_CONCURRENT_STREAMS;
235 case 5:
236 return SETTINGS_CURRENT_CWND;
237 case 6:
238 return SETTINGS_DOWNLOAD_RETRANS_RATE;
239 case 7:
240 return SETTINGS_INITIAL_WINDOW_SIZE;
241 }
242 break;
243 case SPDY4:
244 switch (setting_id_field) {
245 case 1:
246 return SETTINGS_HEADER_TABLE_SIZE;
247 case 2:
248 return SETTINGS_ENABLE_PUSH;
249 case 3:
250 return SETTINGS_MAX_CONCURRENT_STREAMS;
251 case 4:
252 return SETTINGS_INITIAL_WINDOW_SIZE;
253 }
254 break;
255 }
256
257 LOG(DFATAL) << "Unhandled setting ID " << setting_id_field;
258 return SETTINGS_UPLOAD_BANDWIDTH;
259 }
260
261 int SpdyConstants::SerializeSettingId(SpdyMajorVersion version,
262 SpdySettingsIds id) {
263 switch (version) {
264 case SPDY2:
265 case SPDY3:
266 switch (id) {
267 case SETTINGS_UPLOAD_BANDWIDTH:
268 return 1;
269 case SETTINGS_DOWNLOAD_BANDWIDTH:
270 return 2;
271 case SETTINGS_ROUND_TRIP_TIME:
272 return 3;
273 case SETTINGS_MAX_CONCURRENT_STREAMS:
274 return 4;
275 case SETTINGS_CURRENT_CWND:
276 return 5;
277 case SETTINGS_DOWNLOAD_RETRANS_RATE:
278 return 6;
279 case SETTINGS_INITIAL_WINDOW_SIZE:
280 return 7;
281 default:
282 LOG(DFATAL) << "Serializing unhandled setting id " << id;
283 return -1;
284 }
285 case SPDY4:
286 switch (id) {
287 case SETTINGS_HEADER_TABLE_SIZE:
288 return 1;
289 case SETTINGS_ENABLE_PUSH:
290 return 2;
291 case SETTINGS_MAX_CONCURRENT_STREAMS:
292 return 3;
293 case SETTINGS_INITIAL_WINDOW_SIZE:
294 return 4;
295 default:
296 LOG(DFATAL) << "Serializing unhandled setting id " << id;
297 return -1;
298 }
299 }
300 LOG(DFATAL) << "Unhandled SPDY version " << version;
301 return -1;
175 } 302 }
176 303
177 void SpdyDataIR::Visit(SpdyFrameVisitor* visitor) const { 304 void SpdyDataIR::Visit(SpdyFrameVisitor* visitor) const {
178 return visitor->VisitData(*this); 305 return visitor->VisitData(*this);
179 } 306 }
180 307
181 void SpdySynStreamIR::Visit(SpdyFrameVisitor* visitor) const { 308 void SpdySynStreamIR::Visit(SpdyFrameVisitor* visitor) const {
182 return visitor->VisitSynStream(*this); 309 return visitor->VisitSynStream(*this);
183 } 310 }
184 311
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 373
247 void SpdyPushPromiseIR::Visit(SpdyFrameVisitor* visitor) const { 374 void SpdyPushPromiseIR::Visit(SpdyFrameVisitor* visitor) const {
248 return visitor->VisitPushPromise(*this); 375 return visitor->VisitPushPromise(*this);
249 } 376 }
250 377
251 void SpdyContinuationIR::Visit(SpdyFrameVisitor* visitor) const { 378 void SpdyContinuationIR::Visit(SpdyFrameVisitor* visitor) const {
252 return visitor->VisitContinuation(*this); 379 return visitor->VisitContinuation(*this);
253 } 380 }
254 381
255 } // namespace net 382 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_protocol.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698