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

Unified Diff: net/spdy/spdy_framer.cc

Issue 202033002: Update SPDY4 length field to exclude frame prefix length. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Related test update 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_framer.h ('k') | net/spdy/spdy_framer_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_framer.cc
diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc
index 2d18e0c56b4dd444b57c65fc893d4383e439f463..5481b4f0dffd9d4d7e6ea76071f98bebbc83215a 100644
--- a/net/spdy/spdy_framer.cc
+++ b/net/spdy/spdy_framer.cc
@@ -663,7 +663,6 @@ size_t SpdyFramer::ProcessCommonHeader(const char* data, size_t len) {
uint16 length_field = 0;
bool successful_read = reader->ReadUInt16(&length_field);
DCHECK(successful_read);
- current_frame_length_ = length_field;
uint8 control_frame_type_field_uint8 = DATA;
successful_read = reader->ReadUInt8(&control_frame_type_field_uint8);
@@ -673,6 +672,12 @@ size_t SpdyFramer::ProcessCommonHeader(const char* data, size_t len) {
control_frame_type_field = control_frame_type_field_uint8;
is_control_frame = (control_frame_type_field != DATA);
+ if (is_control_frame) {
+ current_frame_length_ = length_field + GetControlFrameHeaderSize();
+ } else {
+ current_frame_length_ = length_field + GetDataFrameMinimumSize();
+ }
+
successful_read = reader->ReadUInt8(&current_frame_flags_);
DCHECK(successful_read);
@@ -2068,11 +2073,7 @@ SpdySerializedFrame* SpdyFramer::SerializeDataFrameHeader(
SpdyFrameBuilder builder(kSize);
builder.WriteDataFrameHeader(*this, data.stream_id(), flags);
- if (protocol_version() >= 4) {
- builder.OverwriteLength(*this, data.data().length() + kSize);
- } else {
- builder.OverwriteLength(*this, data.data().length());
- }
+ builder.OverwriteLength(*this, data.data().length());
DCHECK_EQ(kSize, builder.length());
return builder.take();
}
« no previous file with comments | « net/spdy/spdy_framer.h ('k') | net/spdy/spdy_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698