summaryrefslogtreecommitdiffstats
path: root/net/base/host_resolver_impl.cc
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-29 00:56:24 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-29 00:56:24 +0000
commit17e92030ad8eef809db6563d91a1328f96fbd24d (patch)
tree6a710fc10ea4bf34a3f075a48558972a41579c5a /net/base/host_resolver_impl.cc
parentb5bebc4add4d00422d0484701ffd230c6ff64df5 (diff)
downloadchromium_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.cc46
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,