diff options
author | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-12 23:04:22 +0000 |
---|---|---|
committer | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-12 23:04:22 +0000 |
commit | 1ffdda87e3cb1f6183723831cf65d0469495d7cc (patch) | |
tree | c7f2e2de911ad3fae40821b77daa2be7dea7ebd3 /net/base | |
parent | af3fefb3e68563dfaf99631ffb8636709a26f1e8 (diff) | |
download | chromium_src-1ffdda87e3cb1f6183723831cf65d0469495d7cc.zip chromium_src-1ffdda87e3cb1f6183723831cf65d0469495d7cc.tar.gz chromium_src-1ffdda87e3cb1f6183723831cf65d0469495d7cc.tar.bz2 |
Add AsyncDNS.DnsClientDisabledReason to record the last error in the streak which disabled DnsClient.
BUG=114833
Review URL: https://codereview.chromium.org/11552023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172687 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base')
-rw-r--r-- | net/base/host_resolver_impl.cc | 11 | ||||
-rw-r--r-- | net/base/host_resolver_impl.h | 7 |
2 files changed, 10 insertions, 8 deletions
diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc index b56524c..64c9d2a 100644 --- a/net/base/host_resolver_impl.cc +++ b/net/base/host_resolver_impl.cc @@ -1411,7 +1411,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job { UMA_HISTOGRAM_CUSTOM_ENUMERATION("AsyncDNS.ResolveError", std::abs(dns_task_error_), GetAllErrorCodesForUma()); - resolver_->OnDnsTaskResolve(false); + resolver_->OnDnsTaskResolve(dns_task_error_); } else { DNS_HISTOGRAM("AsyncDNS.FallbackFail", duration); UmaAsyncDnsResolveStatus(RESOLVE_STATUS_FAIL); @@ -1474,7 +1474,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job { UmaAsyncDnsResolveStatus(RESOLVE_STATUS_DNS_SUCCESS); RecordTTL(ttl); - resolver_->OnDnsTaskResolve(true); + resolver_->OnDnsTaskResolve(OK); base::TimeDelta bounded_ttl = std::max(ttl, base::TimeDelta::FromSeconds(kMinimumTTLSeconds)); @@ -2137,9 +2137,9 @@ bool HostResolverImpl::HaveDnsConfig() const { return (dns_client_.get() != NULL) && (dns_client_->GetConfig() != NULL); } -void HostResolverImpl::OnDnsTaskResolve(bool success) { +void HostResolverImpl::OnDnsTaskResolve(int net_error) { DCHECK(dns_client_); - if (success) { + if (net_error == OK) { num_dns_failures_ = 0; return; } @@ -2151,6 +2151,9 @@ void HostResolverImpl::OnDnsTaskResolve(bool success) { it->second->AbortDnsTask(); dns_client_->SetConfig(DnsConfig()); UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", false); + UMA_HISTOGRAM_CUSTOM_ENUMERATION("AsyncDNS.DnsClientDisabledReason", + std::abs(net_error), + GetAllErrorCodesForUma()); } void HostResolverImpl::SetDnsClient(scoped_ptr<DnsClient> dns_client) { diff --git a/net/base/host_resolver_impl.h b/net/base/host_resolver_impl.h index 8d28ab3..61096641 100644 --- a/net/base/host_resolver_impl.h +++ b/net/base/host_resolver_impl.h @@ -224,10 +224,9 @@ class NET_EXPORT HostResolverImpl // True if have a DnsClient with a valid DnsConfig. bool HaveDnsConfig() const; - // Called when a host name is successfully resolved and DnsTask was run on it. - // |success| is false iff the DnsTask failed to resolve it, but getaddrinfo - // succeeded. - void OnDnsTaskResolve(bool success); + // Called when a host name is successfully resolved and DnsTask was run on it + // and resulted in |net_error|. + void OnDnsTaskResolve(int net_error); // Allows the tests to catch slots leaking out of the dispatcher. size_t num_running_jobs_for_tests() const { |