summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-20 21:10:12 +0000
committerwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-20 21:10:12 +0000
commite5a5c90e0982fdee7fe2c5f22d132910c981d140 (patch)
tree5542d31e16273d53174fe65a9e642d5b55bbf644 /net
parent0142283f0d40e6676beeb25fb2f249539bda7094 (diff)
downloadchromium_src-e5a5c90e0982fdee7fe2c5f22d132910c981d140.zip
chromium_src-e5a5c90e0982fdee7fe2c5f22d132910c981d140.tar.gz
chromium_src-e5a5c90e0982fdee7fe2c5f22d132910c981d140.tar.bz2
Merge 32555 - In RestartIgnoringLastError, use connection_.socket()>IsConnectedAndIdle()
instead of connection_.socket()>IsConnected() to check if the connection is still alive, to work around a weakness of our SSLClientSocket::IsConnected implementation, which treats the SSL close_notify alert sent by the server as data received and considers the connection to be still alive. R=hawk BUG=11875 TEST=Visit an HTTPS site with a certificate error such as https://etrade.com/ or https://alioth.debian.org/. When the SSL interstitial page is displayed, wait a few minutes until the server closes the connection. (On Windows, use Sysinternals' TCPView tool to verify the connection is in CLOSE_WAIT state or gone.) Then click the "Proceed anyway" button. We should not get the net::ERR_EMPTY_RESPONSE or net::ERR_CONNECTION_ABORTED error. Review URL: http://codereview.chromium.org/403029 TBR=wtc@chromium.org Review URL: http://codereview.chromium.org/422004 git-svn-id: svn://svn.chromium.org/chrome/branches/249/src@32667 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/http/http_network_transaction.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index 2dd0c70..e317990 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -164,7 +164,7 @@ int HttpNetworkTransaction::Start(const HttpRequestInfo* request_info,
int HttpNetworkTransaction::RestartIgnoringLastError(
CompletionCallback* callback) {
- if (connection_.socket()->IsConnected()) {
+ if (connection_.socket()->IsConnectedAndIdle()) {
next_state_ = STATE_SEND_REQUEST;
} else {
connection_.socket()->Disconnect();