diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-29 00:56:24 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-29 00:56:24 +0000 |
commit | 17e92030ad8eef809db6563d91a1328f96fbd24d (patch) | |
tree | 6a710fc10ea4bf34a3f075a48558972a41579c5a /net/base/host_resolver_impl.cc | |
parent | b5bebc4add4d00422d0484701ffd230c6ff64df5 (diff) | |
download | chromium_src-17e92030ad8eef809db6563d91a1328f96fbd24d.zip chromium_src-17e92030ad8eef809db6563d91a1328f96fbd24d.tar.gz chromium_src-17e92030ad8eef809db6563d91a1328f96fbd24d.tar.bz2 |
Add DNS configuration information to about:net-internals#dns,
including log dumps, when Chrome's DNS resolver is enabled.
BUG=117258
Review URL: http://codereview.chromium.org/9854026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129545 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/host_resolver_impl.cc')
-rw-r--r-- | net/base/host_resolver_impl.cc | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc index 5c202ed..4e1c5ac 100644 --- a/net/base/host_resolver_impl.cc +++ b/net/base/host_resolver_impl.cc @@ -316,31 +316,13 @@ class DnsConfigParameters : public NetLog::EventParameters { } virtual Value* ToValue() const OVERRIDE { - DictionaryValue* dict = new DictionaryValue(); - - ListValue* list = new ListValue(); - for (size_t i = 0; i < config_.nameservers.size(); ++i) { - list->Append(Value::CreateStringValue( - config_.nameservers[i].ToString())); - } - dict->Set("nameservers", list); - - list = new ListValue(); - for (size_t i = 0; i < config_.search.size(); ++i) { - list->Append(Value::CreateStringValue(config_.search[i])); - } - dict->Set("search", list); - - dict->SetBoolean("append_to_multi_label_name", - config_.append_to_multi_label_name); - dict->SetInteger("ndots", config_.ndots); - dict->SetDouble("timeout", config_.timeout.InSecondsF()); - dict->SetInteger("attempts", config_.attempts); - dict->SetBoolean("rotate", config_.rotate); - dict->SetBoolean("edns0", config_.edns0); - dict->SetInteger("num_hosts", num_hosts_); - - return dict; + Value* value = config_.ToValue(); + if (!value) + return NULL; + DictionaryValue* dict; + if (value->GetAsDictionary(&dict)) + dict->SetInteger("num_hosts", num_hosts_); + return value; } private: @@ -1718,6 +1700,20 @@ HostCache* HostResolverImpl::GetHostCache() { return cache_.get(); } +base::Value* HostResolverImpl::GetDnsConfigAsValue() const { + // Check if async DNS is disabled. + if (!dns_client_.get()) + return NULL; + + // Check if async DNS is enabled, but we currently have no configuration + // for it. + const DnsConfig* dns_config = dns_client_->GetConfig(); + if (dns_config == NULL) + return new DictionaryValue(); + + return dns_config->ToValue(); +} + bool HostResolverImpl::ResolveAsIP(const Key& key, const RequestInfo& info, int* net_error, |