summaryrefslogtreecommitdiffstats
path: root/net/spdy
diff options
context:
space:
mode:
authormbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-03 20:52:02 +0000
committermbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-03 20:52:02 +0000
commitbace48c8d4042dc0da472fcdf645bbd26ad513dc (patch)
tree463168990eb6aabbf4e8472fc93524016a50d515 /net/spdy
parentb83a6621517d44fd8a39dacc2beac07735dd1d1e (diff)
downloadchromium_src-bace48c8d4042dc0da472fcdf645bbd26ad513dc.zip
chromium_src-bace48c8d4042dc0da472fcdf645bbd26ad513dc.tar.gz
chromium_src-bace48c8d4042dc0da472fcdf645bbd26ad513dc.tar.bz2
Make Chrome capable of advertising spdy version 1.
This is for debugging purposes only. BUG=none TEST=none Review URL: http://codereview.chromium.org/2808098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54813 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy')
-rw-r--r--net/spdy/spdy_framer.cc17
-rw-r--r--net/spdy/spdy_framer.h3
2 files changed, 12 insertions, 8 deletions
diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc
index cd622b8..c558480 100644
--- a/net/spdy/spdy_framer.cc
+++ b/net/spdy/spdy_framer.cc
@@ -27,6 +27,7 @@ static const size_t kControlFrameBufferMaxSize = 64 * 1024;
// By default is compression on or off.
bool SpdyFramer::compression_default_ = true;
+int SpdyFramer::spdy_version_ = kSpdyProtocolVersion;
#ifdef DEBUG_SPDY_STATE_CHANGES
#define CHANGE_STATE(newstate) \
@@ -259,7 +260,7 @@ void SpdyFramer::ProcessControlFrameHeader() {
// We check version before we check validity: version can never be 'invalid',
// it can only be unsupported.
- if (current_control_frame.version() != kSpdyProtocolVersion) {
+ if (current_control_frame.version() != spdy_version_) {
set_error(SPDY_UNSUPPORTED_VERSION);
return;
}
@@ -520,7 +521,7 @@ SpdySynStreamControlFrame* SpdyFramer::CreateSynStream(
DCHECK_EQ(0u, stream_id & ~kStreamIdMask);
DCHECK_EQ(0u, associated_stream_id & ~kStreamIdMask);
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(SYN_STREAM);
frame.WriteUInt32(0); // Placeholder for the length and flags
frame.WriteUInt32(stream_id);
@@ -562,7 +563,7 @@ SpdyRstStreamControlFrame* SpdyFramer::CreateRstStream(SpdyStreamId stream_id,
DCHECK_LT(status, NUM_STATUS_CODES);
SpdyFrameBuilder frame;
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(RST_STREAM);
frame.WriteUInt32(8);
frame.WriteUInt32(stream_id);
@@ -576,7 +577,7 @@ SpdyGoAwayControlFrame* SpdyFramer::CreateGoAway(
DCHECK_EQ(0u, last_accepted_stream_id & ~kStreamIdMask);
SpdyFrameBuilder frame;
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(GOAWAY);
size_t go_away_size = SpdyGoAwayControlFrame::size() - SpdyFrame::size();
frame.WriteUInt32(go_away_size);
@@ -594,7 +595,7 @@ SpdyWindowUpdateControlFrame* SpdyFramer::CreateWindowUpdate(
DCHECK_LT(delta_window_size, 0x80000000u); // 2^31
SpdyFrameBuilder frame;
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(WINDOW_UPDATE);
size_t window_update_size = SpdyWindowUpdateControlFrame::size() -
SpdyFrame::size();
@@ -608,7 +609,7 @@ SpdyWindowUpdateControlFrame* SpdyFramer::CreateWindowUpdate(
SpdySettingsControlFrame* SpdyFramer::CreateSettings(
const SpdySettings& values) {
SpdyFrameBuilder frame;
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(SETTINGS);
size_t settings_size = SpdySettingsControlFrame::size() - SpdyFrame::size() +
8 * values.size();
@@ -630,7 +631,7 @@ SpdySynReplyControlFrame* SpdyFramer::CreateSynReply(SpdyStreamId stream_id,
SpdyFrameBuilder frame;
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(SYN_REPLY);
frame.WriteUInt32(0); // Placeholder for the length and flags.
frame.WriteUInt32(stream_id);
@@ -697,7 +698,7 @@ SpdyDataFrame* SpdyFramer::CreateDataFrame(SpdyStreamId stream_id,
/* static */
SpdyControlFrame* SpdyFramer::CreateNopFrame() {
SpdyFrameBuilder frame;
- frame.WriteUInt16(kControlFlagMask | kSpdyProtocolVersion);
+ frame.WriteUInt16(kControlFlagMask | spdy_version_);
frame.WriteUInt16(NOOP);
frame.WriteUInt32(0);
return reinterpret_cast<SpdyControlFrame*>(frame.take());
diff --git a/net/spdy/spdy_framer.h b/net/spdy/spdy_framer.h
index 070c870..b35ff2f 100644
--- a/net/spdy/spdy_framer.h
+++ b/net/spdy/spdy_framer.h
@@ -239,6 +239,8 @@ class SpdyFramer {
// For debugging.
static const char* StateToString(int state);
static const char* ErrorCodeToString(int error_code);
+ static void set_protocol_version(int version) { spdy_version_= version; }
+ static int protocol_version() { return spdy_version_; }
// Export the compression dictionary
static const char kDictionary[];
@@ -328,6 +330,7 @@ class SpdyFramer {
SpdyFramerVisitorInterface* visitor_;
static bool compression_default_;
+ static int spdy_version_;
};
} // namespace spdy