diff options
author | wtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-20 21:10:12 +0000 |
---|---|---|
committer | wtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-20 21:10:12 +0000 |
commit | e5a5c90e0982fdee7fe2c5f22d132910c981d140 (patch) | |
tree | 5542d31e16273d53174fe65a9e642d5b55bbf644 /net | |
parent | 0142283f0d40e6676beeb25fb2f249539bda7094 (diff) | |
download | chromium_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.cc | 2 |
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(); |