diff options
author | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 19:55:27 +0000 |
---|---|---|
committer | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 19:55:27 +0000 |
commit | 4f4de7e6e1393bf1b068337cdf8895e91addfa72 (patch) | |
tree | 872947e61b717b7ad582a2c5688e2bdb1e0b2b1f /jingle | |
parent | f7002808992b52e582dd2fff531863de7b673b9e (diff) | |
download | chromium_src-4f4de7e6e1393bf1b068337cdf8895e91addfa72.zip chromium_src-4f4de7e6e1393bf1b068337cdf8895e91addfa72.tar.gz chromium_src-4f4de7e6e1393bf1b068337cdf8895e91addfa72.tar.bz2 |
Correctly handle SSL Client Authentication requests when connecting
to an HTTPS/SPDY proxy. Modify SSLClientSocket classes to correctly set the host_and_port field of the cert_request_info. Modify HttpNetworkTransaction to use this field when populating the SSL client auth cache.
BUG=59292
TEST=HttpProxyClientSocketPoolTest.SslClientAuth
Review URL: http://codereview.chromium.org/4339001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65976 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'jingle')
-rw-r--r-- | jingle/notifier/base/chrome_async_socket.cc | 5 | ||||
-rw-r--r-- | jingle/notifier/base/xmpp_client_socket_factory.cc | 5 | ||||
-rw-r--r-- | jingle/notifier/base/xmpp_client_socket_factory.h | 7 |
3 files changed, 10 insertions, 7 deletions
diff --git a/jingle/notifier/base/chrome_async_socket.cc b/jingle/notifier/base/chrome_async_socket.cc index 4858bab..2e2b002 100644 --- a/jingle/notifier/base/chrome_async_socket.cc +++ b/jingle/notifier/base/chrome_async_socket.cc @@ -18,6 +18,7 @@ #include "base/compiler_specific.h" #include "base/logging.h" #include "net/base/address_list.h" +#include "net/base/host_port_pair.h" #include "net/base/io_buffer.h" #include "net/base/net_util.h" #include "net/base/ssl_config_service.h" @@ -435,8 +436,8 @@ bool ChromeAsyncSocket::StartTls(const std::string& domain_name) { DCHECK(transport_socket_.get()); transport_socket_.reset( client_socket_factory_->CreateSSLClientSocket( - transport_socket_.release(), domain_name, ssl_config_, - NULL /* ssl_host_info */)); + transport_socket_.release(), net::HostPortPair(domain_name, 443), + ssl_config_, NULL /* ssl_host_info */)); int status = transport_socket_->Connect(&ssl_connect_callback_); if (status != net::ERR_IO_PENDING) { MessageLoop* message_loop = MessageLoop::current(); diff --git a/jingle/notifier/base/xmpp_client_socket_factory.cc b/jingle/notifier/base/xmpp_client_socket_factory.cc index 810a8b5..c290325 100644 --- a/jingle/notifier/base/xmpp_client_socket_factory.cc +++ b/jingle/notifier/base/xmpp_client_socket_factory.cc @@ -32,12 +32,13 @@ net::ClientSocket* XmppClientSocketFactory::CreateTCPClientSocket( net::SSLClientSocket* XmppClientSocketFactory::CreateSSLClientSocket( net::ClientSocketHandle* transport_socket, - const std::string& hostname, + const net::HostPortPair& host_and_port, const net::SSLConfig& ssl_config, net::SSLHostInfo* ssl_host_info, net::DnsRRResolver* dnsrr_resolver) { return client_socket_factory_->CreateSSLClientSocket( - transport_socket, hostname, ssl_config, ssl_host_info, dnsrr_resolver); + transport_socket, host_and_port, ssl_config, ssl_host_info, + dnsrr_resolver); } } // namespace diff --git a/jingle/notifier/base/xmpp_client_socket_factory.h b/jingle/notifier/base/xmpp_client_socket_factory.h index 718bcda..e629be6 100644 --- a/jingle/notifier/base/xmpp_client_socket_factory.h +++ b/jingle/notifier/base/xmpp_client_socket_factory.h @@ -11,6 +11,7 @@ namespace net { class DnsRRResolver; +class HostPortPair; class SSLHostInfo; } @@ -30,9 +31,9 @@ class XmppClientSocketFactory : public net::ClientSocketFactory { const net::AddressList& addresses, net::NetLog* net_log, const net::NetLog::Source& source); virtual net::SSLClientSocket* CreateSSLClientSocket( - net::ClientSocketHandle* transport_socket, const std::string& hostname, - const net::SSLConfig& ssl_config, net::SSLHostInfo* ssl_host_info, - net::DnsRRResolver* dnsrr_resolver); + net::ClientSocketHandle* transport_socket, + const net::HostPortPair& host_and_port, const net::SSLConfig& ssl_config, + net::SSLHostInfo* ssl_host_info, net::DnsRRResolver* dnsrr_resolver); private: net::ClientSocketFactory* const client_socket_factory_; |