diff options
author | mef@chromium.org <mef@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-19 18:49:08 +0000 |
---|---|---|
committer | mef@chromium.org <mef@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-19 18:49:08 +0000 |
commit | de39b43a7a09ce08ea18f2e1f0bc45b76a13f055 (patch) | |
tree | 83794f3ba2b883c53108811cc9f632318290da23 /net/dns | |
parent | 2f3b4a9df7677346e024e7d5b1bff693c5aed6fb (diff) | |
download | chromium_src-de39b43a7a09ce08ea18f2e1f0bc45b76a13f055.zip chromium_src-de39b43a7a09ce08ea18f2e1f0bc45b76a13f055.tar.gz chromium_src-de39b43a7a09ce08ea18f2e1f0bc45b76a13f055.tar.bz2 |
Use Histogram algorithm to calculate DNS timeout.
BUG=110197
Review URL: https://chromiumcodereview.appspot.com/19770014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212613 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/dns')
-rw-r--r-- | net/dns/dns_session.cc | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/net/dns/dns_session.cc b/net/dns/dns_session.cc index 67d5779..9f1aa12 100644 --- a/net/dns/dns_session.cc +++ b/net/dns/dns_session.cc @@ -209,18 +209,8 @@ void DnsSession::RecordServerStats() { base::TimeDelta DnsSession::NextTimeout(unsigned server_index, int attempt) { - DCHECK_LT(server_index, server_stats_.size()); - - base::TimeDelta timeout = config_.timeout; - // If this server has not responded successfully, then don't wait too long. - if (server_stats_[server_index]->last_success.is_null()) - return timeout; - - // The timeout doubles every full round (each nameserver once). - unsigned num_backoffs = attempt / config_.nameservers.size(); - - return std::min(timeout * (1 << num_backoffs), - base::TimeDelta::FromMilliseconds(kMaxTimeoutMs)); + // Use Histogram to calculate next timeout. + return NextTimeoutFromHistogram(server_index, attempt); } // Allocate a socket, already connected to the server address. |