summaryrefslogtreecommitdiffstats
path: root/net/socket_stream/socket_stream.cc
diff options
context:
space:
mode:
authorukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-04 03:57:26 +0000
committerukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-04 03:57:26 +0000
commitb862327fcecf4e282bcaf033354ba9073d9777e4 (patch)
treec75050f0d74936645b8b87f5e9aab9ded61e5bbc /net/socket_stream/socket_stream.cc
parent2ca314768b4dd53ec4ceb38b0d8f780d74674f6d (diff)
downloadchromium_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.cc10
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;
}