diff options
author | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-21 12:54:37 +0000 |
---|---|---|
committer | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-21 12:54:37 +0000 |
commit | d987cca5eac5c840027698fa49a4712d84057e68 (patch) | |
tree | d92552852fdb7e6c387c9d2f46357beb753ee6d5 /chrome/browser/io_thread.cc | |
parent | 357b5202da8b573ef3239e722bc18d93fc90fbd9 (diff) | |
download | chromium_src-d987cca5eac5c840027698fa49a4712d84057e68.zip chromium_src-d987cca5eac5c840027698fa49a4712d84057e68.tar.gz chromium_src-d987cca5eac5c840027698fa49a4712d84057e68.tar.bz2 |
Implemented AsyncHostResolver -- asynchronous HostResolver!
BUG=60149
TEST=net_unittests --gtest_filter="AsyncHostResolverTest*"
Review URL: http://codereview.chromium.org/7472025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93380 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)) { |