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

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

Issue 22159003: DO NOT COMMIT: More hacks to get HTTP/2 working Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update for draft 06 Created 7 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 | Annotate | Revision Log
« no previous file with comments | « net/spdy/buffered_spdy_framer.cc ('k') | net/spdy/spdy_http_utils.h » ('j') | 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 // TODO(rtenhove) clean up frame buffer size calculations so that we aren't 5 // TODO(rtenhove) clean up frame buffer size calculations so that we aren't
6 // constantly adding and subtracting header sizes; this is ugly and error- 6 // constantly adding and subtracting header sizes; this is ugly and error-
7 // prone. 7 // prone.
8 8
9 #include "net/spdy/spdy_framer.h" 9 #include "net/spdy/spdy_framer.h"
10 10
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 DLOG(WARNING) << "Invalid length for SETTINGS frame: " 727 DLOG(WARNING) << "Invalid length for SETTINGS frame: "
728 << current_frame_length_; 728 << current_frame_length_;
729 set_error(SPDY_INVALID_CONTROL_FRAME); 729 set_error(SPDY_INVALID_CONTROL_FRAME);
730 } else if (current_frame_flags_ & 730 } else if (current_frame_flags_ &
731 ~SETTINGS_FLAG_CLEAR_PREVIOUSLY_PERSISTED_SETTINGS) { 731 ~SETTINGS_FLAG_CLEAR_PREVIOUSLY_PERSISTED_SETTINGS) {
732 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS); 732 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS);
733 } 733 }
734 break; 734 break;
735 case PING: 735 case PING:
736 if (current_frame_length_ != GetPingSize()) { 736 if (current_frame_length_ != GetPingSize()) {
737 set_error(SPDY_INVALID_CONTROL_FRAME); 737 // TODO(akalin): Unignore this.
738 // set_error(SPDY_INVALID_CONTROL_FRAME);
738 } else if (spdy_version_ < SPDY4 && current_frame_flags_ != 0) { 739 } else if (spdy_version_ < SPDY4 && current_frame_flags_ != 0) {
739 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS); 740 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS);
740 } else if (spdy_version_ >= SPDY4 && (current_frame_flags_ & ~0x1) != 0) { 741 } else if (spdy_version_ >= SPDY4 && (current_frame_flags_ & ~0x1) != 0) {
741 // TODO(akalin): Unignore this. 742 // TODO(akalin): Unignore this.
742 // set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS); 743 // set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS);
743 } 744 }
744 break; 745 break;
745 case GOAWAY: 746 case GOAWAY:
746 { 747 {
747 if (current_frame_length_ != GetGoAwaySize()) { 748 if (current_frame_length_ != GetGoAwaySize()) {
(...skipping 18 matching lines...) Expand all
766 ~(CONTROL_FLAG_FIN | HEADERS_FLAG_PRIORITY | 767 ~(CONTROL_FLAG_FIN | HEADERS_FLAG_PRIORITY |
767 HEADERS_FLAG_END_HEADERS)) { 768 HEADERS_FLAG_END_HEADERS)) {
768 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS); 769 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS);
769 } 770 }
770 } 771 }
771 break; 772 break;
772 case WINDOW_UPDATE: 773 case WINDOW_UPDATE:
773 if (current_frame_length_ != GetWindowUpdateSize()) { 774 if (current_frame_length_ != GetWindowUpdateSize()) {
774 set_error(SPDY_INVALID_CONTROL_FRAME); 775 set_error(SPDY_INVALID_CONTROL_FRAME);
775 } else if (current_frame_flags_ != 0) { 776 } else if (current_frame_flags_ != 0) {
776 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS); 777 // TODO(akalin): Implement END_FLOW_CONTROL handling.
778 // set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS);
777 } 779 }
778 break; 780 break;
779 case CREDENTIAL: 781 case CREDENTIAL:
780 if (current_frame_length_ < GetCredentialMinimumSize()) { 782 if (current_frame_length_ < GetCredentialMinimumSize()) {
781 set_error(SPDY_INVALID_CONTROL_FRAME); 783 set_error(SPDY_INVALID_CONTROL_FRAME);
782 } else if (current_frame_flags_ != 0) { 784 } else if (current_frame_flags_ != 0) {
783 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS); 785 set_error(SPDY_INVALID_CONTROL_FRAME_FLAGS);
784 } 786 }
785 break; 787 break;
786 case BLOCKED: 788 case BLOCKED:
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 switch (id_and_flags.id()) { 1396 switch (id_and_flags.id()) {
1395 case SETTINGS_UPLOAD_BANDWIDTH: 1397 case SETTINGS_UPLOAD_BANDWIDTH:
1396 case SETTINGS_DOWNLOAD_BANDWIDTH: 1398 case SETTINGS_DOWNLOAD_BANDWIDTH:
1397 case SETTINGS_ROUND_TRIP_TIME: 1399 case SETTINGS_ROUND_TRIP_TIME:
1398 case SETTINGS_MAX_CONCURRENT_STREAMS: 1400 case SETTINGS_MAX_CONCURRENT_STREAMS:
1399 case SETTINGS_CURRENT_CWND: 1401 case SETTINGS_CURRENT_CWND:
1400 case SETTINGS_DOWNLOAD_RETRANS_RATE: 1402 case SETTINGS_DOWNLOAD_RETRANS_RATE:
1401 case SETTINGS_INITIAL_WINDOW_SIZE: 1403 case SETTINGS_INITIAL_WINDOW_SIZE:
1402 // Valid values. 1404 // Valid values.
1403 break; 1405 break;
1406 case SETTINGS_FLOW_CONTROL_OPTIONS:
1407 // TODO(akalin): Implement this.
1408 break;
1404 default: 1409 default:
1405 DLOG(WARNING) << "Unknown SETTINGS ID: " << id_and_flags.id(); 1410 DLOG(WARNING) << "Unknown SETTINGS ID: " << id_and_flags.id();
1406 return false; 1411 return false;
1407 } 1412 }
1408 SpdySettingsIds id = static_cast<SpdySettingsIds>(id_and_flags.id()); 1413 SpdySettingsIds id = static_cast<SpdySettingsIds>(id_and_flags.id());
1409 1414
1410 // Detect duplciates. 1415 // Detect duplciates.
1411 if (static_cast<uint32>(id) <= settings_scratch_.last_setting_id) { 1416 if (static_cast<uint32>(id) <= settings_scratch_.last_setting_id) {
1412 DLOG(WARNING) << "Duplicate entry or invalid ordering for id " << id 1417 DLOG(WARNING) << "Duplicate entry or invalid ordering for id " << id
1413 << " in " << display_protocol_ << " SETTINGS frame " 1418 << " in " << display_protocol_ << " SETTINGS frame "
(...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after
2488 builder->Seek(compressed_size); 2493 builder->Seek(compressed_size);
2489 builder->RewriteLength(*this); 2494 builder->RewriteLength(*this);
2490 2495
2491 pre_compress_bytes.Add(uncompressed_len); 2496 pre_compress_bytes.Add(uncompressed_len);
2492 post_compress_bytes.Add(compressed_size); 2497 post_compress_bytes.Add(compressed_size);
2493 2498
2494 compressed_frames.Increment(); 2499 compressed_frames.Increment();
2495 } 2500 }
2496 2501
2497 } // namespace net 2502 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/buffered_spdy_framer.cc ('k') | net/spdy/spdy_http_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698