diff options
author | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 20:09:18 +0000 |
---|---|---|
committer | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 20:09:18 +0000 |
commit | c1ca700920ce80ec165c4dee6ce28e5140af98cc (patch) | |
tree | d3a9f896b0224025e55bb70701fc1313c6d7d9e0 /chrome/browser/io_thread.cc | |
parent | 2f01e1a9005b6b58e7389df852dfa90c9a45c249 (diff) | |
download | chromium_src-c1ca700920ce80ec165c4dee6ce28e5140af98cc.zip chromium_src-c1ca700920ce80ec165c4dee6ce28e5140af98cc.tar.gz chromium_src-c1ca700920ce80ec165c4dee6ce28e5140af98cc.tar.bz2 |
Implement AsyncHostResolver, an asynchronous HostResolver.
BUG=60149
TEST=net_unittests --gtest_filter="AsyncHostResolverTest*"
Review URL: http://codereview.chromium.org/7342046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93237 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/io_thread.cc')
-rw-r--r-- | chrome/browser/io_thread.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc index 11d8827..35070e19 100644 --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc @@ -34,6 +34,7 @@ #include "content/browser/gpu/gpu_process_host.h" #include "content/browser/in_process_webkit/indexed_db_key_utility_client.h" #include "content/common/url_fetcher.h" +#include "net/base/async_host_resolver.h" #include "net/base/cert_verifier.h" #include "net/base/cookie_monster.h" #include "net/base/dnsrr_resolver.h" @@ -160,8 +161,24 @@ net::HostResolver* CreateGlobalHostResolver(net::NetLog* net_log) { } } - net::HostResolver* global_host_resolver = + net::HostResolver* global_host_resolver = NULL; + if (command_line.HasSwitch(switches::kDnsServer)) { + std::string dns_ip_string = + command_line.GetSwitchValueASCII(switches::kDnsServer); + net::IPAddressNumber dns_ip_number; + if (net::ParseIPLiteralToNumber(dns_ip_string, &dns_ip_number)) { + global_host_resolver = + net::CreateAsyncHostResolver(parallelism, dns_ip_number, net_log); + } else { + LOG(ERROR) << "Invalid IP address specified for --dns-server: " + << dns_ip_string; + } + } + + if (!global_host_resolver) { + global_host_resolver = net::CreateSystemHostResolver(parallelism, retry_attempts, net_log); + } // Determine if we should disable IPv6 support. if (!command_line.HasSwitch(switches::kEnableIPv6)) { |