diff options
author | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-28 04:11:50 +0000 |
---|---|---|
committer | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-28 04:11:50 +0000 |
commit | 6c1e21845d52076a03f1ed9ed6799190e1833dd3 (patch) | |
tree | f83a390db1b0497f6df51257e00e705852073e12 /chrome/browser/io_thread.cc | |
parent | a6833b8c7436364df8ff118399a7b38dc7fcebc2 (diff) | |
download | chromium_src-6c1e21845d52076a03f1ed9ed6799190e1833dd3.zip chromium_src-6c1e21845d52076a03f1ed9ed6799190e1833dd3.tar.gz chromium_src-6c1e21845d52076a03f1ed9ed6799190e1833dd3.tar.bz2 |
Initial support for built-in DNS resolver/cache.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/3693001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64202 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 61d8848..7780753 100644 --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc @@ -21,6 +21,7 @@ #include "chrome/browser/net/passive_log_collector.h" #include "chrome/browser/net/predictor_api.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/raw_host_resolver_proc.h" #include "chrome/common/net/url_fetcher.h" #include "net/base/dnsrr_resolver.h" #include "net/base/host_cache.h" @@ -87,8 +88,24 @@ net::HostResolver* CreateGlobalHostResolver(net::NetLog* net_log) { parallelism = 20; } + // Use the specified DNS server for doing raw resolutions if requested + // from the command-line. + scoped_refptr<net::HostResolverProc> resolver_proc; + 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)) { + resolver_proc = + new chrome_common_net::RawHostResolverProc(dns_ip_number, NULL); + } else { + LOG(ERROR) << "Invalid IP address specified for --dns-server: " + << dns_ip_string; + } + } + net::HostResolver* global_host_resolver = - net::CreateSystemHostResolver(parallelism, net_log); + net::CreateSystemHostResolver(parallelism, resolver_proc.get(), net_log); // Determine if we should disable IPv6 support. if (!command_line.HasSwitch(switches::kEnableIPv6)) { |