diff options
author | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-20 05:26:45 +0000 |
---|---|---|
committer | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-20 05:26:45 +0000 |
commit | 467e0e55f81ccddf150a0415a3ecaf1e075eb683 (patch) | |
tree | 6bd83d96dd3abe70f7a20f7381892c5de09781af /net/socket_stream | |
parent | e74257b15f1532d4e50d59a108e8d0bb220dc3b9 (diff) | |
download | chromium_src-467e0e55f81ccddf150a0415a3ecaf1e075eb683.zip chromium_src-467e0e55f81ccddf150a0415a3ecaf1e075eb683.tar.gz chromium_src-467e0e55f81ccddf150a0415a3ecaf1e075eb683.tar.bz2 |
Reset tunnel request headers after they are sent.
There headers should be reinitialized when a client is going to reconnect
because of invalid cert or client cert request.
BUG=133243
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10582016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143147 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket_stream')
-rw-r--r-- | net/socket_stream/socket_stream.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/socket_stream/socket_stream.cc b/net/socket_stream/socket_stream.cc index a3424da..908223c 100644 --- a/net/socket_stream/socket_stream.cc +++ b/net/socket_stream/socket_stream.cc @@ -778,10 +778,16 @@ int SocketStream::DoWriteTunnelHeadersComplete(int result) { tunnel_request_headers_bytes_sent_ += result; if (tunnel_request_headers_bytes_sent_ < - tunnel_request_headers_->headers_.size()) + tunnel_request_headers_->headers_.size()) { next_state_ = STATE_WRITE_TUNNEL_HEADERS; - else + } else { + // Handling a cert error or a client cert request requires reconnection. + // DoWriteTunnelHeaders() will be called again. + // Thus |tunnel_request_headers_bytes_sent_| should be reset to 0 for + // sending |tunnel_request_headers_| correctly. + tunnel_request_headers_bytes_sent_ = 0; next_state_ = STATE_READ_TUNNEL_HEADERS; + } return OK; } |