summaryrefslogtreecommitdiffstats
path: root/net/http/http_network_transaction.cc
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-11-25 19:40:10 +0000
committerBen Murdoch <benm@google.com>2010-12-03 13:52:53 +0000
commit4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7 (patch)
tree938665d93a11fe7a6d0124e3c1e020d1f9d3f947 /net/http/http_network_transaction.cc
parent7c627d87728a355737862918d144f98f69406954 (diff)
downloadexternal_chromium-4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7.zip
external_chromium-4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7.tar.gz
external_chromium-4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7.tar.bz2
Merge Chromium at r66597: Initial merge by git.
Change-Id: I9639f8a997f90ec219573aa22a49f5dbde78cc7b
Diffstat (limited to 'net/http/http_network_transaction.cc')
-rw-r--r--net/http/http_network_transaction.cc24
1 files changed, 14 insertions, 10 deletions
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index bc2d322..3e1d8d1 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -172,8 +172,8 @@ int HttpNetworkTransaction::RestartWithCertificate(
ssl_config_.client_cert = client_cert;
if (client_cert) {
- session_->ssl_client_auth_cache()->Add(GetHostAndPort(request_->url),
- client_cert);
+ session_->ssl_client_auth_cache()->Add(
+ response_.cert_request_info->host_and_port, client_cert);
}
ssl_config_.send_client_cert = true;
// Reset the other member variables.
@@ -635,12 +635,6 @@ int HttpNetworkTransaction::DoSendRequest() {
if (session_->network_delegate())
session_->network_delegate()->OnSendHttpRequest(&request_headers_);
}
- if (net_log_.IsLoggingAllEvents()) {
- net_log_.AddEvent(
- NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST_HEADERS,
- make_scoped_refptr(new NetLogHttpRequestParameter(
- request_->url.spec(), request_->extra_headers)));
- }
headers_valid_ = false;
return stream_->SendRequest(request_headers_, request_body, &response_,
@@ -979,8 +973,8 @@ int HttpNetworkTransaction::HandleCertificateRequest(int error) {
// If the user selected one of the certificate in client_certs for this
// server before, use it automatically.
- X509Certificate* client_cert = session_->ssl_client_auth_cache()->
- Lookup(GetHostAndPort(request_->url));
+ X509Certificate* client_cert = session_->ssl_client_auth_cache()->Lookup(
+ response_.cert_request_info->host_and_port);
if (client_cert) {
const std::vector<scoped_refptr<X509Certificate> >& client_certs =
response_.cert_request_info->client_certs;
@@ -1020,6 +1014,16 @@ int HttpNetworkTransaction::HandleIOError(int error) {
error = OK;
}
break;
+ case ERR_SSL_SNAP_START_NPN_MISPREDICTION:
+ // This means that we tried to Snap Start a connection, but we
+ // mispredicted the NPN result. This isn't a problem from the point of
+ // view of the SSL layer because the server will ignore the application
+ // data in the Snap Start extension. However, at the HTTP layer, we have
+ // already decided that it's a HTTP or SPDY connection and it's easier to
+ // abort and start again.
+ ResetConnectionAndRequestForResend();
+ error = OK;
+ break;
}
return error;
}