summaryrefslogtreecommitdiffstats
path: root/jingle
diff options
context:
space:
mode:
authorrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-12 19:55:27 +0000
committerrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-12 19:55:27 +0000
commit4f4de7e6e1393bf1b068337cdf8895e91addfa72 (patch)
tree872947e61b717b7ad582a2c5688e2bdb1e0b2b1f /jingle
parentf7002808992b52e582dd2fff531863de7b673b9e (diff)
downloadchromium_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.cc5
-rw-r--r--jingle/notifier/base/xmpp_client_socket_factory.cc5
-rw-r--r--jingle/notifier/base/xmpp_client_socket_factory.h7
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_;