summaryrefslogtreecommitdiffstats
path: root/net/base/tcp_client_socket_pool.cc
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-12 00:49:38 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-12 00:49:38 +0000
commit8a00f00ab5d68ffcc998fd04d2ca343af7cdf190 (patch)
treefd464ba49db4271c76c1cf8f769a22120ad631af /net/base/tcp_client_socket_pool.cc
parent77ae132c1bfdd986228b6f1c0d8c63baa441afdf (diff)
downloadchromium_src-8a00f00ab5d68ffcc998fd04d2ca343af7cdf190.zip
chromium_src-8a00f00ab5d68ffcc998fd04d2ca343af7cdf190.tar.gz
chromium_src-8a00f00ab5d68ffcc998fd04d2ca343af7cdf190.tar.bz2
* Avoid doing concurrent DNS resolves of the same hostname in HostResolver.
* Add a 1 minute cache for host resolves. * Refactor HostResolver to handle multiple requests. * Make HostResolver a dependency of URLRequestContext. operate the HostResolver in async mode for proxy resolver (bridging to IO thread). TEST=unittests BUG=13163 Review URL: http://codereview.chromium.org/118100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18236 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/tcp_client_socket_pool.cc')
-rw-r--r--net/base/tcp_client_socket_pool.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/base/tcp_client_socket_pool.cc b/net/base/tcp_client_socket_pool.cc
index 75875f2..7f7f13f 100644
--- a/net/base/tcp_client_socket_pool.cc
+++ b/net/base/tcp_client_socket_pool.cc
@@ -46,6 +46,7 @@ TCPClientSocketPool::ConnectingSocket::ConnectingSocket(
callback_(this,
&TCPClientSocketPool::ConnectingSocket::OnIOComplete)),
pool_(pool),
+ resolver_(pool->GetHostResolver()),
canceled_(false) {
DCHECK(!ContainsKey(pool_->connecting_socket_map_, handle));
pool_->connecting_socket_map_[handle] = this;
@@ -158,10 +159,12 @@ void TCPClientSocketPool::ConnectingSocket::Cancel() {
TCPClientSocketPool::TCPClientSocketPool(
int max_sockets_per_group,
+ HostResolver* host_resolver,
ClientSocketFactory* client_socket_factory)
: client_socket_factory_(client_socket_factory),
idle_socket_count_(0),
- max_sockets_per_group_(max_sockets_per_group) {
+ max_sockets_per_group_(max_sockets_per_group),
+ host_resolver_(host_resolver) {
}
TCPClientSocketPool::~TCPClientSocketPool() {