summaryrefslogtreecommitdiffstats
path: root/net/spdy/spdy_session.cc
diff options
context:
space:
mode:
authoragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-17 15:44:25 +0000
committeragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-17 15:44:25 +0000
commit6abf53787922ac76409296dc2a2646371e9efab7 (patch)
tree666f0c0d13ced02f38bba8efdd65ba6977465fc9 /net/spdy/spdy_session.cc
parent2d0add3c88294fc6069e5a82b9eac28e6f108351 (diff)
downloadchromium_src-6abf53787922ac76409296dc2a2646371e9efab7.zip
chromium_src-6abf53787922ac76409296dc2a2646371e9efab7.tar.gz
chromium_src-6abf53787922ac76409296dc2a2646371e9efab7.tar.bz2
SPDY flow control: fix for WINDOW_UPDATEs arriving while request is being sent.
BUG=48100 TEST=net_unittests Review URL: http://codereview.chromium.org/3048058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56355 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_session.cc')
-rw-r--r--net/spdy/spdy_session.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index 549dd53..b1e9c23 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -433,8 +433,10 @@ int SpdySession::WriteStreamData(spdy::SpdyStreamId stream_id,
// Obey send window size of the stream if flow control is enabled.
if (use_flow_control_) {
- if (stream->send_window_size() <= 0)
+ if (stream->send_window_size() <= 0) {
+ stream->set_stalled_by_flow_control(true);
return ERR_IO_PENDING;
+ }
int new_len = std::min(len, stream->send_window_size());
if (new_len < len) {
len = new_len;