summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/spdy/buffered_spdy_framer.cc2
-rw-r--r--net/spdy/buffered_spdy_framer.h2
-rw-r--r--net/spdy/spdy_framer.cc35
-rw-r--r--net/spdy/spdy_framer.h9
-rw-r--r--net/spdy/spdy_framer_test.cc11
-rw-r--r--net/spdy/spdy_protocol.h38
-rw-r--r--net/spdy/spdy_protocol_test.cc52
-rw-r--r--net/spdy/spdy_session.cc2
-rw-r--r--net/tools/flip_server/spdy_interface.cc2
9 files changed, 11 insertions, 142 deletions
diff --git a/net/spdy/buffered_spdy_framer.cc b/net/spdy/buffered_spdy_framer.cc
index 9f19d58..15b560b 100644
--- a/net/spdy/buffered_spdy_framer.cc
+++ b/net/spdy/buffered_spdy_framer.cc
@@ -243,7 +243,7 @@ SpdyFrame* BufferedSpdyFramer::CreateRstStream(
return spdy_framer_.CreateRstStream(stream_id, status);
}
-SpdySettingsControlFrame* BufferedSpdyFramer::CreateSettings(
+SpdyFrame* BufferedSpdyFramer::CreateSettings(
const SettingsMap& values) const {
return spdy_framer_.CreateSettings(values);
}
diff --git a/net/spdy/buffered_spdy_framer.h b/net/spdy/buffered_spdy_framer.h
index dfbcc34..c8f5077 100644
--- a/net/spdy/buffered_spdy_framer.h
+++ b/net/spdy/buffered_spdy_framer.h
@@ -160,7 +160,7 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramer
const SpdyHeaderBlock* headers);
SpdyFrame* CreateRstStream(SpdyStreamId stream_id,
SpdyRstStreamStatus status) const;
- SpdySettingsControlFrame* CreateSettings(const SettingsMap& values) const;
+ SpdyFrame* CreateSettings(const SettingsMap& values) const;
SpdyFrame* CreatePingFrame(uint32 unique_id) const;
SpdyFrame* CreateGoAway(
SpdyStreamId last_accepted_stream_id,
diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc
index 32909d0..5b94312 100644
--- a/net/spdy/spdy_framer.cc
+++ b/net/spdy/spdy_framer.cc
@@ -679,7 +679,7 @@ void SpdyFramer::ProcessControlFrameHeader() {
frame_size_without_variable_data = GetHeadersMinimumSize();
break;
case SETTINGS:
- frame_size_without_variable_data = SpdySettingsControlFrame::size();
+ frame_size_without_variable_data = GetSettingsMinimumSize();
break;
default:
frame_size_without_variable_data = -1;
@@ -1397,34 +1397,6 @@ size_t SpdyFramer::ParseHeaderBlockInBuffer(const char* header_data,
return reader.GetBytesConsumed();
}
-// TODO(hkhalil): Remove, or move to test utils kit.
-/* static */
-bool SpdyFramer::ParseSettings(const SpdySettingsControlFrame* frame,
- SettingsMap* settings) {
- DCHECK_EQ(frame->type(), SETTINGS);
- DCHECK(settings);
-
- SpdyFrameReader parser(frame->header_block(), frame->header_block_len());
- for (size_t index = 0; index < frame->num_entries(); ++index) {
- uint32 id_and_flags_wire;
- uint32 value;
- // SettingsFlagsAndId accepts off-the-wire (network byte order) data, so we
- // use ReadBytes() instead of ReadUInt32() as the latter calls ntohl().
- if (!parser.ReadBytes(&id_and_flags_wire, 4)) {
- return false;
- }
- if (!parser.ReadUInt32(&value))
- return false;
- SettingsFlagsAndId flags_and_id =
- SettingsFlagsAndId::FromWireFormat(frame->version(), id_and_flags_wire);
- SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id());
- SpdySettingsFlags flags =
- static_cast<SpdySettingsFlags>(flags_and_id.flags());
- (*settings)[id] = SettingsFlagsAndValue(flags, value);
- }
- return true;
-}
-
/* static */
bool SpdyFramer::ParseCredentialData(const char* data, size_t len,
SpdyCredential* credential) {
@@ -1570,7 +1542,7 @@ SpdySerializedFrame* SpdyFramer::SerializeRstStream(
return builder.take();
}
-SpdySettingsControlFrame* SpdyFramer::CreateSettings(
+SpdyFrame* SpdyFramer::CreateSettings(
const SettingsMap& values) const {
SpdySettingsIR settings;
for (SettingsMap::const_iterator it = values.begin();
@@ -1581,8 +1553,7 @@ SpdySettingsControlFrame* SpdyFramer::CreateSettings(
(it->second.first & SETTINGS_FLAG_PERSISTED) != 0,
it->second.second);
}
- return reinterpret_cast<SpdySettingsControlFrame*>(
- SerializeSettings(settings));
+ return SerializeSettings(settings);
}
SpdySerializedFrame* SpdyFramer::SerializeSettings(
diff --git a/net/spdy/spdy_framer.h b/net/spdy/spdy_framer.h
index 5e29d78..42c377c2 100644
--- a/net/spdy/spdy_framer.h
+++ b/net/spdy/spdy_framer.h
@@ -385,9 +385,9 @@ class NET_EXPORT_PRIVATE SpdyFramer {
SpdySerializedFrame* SerializeRstStream(
const SpdyRstStreamIR& rst_stream) const;
- // Creates an instance of SpdySettingsControlFrame. The SETTINGS frame is
+ // Creates and serializes a SETTINGS frame. The SETTINGS frame is
// used to communicate name/value pairs relevant to the communication channel.
- SpdySettingsControlFrame* CreateSettings(const SettingsMap& values) const;
+ SpdyFrame* CreateSettings(const SettingsMap& values) const;
SpdySerializedFrame* SerializeSettings(const SpdySettingsIR& settings) const;
// Creates and serializes a PING frame. The unique_id is used to
@@ -427,11 +427,6 @@ class NET_EXPORT_PRIVATE SpdyFramer {
SpdySerializedFrame* SerializeCredential(
const SpdyCredentialIR& credential) const;
- // Given a SpdySettingsControlFrame, extract the settings.
- // Returns true on successful parse, false otherwise.
- static bool ParseSettings(const SpdySettingsControlFrame* frame,
- SettingsMap* settings);
-
// Given a CREDENTIAL frame's payload, extract the credential.
// Returns true on successful parse, false otherwise.
// TODO(hkhalil): Implement CREDENTIAL frame parsing in SpdyFramer
diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc
index 2fac2f9..8daaca5 100644
--- a/net/spdy/spdy_framer_test.cc
+++ b/net/spdy/spdy_framer_test.cc
@@ -2090,18 +2090,11 @@ TEST_P(SpdyFramerTest, CreateSettings) {
0x0a, 0x0b, 0x0c, 0x0d,
};
- scoped_ptr<SpdySettingsControlFrame> frame(framer.CreateSettings(settings));
+ scoped_ptr<SpdyFrame> frame(framer.CreateSettings(settings));
CompareFrame(kDescription,
*frame,
IsSpdy2() ? kFrameDatav2 : kFrameDatav3,
arraysize(kFrameDatav3)); // Size is unchanged among versions.
-
- // Make sure that ParseSettings also works as advertised.
- SettingsMap parsed_settings;
- EXPECT_TRUE(framer.ParseSettings(frame.get(), &parsed_settings));
- EXPECT_EQ(settings.size(), parsed_settings.size());
- EXPECT_EQ(kFlags, parsed_settings[kId].first);
- EXPECT_EQ(kValue, parsed_settings[kId].second);
}
{
@@ -2130,7 +2123,7 @@ TEST_P(SpdyFramerTest, CreateSettings) {
0x03, 0x00, 0x00, 0x03, // 4th Setting
0xff, 0x00, 0x00, 0x04,
};
- scoped_ptr<SpdySettingsControlFrame> frame(framer.CreateSettings(settings));
+ scoped_ptr<SpdyFrame> frame(framer.CreateSettings(settings));
CompareFrame(kDescription,
*frame,
kFrameData,
diff --git a/net/spdy/spdy_protocol.h b/net/spdy/spdy_protocol.h
index 8835f1c..6b698c0 100644
--- a/net/spdy/spdy_protocol.h
+++ b/net/spdy/spdy_protocol.h
@@ -483,12 +483,6 @@ struct SpdyFrameBlock {
FlagsAndLength flags_length_;
};
-// A SETTINGS Control Frame structure.
-struct SpdySettingsControlFrameBlock : SpdyFrameBlock {
- uint32 num_entries_;
- // Variable data here.
-};
-
#pragma pack(pop)
class SpdyFrame;
@@ -942,38 +936,6 @@ class SpdyControlFrame : public SpdyFrame {
DISALLOW_COPY_AND_ASSIGN(SpdyControlFrame);
};
-class SpdySettingsControlFrame : public SpdyControlFrame {
- public:
- SpdySettingsControlFrame() : SpdyControlFrame(size()) {}
- SpdySettingsControlFrame(char* data, bool owns_buffer)
- : SpdyControlFrame(data, owns_buffer) {}
-
- uint32 num_entries() const {
- return ntohl(block()->num_entries_);
- }
-
- int header_block_len() const {
- return length() - (size() - SpdyFrame::kHeaderSize);
- }
-
- const char* header_block() const {
- return reinterpret_cast<const char*>(block()) + size();
- }
-
- // Returns the size of the SpdySettingsControlFrameBlock structure.
- // Note: this is not the size of the SpdySettingsControlFrameBlock class.
- static size_t size() { return sizeof(SpdySettingsControlFrameBlock); }
-
- private:
- const struct SpdySettingsControlFrameBlock* block() const {
- return static_cast<SpdySettingsControlFrameBlock*>(frame_);
- }
- struct SpdySettingsControlFrameBlock* mutable_block() {
- return static_cast<SpdySettingsControlFrameBlock*>(frame_);
- }
- DISALLOW_COPY_AND_ASSIGN(SpdySettingsControlFrame);
-};
-
} // namespace net
#endif // NET_SPDY_SPDY_PROTOCOL_H_
diff --git a/net/spdy/spdy_protocol_test.cc b/net/spdy/spdy_protocol_test.cc
index c28b0f6..db56d3a 100644
--- a/net/spdy/spdy_protocol_test.cc
+++ b/net/spdy/spdy_protocol_test.cc
@@ -43,7 +43,6 @@ TEST_P(SpdyProtocolTest, ProtocolConstants) {
EXPECT_EQ(8u, SpdyFrame::kHeaderSize);
EXPECT_EQ(8u, SpdyDataFrame::size());
EXPECT_EQ(8u, SpdyControlFrame::kHeaderSize);
- EXPECT_EQ(12u, SpdySettingsControlFrame::size());
EXPECT_EQ(4u, sizeof(FlagsAndLength));
EXPECT_EQ(1, SYN_STREAM);
EXPECT_EQ(2, SYN_REPLY);
@@ -120,57 +119,6 @@ TEST_P(SpdyProtocolTest, TestDataFrame) {
EXPECT_EQ(length, frame.length());
}
-// Test various types of SETTINGS frames.
-TEST_P(SpdyProtocolTest, TestSpdySettingsFrame) {
- SpdyFramer framer(spdy_version_);
-
- // Create a settings frame with no settings.
- SettingsMap settings;
- scoped_ptr<SpdySettingsControlFrame> settings_frame(
- framer.CreateSettings(settings));
- EXPECT_EQ(framer.protocol_version(), settings_frame->version());
- EXPECT_TRUE(settings_frame->is_control_frame());
- EXPECT_EQ(SETTINGS, settings_frame->type());
- EXPECT_EQ(0u, settings_frame->num_entries());
-
- // We'll add several different ID/Flag combinations and then verify
- // that they encode and decode properly.
- SettingsFlagsAndId ids[] = {
- SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x00000000),
- SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x00010203),
- SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x01030402),
- SettingsFlagsAndId::FromWireFormat(spdy_version_, 0x02030401),
- SettingsFlagsAndId(3, 9)
- };
-
- for (uint32 index = 0; index < arraysize(ids); ++index) {
- SettingsFlagsAndId flags_and_id = ids[index];
- SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id());
- SpdySettingsFlags flags =
- static_cast<SpdySettingsFlags>(flags_and_id.flags());
- settings[id] = SettingsFlagsAndValue(flags, index);
- settings_frame.reset(framer.CreateSettings(settings));
- EXPECT_EQ(framer.protocol_version(), settings_frame->version());
- EXPECT_TRUE(settings_frame->is_control_frame());
- EXPECT_EQ(SETTINGS, settings_frame->type());
- EXPECT_EQ(index + 1, settings_frame->num_entries());
-
- SettingsMap parsed_settings;
- EXPECT_TRUE(framer.ParseSettings(settings_frame.get(), &parsed_settings));
- EXPECT_EQ(settings.size(), parsed_settings.size());
- for (SettingsMap::const_iterator it = parsed_settings.begin();
- it != parsed_settings.end();
- it++) {
- SettingsMap::const_iterator it2 = settings.find(it->first);
- EXPECT_EQ(it->first, it2->first);
- SettingsFlagsAndValue parsed = it->second;
- SettingsFlagsAndValue created = it2->second;
- EXPECT_EQ(created.first, parsed.first);
- EXPECT_EQ(created.second, parsed.second);
- }
- }
-}
-
TEST_P(SpdyProtocolTest, HasHeaderBlock) {
SpdyControlFrame frame(SpdyControlFrame::kHeaderSize);
for (SpdyControlType type = SYN_STREAM;
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index 086cfad..f1991ac 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -1765,7 +1765,7 @@ void SpdySession::SendSettings(const SettingsMap& settings) {
// Create the SETTINGS frame and send it.
DCHECK(buffered_spdy_framer_.get());
- scoped_ptr<SpdySettingsControlFrame> settings_frame(
+ scoped_ptr<SpdyFrame> settings_frame(
buffered_spdy_framer_->CreateSettings(settings));
sent_settings_ = true;
QueueFrame(settings_frame.release(), HIGHEST);
diff --git a/net/tools/flip_server/spdy_interface.cc b/net/tools/flip_server/spdy_interface.cc
index 18c76e5..dfef135 100644
--- a/net/tools/flip_server/spdy_interface.cc
+++ b/net/tools/flip_server/spdy_interface.cc
@@ -303,7 +303,7 @@ int SpdySM::PostAcceptHook() {
SettingsMap settings;
settings[SETTINGS_MAX_CONCURRENT_STREAMS] =
SettingsFlagsAndValue(SETTINGS_FLAG_NONE, 100);
- SpdySettingsControlFrame* settings_frame =
+ SpdyFrame* settings_frame =
buffered_spdy_framer_->CreateSettings(settings);
VLOG(1) << ACCEPTOR_CLIENT_IDENT << "Sending Settings Frame";