summaryrefslogtreecommitdiffstats
path: root/net/dns/dns_transaction.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/dns/dns_transaction.cc')
-rw-r--r--net/dns/dns_transaction.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
index 545cce2..ad8e491 100644
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -502,6 +502,7 @@ class DnsTransactionImpl : public DnsTransaction,
qtype_(qtype),
callback_(callback),
net_log_(net_log),
+ qnames_initial_size_(0),
had_tcp_attempt_(false),
first_server_index_(0) {
DCHECK(session_);
@@ -534,6 +535,9 @@ class DnsTransactionImpl : public DnsTransaction,
base::Bind(&NetLogStartCallback, &hostname_, qtype_));
int rv = PrepareSearch();
if (rv == OK) {
+ qnames_initial_size_ = qnames_.size();
+ if (qtype_ == dns_protocol::kTypeA)
+ UMA_HISTOGRAM_COUNTS("AsyncDns.SuffixSearchStart", qnames_.size());
AttemptResult result = ProcessAttemptResult(StartQuery());
if (result.rv == OK) {
// DnsTransaction must never succeed synchronously.
@@ -619,6 +623,12 @@ class DnsTransactionImpl : public DnsTransaction,
timer_.Stop();
+ if (response && qtype_ == dns_protocol::kTypeA) {
+ UMA_HISTOGRAM_COUNTS("AsyncDns.SuffixSearchRemain", qnames_.size());
+ UMA_HISTOGRAM_COUNTS("AsyncDns.SuffixSearchDone",
+ qnames_initial_size_ - qnames_.size());
+ }
+
DnsTransactionFactory::CallbackType callback = callback_;
callback_.Reset();
@@ -824,6 +834,7 @@ class DnsTransactionImpl : public DnsTransaction,
// Search list of fully-qualified DNS names to query next (in DNS format).
std::deque<std::string> qnames_;
+ size_t qnames_initial_size_;
// List of attempts for the current name.
ScopedVector<DnsAttempt> attempts_;