Commit 118fbb95 authored by bnc's avatar bnc Committed by Commit bot

Harmonize SpdyFrameType enum values with wire values.

Also change ParseFrameType() return value for invalid frame types.  This
does not matter in SpdyFramer::ValidateFrameHeader(), because the call
to ParseFrameType() is preceeded by a call to IsValidFrameType().

This CL lands server change 143677028 by bnc.

BUG=488484

Review-Url: https://codereview.chromium.org/2619493005
Cr-Commit-Position: refs/heads/master@{#442903}
parent 14e2a1f1
......@@ -46,54 +46,13 @@ SpdyPriority Http2WeightToSpdy3Priority(int weight) {
}
bool IsValidFrameType(int frame_type_field) {
// Check for recognized extensions.
if (frame_type_field == SerializeFrameType(ALTSVC) ||
frame_type_field == SerializeFrameType(BLOCKED)) {
return true;
}
// DATA is the first valid frame.
if (frame_type_field < SerializeFrameType(DATA)) {
return false;
}
// CONTINUATION is the last valid frame.
if (frame_type_field > SerializeFrameType(CONTINUATION)) {
return false;
}
return true;
return frame_type_field >= MIN_FRAME_TYPE &&
frame_type_field <= MAX_FRAME_TYPE;
}
SpdyFrameType ParseFrameType(int frame_type_field) {
switch (frame_type_field) {
case 0:
return DATA;
case 1:
return HEADERS;
case 2:
return PRIORITY;
case 3:
return RST_STREAM;
case 4:
return SETTINGS;
case 5:
return PUSH_PROMISE;
case 6:
return PING;
case 7:
return GOAWAY;
case 8:
return WINDOW_UPDATE;
case 9:
return CONTINUATION;
case 10:
return ALTSVC;
case 11:
return BLOCKED;
}
SPDY_BUG << "Unhandled frame type " << frame_type_field;
return DATA;
SPDY_BUG_IF(!IsValidFrameType(frame_type_field)) << "Invalid frame type.";
return static_cast<SpdyFrameType>(frame_type_field);
}
int SerializeFrameType(SpdyFrameType frame_type) {
......
......@@ -74,19 +74,21 @@ const int kHttp2ConnectionHeaderPrefixSize =
// Types of HTTP2 frames.
enum SpdyFrameType {
DATA,
RST_STREAM,
SETTINGS,
PING,
GOAWAY,
HEADERS,
WINDOW_UPDATE,
PUSH_PROMISE,
CONTINUATION,
PRIORITY,
// BLOCKED and ALTSVC are recognized extensions.
BLOCKED,
ALTSVC,
DATA = 0x00,
MIN_FRAME_TYPE = DATA,
HEADERS = 0x01,
PRIORITY = 0x02,
RST_STREAM = 0x03,
SETTINGS = 0x04,
PUSH_PROMISE = 0x05,
PING = 0x06,
GOAWAY = 0x07,
WINDOW_UPDATE = 0x08,
CONTINUATION = 0x09,
// ALTSVC and BLOCKED are recognized extensions.
ALTSVC = 0x0a,
BLOCKED = 0x0b,
MAX_FRAME_TYPE = BLOCKED
};
// Flags on data packets.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment