Lines Matching refs:spdy
5 #include "net/spdy/spdy_session.h"
25 #include "net/spdy/spdy_frame_builder.h"
26 #include "net/spdy/spdy_http_utils.h"
27 #include "net/spdy/spdy_protocol.h"
28 #include "net/spdy/spdy_session_pool.h"
29 #include "net/spdy/spdy_settings_storage.h"
30 #include "net/spdy/spdy_stream.h"
35 const linked_ptr<spdy::SpdyHeaderBlock>& headers,
36 spdy::SpdyControlFlags flags,
37 spdy::SpdyStreamId id,
38 spdy::SpdyStreamId associated_stream)
51 for (spdy::SpdyHeaderBlock::const_iterator it = headers_->begin();
85 explicit NetLogSpdySettingsParameter(const spdy::SpdySettings& settings)
91 for (spdy::SpdySettings::const_iterator it = settings_.begin();
102 const spdy::SpdySettings settings_;
109 NetLogSpdyWindowUpdateParameter(spdy::SpdyStreamId stream_id,
124 const spdy::SpdyStreamId stream_id_;
133 NetLogSpdyDataParameter(spdy::SpdyStreamId stream_id,
135 spdy::SpdyDataFlags flags)
148 const spdy::SpdyStreamId stream_id_;
150 const spdy::SpdyDataFlags flags_;
157 NetLogSpdyRstParameter(spdy::SpdyStreamId stream_id, int status)
169 const spdy::SpdyStreamId stream_id_;
194 NetLogSpdyGoAwayParameter(spdy::SpdyStreamId last_stream_id,
212 const spdy::SpdyStreamId last_stream_id_;
280 initial_send_window_size_(spdy::kSpdyStreamInitialWindowSize),
281 initial_recv_window_size_(spdy::kSpdyStreamInitialWindowSize),
305 // With Spdy we can't recycle sockets.
324 base::StatsCounter spdy_sessions("spdy.sessions");
364 LOG(ERROR) << "Tried to get pushed spdy stream for secure content over an "
461 LOG(ERROR) << "Tried to create spdy stream for secure content over an "
469 const spdy::SpdyStreamId stream_id = GetNewStreamId();
494 spdy::SpdyStreamId stream_id,
496 spdy::SpdyControlFlags flags,
497 const linked_ptr<spdy::SpdyHeaderBlock>& headers) {
506 scoped_ptr<spdy::SpdySynStreamControlFrame> syn_frame(
513 base::StatsCounter spdy_requests("spdy.requests");
533 int SpdySession::WriteStreamData(spdy::SpdyStreamId stream_id,
535 spdy::SpdyDataFlags flags) {
547 flags = static_cast<spdy::SpdyDataFlags>(flags & ~spdy::DATA_FLAG_FIN);
569 flags = static_cast<spdy::SpdyDataFlags>(flags & ~spdy::DATA_FLAG_FIN);
581 scoped_ptr<spdy::SpdyDataFrame> frame(
587 void SpdySession::CloseStream(spdy::SpdyStreamId stream_id, int status) {
595 spdy::SpdyStreamId stream_id, spdy::SpdyStatusCodes status) {
601 scoped_ptr<spdy::SpdyRstStreamControlFrame> rst_frame(
614 bool SpdySession::IsStreamActive(spdy::SpdyStreamId stream_id) const {
661 spdy_framer_.error_code() == spdy::SpdyFramer::SPDY_NO_ERROR) {
665 if (spdy_framer_.state() == spdy::SpdyFramer::SPDY_DONE)
697 DCHECK_GE(result, static_cast<int>(spdy::SpdyFrame::size()));
698 result -= static_cast<int>(spdy::SpdyFrame::size());
797 spdy::SpdyFrame uncompressed_frame(next_buffer.buffer()->data(), false);
800 scoped_ptr<spdy::SpdyFrame> compressed_frame(
803 LOG(ERROR) << "SPDY Compression failure";
808 size = compressed_frame->length() + spdy::SpdyFrame::size();
819 size = uncompressed_frame.length() + spdy::SpdyFrame::size();
843 base::StatsCounter abandoned_streams("spdy.abandoned_streams");
845 "spdy.abandoned_push_streams");
885 void SpdySession::QueueFrame(spdy::SpdyFrame* frame,
886 spdy::SpdyPriority priority,
888 int length = spdy::SpdyFrame::size() + frame->length();
963 const spdy::SpdyStreamId id = stream->stream_id();
969 void SpdySession::DeleteStream(spdy::SpdyStreamId id, int status) {
1007 base::StatsCounter used_push_streams("spdy.claimed_push_streams");
1042 void SpdySession::OnError(spdy::SpdyFramer* framer) {
1046 void SpdySession::OnStreamFrameData(spdy::SpdyStreamId stream_id,
1053 stream_id, len, spdy::SpdyDataFlags())));
1066 bool SpdySession::Respond(const spdy::SpdyHeaderBlock& headers,
1072 const spdy::SpdyStreamId stream_id = stream->stream_id();
1079 void SpdySession::OnSyn(const spdy::SpdySynStreamControlFrame& frame,
1080 const linked_ptr<spdy::SpdyHeaderBlock>& headers) {
1081 spdy::SpdyStreamId stream_id = frame.stream_id();
1082 spdy::SpdyStreamId associated_stream_id = frame.associated_stream_id();
1088 headers, static_cast<spdy::SpdyControlFlags>(frame.flags()),
1107 ResetStream(stream_id, spdy::INVALID_STREAM);
1119 ResetStream(stream_id, spdy::PROTOCOL_ERROR);
1126 ResetStream(stream_id, spdy::PROTOCOL_ERROR);
1135 ResetStream(stream_id, spdy::INVALID_ASSOCIATED_STREAM);
1145 ResetStream(stream_id, spdy::REFUSED_STREAM);
1153 ResetStream(stream_id, spdy::PROTOCOL_ERROR);
1171 base::StatsCounter push_requests("spdy.pushed_streams");
1175 void SpdySession::OnSynReply(const spdy::SpdySynReplyControlFrame& frame,
1176 const linked_ptr<spdy::SpdyHeaderBlock>& headers) {
1177 spdy::SpdyStreamId stream_id = frame.stream_id();
1201 headers, static_cast<spdy::SpdyControlFlags>(frame.flags()),
1208 void SpdySession::OnHeaders(const spdy::SpdyHeadersControlFrame& frame,
1209 const linked_ptr<spdy::SpdyHeaderBlock>& headers) {
1210 spdy::SpdyStreamId stream_id = frame.stream_id();
1227 headers, static_cast<spdy::SpdyControlFlags>(frame.flags()),
1234 const spdy::SpdyStreamId stream_id = stream->stream_id();
1239 void SpdySession::OnControl(const spdy::SpdyControlFrame* frame) {
1240 const linked_ptr<spdy::SpdyHeaderBlock> headers(new spdy::SpdyHeaderBlock);
1242 if (type == spdy::SYN_STREAM ||
1243 type == spdy::SYN_REPLY ||
1244 type == spdy::HEADERS) {
1246 LOG(WARNING) << "Could not parse Spdy Control Frame Header.";
1248 if (type == spdy::SYN_STREAM) {
1249 stream_id = (reinterpret_cast<const spdy::SpdySynStreamControlFrame*>
1251 } else if (type == spdy::SYN_REPLY) {
1252 stream_id = (reinterpret_cast<const spdy::SpdySynReplyControlFrame*>
1254 } else if (type == spdy::HEADERS) {
1255 stream_id = (reinterpret_cast<const spdy::SpdyHeadersControlFrame*>
1259 ResetStream(stream_id, spdy::PROTOCOL_ERROR);
1267 case spdy::GOAWAY:
1268 OnGoAway(*reinterpret_cast<const spdy::SpdyGoAwayControlFrame*>(frame));
1270 case spdy::PING:
1271 OnPing(*reinterpret_cast<const spdy::SpdyPingControlFrame*>(frame));
1273 case spdy::SETTINGS:
1275 *reinterpret_cast<const spdy::SpdySettingsControlFrame*>(frame));
1277 case spdy::RST_STREAM:
1278 OnRst(*reinterpret_cast<const spdy::SpdyRstStreamControlFrame*>(frame));
1280 case spdy::SYN_STREAM:
1281 OnSyn(*reinterpret_cast<const spdy::SpdySynStreamControlFrame*>(frame),
1284 case spdy::HEADERS:
1285 OnHeaders(*reinterpret_cast<const spdy::SpdyHeadersControlFrame*>(frame),
1288 case spdy::SYN_REPLY:
1290 *reinterpret_cast<const spdy::SpdySynReplyControlFrame*>(frame),
1293 case spdy::WINDOW_UPDATE:
1295 *reinterpret_cast<const spdy::SpdyWindowUpdateControlFrame*>(frame));
1302 bool SpdySession::OnControlFrameHeaderData(spdy::SpdyStreamId stream_id,
1309 void SpdySession::OnDataFrameHeader(const spdy::SpdyDataFrame* frame) {
1313 void SpdySession::OnRst(const spdy::SpdyRstStreamControlFrame& frame) {
1314 spdy::SpdyStreamId stream_id = frame.stream_id();
1334 LOG(ERROR) << "Spdy stream closed: " << frame.status();
1335 // TODO(mbelshe): Map from Spdy-protocol errors to something sensical.
1341 void SpdySession::OnGoAway(const spdy::SpdyGoAwayControlFrame& frame) {
1359 void SpdySession::OnPing(const spdy::SpdyPingControlFrame& frame) {
1385 void SpdySession::OnSettings(const spdy::SpdySettingsControlFrame& frame) {
1386 spdy::SpdySettings settings;
1400 const spdy::SpdyWindowUpdateControlFrame& frame) {
1401 spdy::SpdyStreamId stream_id = frame.stream_id();
1411 ResetStream(stream_id, spdy::FLOW_CONTROL_ERROR);
1428 void SpdySession::SendWindowUpdate(spdy::SpdyStreamId stream_id,
1439 scoped_ptr<spdy::SpdyWindowUpdateControlFrame> window_update_frame(
1470 spdy::SpdySettings settings = spdy_settings_->Get(host_port_pair());
1475 for (spdy::SpdySettings::iterator i = settings.begin(),
1480 case spdy::SETTINGS_CURRENT_CWND:
1488 i->first.set_flags(spdy::SETTINGS_FLAG_PLEASE_PERSIST);
1502 scoped_ptr<spdy::SpdySettingsControlFrame> settings_frame(
1508 void SpdySession::HandleSettings(const spdy::SpdySettings& settings) {
1509 for (spdy::SpdySettings::const_iterator i = settings.begin(),
1514 case spdy::SETTINGS_MAX_CONCURRENT_STREAMS:
1563 scoped_ptr<spdy::SpdyPingControlFrame> ping_frame(
1645 const spdy::SpdySettings& settings = spdy_settings_->Get(host_port_pair());
1647 spdy::SpdySettings::const_iterator it;
1649 const spdy::SpdySetting setting = *it;
1651 case spdy::SETTINGS_CURRENT_CWND:
1678 case spdy::SETTINGS_ROUND_TRIP_TIME:
1683 case spdy::SETTINGS_DOWNLOAD_RETRANS_RATE: