Index: net/spdy/spdy_framer.cc |
=================================================================== |
--- net/spdy/spdy_framer.cc (revision 131881) |
+++ net/spdy/spdy_framer.cc (working copy) |
@@ -1011,9 +1011,8 @@ |
/* static */ |
bool SpdyFramer::ParseSettings(const SpdySettingsControlFrame* frame, |
- SpdySettings* settings) { |
+ SettingsMap* settings) { |
DCHECK_EQ(frame->type(), SETTINGS); |
- DCHECK(settings); |
Ryan Hamilton
2012/04/12 17:11:21
Did you mean to remove this DCHECK?
ramant (doing other things)
2012/04/12 18:35:59
(my fault. deleted it by mistake)
Done.
|
SpdyFrameReader parser(frame->header_block(), frame->header_block_len()); |
for (size_t index = 0; index < frame->num_entries(); ++index) { |
@@ -1026,9 +1025,12 @@ |
} |
if (!parser.ReadUInt32(&value)) |
return false; |
- SettingsFlagsAndId id_and_flags = |
+ SettingsFlagsAndId flags_and_id = |
SettingsFlagsAndId::FromWireFormat(frame->version(), id_and_flags_wire); |
- settings->insert(settings->end(), std::make_pair(id_and_flags, value)); |
+ SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id()); |
+ SpdySettingsFlags flags = |
+ static_cast<SpdySettingsFlags>(flags_and_id.flags()); |
+ settings->insert(std::make_pair(id, SettingsFlagsAndValue(flags, value))); |
} |
return true; |
} |
@@ -1163,7 +1165,7 @@ |
} |
SpdySettingsControlFrame* SpdyFramer::CreateSettings( |
- const SpdySettings& values) const { |
+ const SettingsMap& values) const { |
SpdyFrameBuilder frame(SpdySettingsControlFrame::size() + 8 * values.size()); |
frame.WriteUInt16(kControlFlagMask | spdy_version_); |
frame.WriteUInt16(SETTINGS); |
@@ -1172,11 +1174,12 @@ |
8 * values.size(); |
frame.WriteUInt32(settings_size); |
frame.WriteUInt32(values.size()); |
- SpdySettings::const_iterator it = values.begin(); |
+ SettingsMap::const_iterator it = values.begin(); |
while (it != values.end()) { |
- uint32 id_and_flags_wire = it->first.GetWireFormat(spdy_version_); |
+ SettingsFlagsAndId flags_and_id(it->second.first, it->first); |
+ uint32 id_and_flags_wire = flags_and_id.GetWireFormat(spdy_version_); |
frame.WriteBytes(&id_and_flags_wire, 4); |
- frame.WriteUInt32(it->second); |
+ frame.WriteUInt32(it->second.second); |
++it; |
} |
return reinterpret_cast<SpdySettingsControlFrame*>(frame.take()); |