diff options
author | ukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 03:57:26 +0000 |
---|---|---|
committer | ukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 03:57:26 +0000 |
commit | b862327fcecf4e282bcaf033354ba9073d9777e4 (patch) | |
tree | c75050f0d74936645b8b87f5e9aab9ded61e5bbc /net/socket_stream/socket_stream.cc | |
parent | 2ca314768b4dd53ec4ceb38b0d8f780d74674f6d (diff) | |
download | chromium_src-b862327fcecf4e282bcaf033354ba9073d9777e4.zip chromium_src-b862327fcecf4e282bcaf033354ba9073d9777e4.tar.gz chromium_src-b862327fcecf4e282bcaf033354ba9073d9777e4.tar.bz2 |
Minor fixes in SocketStream.
Commented on http://codereview.chromium.org/345025
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/355022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30937 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket_stream/socket_stream.cc')
-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 6ef8c33..62aad61 100644 --- a/net/socket_stream/socket_stream.cc +++ b/net/socket_stream/socket_stream.cc @@ -638,7 +638,7 @@ int SocketStream::DoSOCKSConnectComplete(int result) { if (is_secure()) next_state_ = STATE_SSL_CONNECT; else - DidEstablishConnection(); + result = DidEstablishConnection(); } return result; } @@ -688,7 +688,7 @@ int SocketStream::DoReadWrite(int result) { return ERR_CONNECTION_CLOSED; } // If read is pending, try write as well. - // Otherwise, return the result and do next loop. + // Otherwise, return the result and do next loop (to close the connection). if (result != ERR_IO_PENDING) { next_state_ = STATE_CLOSE; return result; @@ -708,6 +708,12 @@ int SocketStream::DoReadWrite(int result) { DidSendData(result); return OK; } + // If write is not pending, return the result and do next loop (to close + // the connection). + if (result != 0 && result != ERR_IO_PENDING) { + next_state_ = STATE_CLOSE; + return result; + } return result; } |