summaryrefslogtreecommitdiffstats
path: root/net/spdy/spdy_session.cc
diff options
context:
space:
mode:
authormbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-31 19:20:16 +0000
committermbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-31 19:20:16 +0000
commit58cebf8f4760a748c486475f046ee201b32b0642 (patch)
tree0d0bf870d4ebba7661efe4d5ecb4b081cd252749 /net/spdy/spdy_session.cc
parentd983b84870429ce4e860277262cf3f151ac4144d (diff)
downloadchromium_src-58cebf8f4760a748c486475f046ee201b32b0642.zip
chromium_src-58cebf8f4760a748c486475f046ee201b32b0642.tar.gz
chromium_src-58cebf8f4760a748c486475f046ee201b32b0642.tar.bz2
When we get a silent TCP RST, SPDY connections need to retry.
Fixing this involved a couple of minor changes. * We were not tracking whether a SPDY session should be retried. The HTTP logic uses "is_socket_idle()" to determine if the socket was once good and is worth retrying. Because SPDY is not serialized added methods through the SpdySession and SpdyHttpStream for this. (See ShouldResendFailedRequest) * The spdy_http_stream was not notifying the caller when OnSendHeadersComplete occurred when there is no upload body. This isn't strictly necessary, but keeps the HttpNetworkTransaction state more consistent. BUG=50510 TEST=SpdyNetworkTransactionTest Review URL: http://codereview.chromium.org/3064021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54464 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_session.cc')
-rw-r--r--net/spdy/spdy_session.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index d195fb9..2aa2289 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -166,6 +166,7 @@ SpdySession::SpdySession(const HostPortPair& host_port_pair,
streams_pushed_count_(0),
streams_pushed_and_claimed_count_(0),
streams_abandoned_count_(0),
+ frames_received_(0),
sent_settings_(false),
received_settings_(false),
in_session_pool_(true),
@@ -1139,6 +1140,8 @@ void SpdySession::OnControl(const spdy::SpdyControlFrame* frame) {
}
}
+ frames_received_++;
+
switch (type) {
case spdy::GOAWAY:
OnGoAway(*reinterpret_cast<const spdy::SpdyGoAwayControlFrame*>(frame));