| Index: net/spdy/spdy_proxy_client_socket.cc
|
| ===================================================================
|
| --- net/spdy/spdy_proxy_client_socket.cc (revision 113718)
|
| +++ net/spdy/spdy_proxy_client_socket.cc (working copy)
|
| @@ -34,7 +34,7 @@
|
| next_state_(STATE_DISCONNECTED),
|
| spdy_stream_(spdy_stream),
|
| old_read_callback_(NULL),
|
| - old_write_callback_(NULL),
|
| + write_callback_(NULL),
|
| endpoint_(endpoint),
|
| auth_(
|
| new HttpAuthController(HttpAuth::AUTH_PROXY,
|
| @@ -126,8 +126,7 @@
|
|
|
| write_buffer_len_ = 0;
|
| write_bytes_outstanding_ = 0;
|
| - old_write_callback_ = NULL;
|
| - write_callback_.Reset();
|
| + write_callback_ = NULL;
|
|
|
| next_state_ = STATE_DISCONNECTED;
|
|
|
| @@ -245,7 +244,7 @@
|
|
|
| int SpdyProxyClientSocket::Write(IOBuffer* buf, int buf_len,
|
| OldCompletionCallback* callback) {
|
| - DCHECK(!old_write_callback_ && write_callback_.is_null());
|
| + DCHECK(!write_callback_);
|
| if (next_state_ != STATE_OPEN)
|
| return ERR_SOCKET_NOT_CONNECTED;
|
|
|
| @@ -254,44 +253,6 @@
|
| if (buf_len <= kMaxSpdyFrameChunkSize) {
|
| int rv = spdy_stream_->WriteStreamData(buf, buf_len, spdy::DATA_FLAG_NONE);
|
| if (rv == ERR_IO_PENDING) {
|
| - old_write_callback_ = callback;
|
| - write_buffer_len_ = buf_len;
|
| - }
|
| - return rv;
|
| - }
|
| -
|
| - // Since a SPDY Data frame can only include kMaxSpdyFrameChunkSize bytes
|
| - // we need to send multiple data frames
|
| - for (int i = 0; i < buf_len; i += kMaxSpdyFrameChunkSize) {
|
| - int len = std::min(kMaxSpdyFrameChunkSize, buf_len - i);
|
| - scoped_refptr<DrainableIOBuffer> iobuf(new DrainableIOBuffer(buf, i + len));
|
| - iobuf->SetOffset(i);
|
| - int rv = spdy_stream_->WriteStreamData(iobuf, len, spdy::DATA_FLAG_NONE);
|
| - if (rv > 0) {
|
| - write_bytes_outstanding_ -= rv;
|
| - } else if (rv != ERR_IO_PENDING) {
|
| - return rv;
|
| - }
|
| - }
|
| - if (write_bytes_outstanding_ > 0) {
|
| - old_write_callback_ = callback;
|
| - write_buffer_len_ = buf_len;
|
| - return ERR_IO_PENDING;
|
| - } else {
|
| - return buf_len;
|
| - }
|
| -}
|
| -int SpdyProxyClientSocket::Write(IOBuffer* buf, int buf_len,
|
| - const CompletionCallback& callback) {
|
| - DCHECK(!old_write_callback_ && write_callback_.is_null());
|
| - if (next_state_ != STATE_OPEN)
|
| - return ERR_SOCKET_NOT_CONNECTED;
|
| -
|
| - DCHECK(spdy_stream_);
|
| - write_bytes_outstanding_= buf_len;
|
| - if (buf_len <= kMaxSpdyFrameChunkSize) {
|
| - int rv = spdy_stream_->WriteStreamData(buf, buf_len, spdy::DATA_FLAG_NONE);
|
| - if (rv == ERR_IO_PENDING) {
|
| write_callback_ = callback;
|
| write_buffer_len_ = buf_len;
|
| }
|
| @@ -571,7 +532,7 @@
|
| }
|
|
|
| void SpdyProxyClientSocket::OnDataSent(int length) {
|
| - DCHECK(old_write_callback_ || !write_callback_.is_null());
|
| + DCHECK(write_callback_);
|
|
|
| write_bytes_outstanding_ -= length;
|
|
|
| @@ -581,15 +542,9 @@
|
| int rv = write_buffer_len_;
|
| write_buffer_len_ = 0;
|
| write_bytes_outstanding_ = 0;
|
| - if (old_write_callback_) {
|
| - OldCompletionCallback* c = old_write_callback_;
|
| - old_write_callback_ = NULL;
|
| - c->Run(rv);
|
| - } else {
|
| - CompletionCallback c = write_callback_;
|
| - write_callback_.Reset();
|
| - c.Run(rv);
|
| - }
|
| + OldCompletionCallback* c = write_callback_;
|
| + write_callback_ = NULL;
|
| + c->Run(rv);
|
| }
|
| }
|
|
|
| @@ -606,10 +561,8 @@
|
| next_state_ = STATE_DISCONNECTED;
|
|
|
| base::WeakPtr<SpdyProxyClientSocket> weak_ptr = weak_factory_.GetWeakPtr();
|
| - OldCompletionCallback* old_write_callback = old_write_callback_;
|
| - CompletionCallback write_callback = write_callback_;
|
| - old_write_callback_ = NULL;
|
| - write_callback_.Reset();
|
| + OldCompletionCallback* write_callback = write_callback_;
|
| + write_callback_ = NULL;
|
| write_buffer_len_ = 0;
|
| write_bytes_outstanding_ = 0;
|
|
|
| @@ -631,12 +584,8 @@
|
| OnDataReceived(NULL, 0);
|
| }
|
| // This may have been deleted by read_callback_, so check first.
|
| - if (weak_ptr && (old_write_callback || !write_callback.is_null())) {
|
| - if (old_write_callback)
|
| - old_write_callback->Run(ERR_CONNECTION_CLOSED);
|
| - else
|
| - write_callback.Run(ERR_CONNECTION_CLOSED);
|
| - }
|
| + if (weak_ptr && write_callback)
|
| + write_callback->Run(ERR_CONNECTION_CLOSED);
|
| }
|
|
|
| void SpdyProxyClientSocket::set_chunk_callback(ChunkCallback* /*callback*/) {
|
|
|