diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-15 00:21:42 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-15 00:21:42 +0000 |
commit | d46715c9e23b6a27a4f3484fa3c2f9e213c8ed14 (patch) | |
tree | a0619f483850b39c6bbb34e3e191ef4cb8f35059 /net/spdy/spdy_proxy_client_socket.cc | |
parent | bf97e8bcd8225c395db813ecc0b0ed84194b0d04 (diff) | |
download | chromium_src-d46715c9e23b6a27a4f3484fa3c2f9e213c8ed14.zip chromium_src-d46715c9e23b6a27a4f3484fa3c2f9e213c8ed14.tar.gz chromium_src-d46715c9e23b6a27a4f3484fa3c2f9e213c8ed14.tar.bz2 |
[SPDY] Plumb SPDY frame type through write queue
This lets us remove the waiting_completions_ queue
from SpdyStream, and also lets us guarantee that
a stream is activated only when SYN_STREAM is sent.
Change some SpdyStream::Delegate function signatures.
Also add SpdySendStatus to replace some booleans.
Change SpdyStream::send_bytes_ to only track data frames.
Add GetFrame{Min,Max}imumSize() function to SpdyFramer.
Fix calculation of frame overhead that is buggy with SPDY/4 and
add regression test.
BUG=176592,231003
Review URL: https://chromiumcodereview.appspot.com/13977002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194127 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_proxy_client_socket.cc')
-rw-r--r-- | net/spdy/spdy_proxy_client_socket.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/net/spdy/spdy_proxy_client_socket.cc b/net/spdy/spdy_proxy_client_socket.cc index b5b3313..7978d60 100644 --- a/net/spdy/spdy_proxy_client_socket.cc +++ b/net/spdy/spdy_proxy_client_socket.cc @@ -477,14 +477,14 @@ int SpdyProxyClientSocket::DoReadReplyComplete(int result) { // SpdyStream::Delegate methods: // Called when SYN frame has been sent. // Returns true if no more data to be sent after SYN frame. -bool SpdyProxyClientSocket::OnSendHeadersComplete(int status) { +SpdySendStatus SpdyProxyClientSocket::OnSendHeadersComplete() { DCHECK_EQ(next_state_, STATE_SEND_REQUEST_COMPLETE); - OnIOComplete(status); + OnIOComplete(OK); // We return true here so that we send |spdy_stream_| into // STATE_OPEN (ala WebSockets). - return true; + return NO_MORE_DATA_TO_SEND; } int SpdyProxyClientSocket::OnSendBody() { @@ -494,11 +494,12 @@ int SpdyProxyClientSocket::OnSendBody() { return ERR_UNEXPECTED; } -int SpdyProxyClientSocket::OnSendBodyComplete(int /*status*/, bool* /*eof*/) { +SpdySendStatus SpdyProxyClientSocket::OnSendBodyComplete( + size_t /*bytes_sent*/) { // Because we use |spdy_stream_| via STATE_OPEN (ala WebSockets) // OnSendBodyComplete() should never be called. NOTREACHED(); - return ERR_UNEXPECTED; + return NO_MORE_DATA_TO_SEND; } int SpdyProxyClientSocket::OnResponseReceived( @@ -547,12 +548,11 @@ int SpdyProxyClientSocket::OnDataReceived(const char* data, int length) { return OK; } -void SpdyProxyClientSocket::OnDataSent(int length) { +void SpdyProxyClientSocket::OnDataSent(size_t bytes_sent) { DCHECK(!write_callback_.is_null()); - write_bytes_outstanding_ -= length; - - DCHECK_GE(write_bytes_outstanding_, 0); + DCHECK_LE(static_cast<int>(bytes_sent), write_bytes_outstanding_); + write_bytes_outstanding_ -= static_cast<int>(bytes_sent); if (write_bytes_outstanding_ == 0) { int rv = write_buffer_len_; |