diff options
author | mef@chromium.org <mef@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-20 13:14:18 +0000 |
---|---|---|
committer | mef@chromium.org <mef@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-20 13:14:18 +0000 |
commit | 1b1d1dfbf22508012ef48ddc406a3e16a848832e (patch) | |
tree | ceb29671c1cf5a8d78bf58b072dbf62537756f97 /net | |
parent | d4a26dbaae765ca898ded3b2f6f2320e1e42491b (diff) | |
download | chromium_src-1b1d1dfbf22508012ef48ddc406a3e16a848832e.zip chromium_src-1b1d1dfbf22508012ef48ddc406a3e16a848832e.tar.gz chromium_src-1b1d1dfbf22508012ef48ddc406a3e16a848832e.tar.bz2 |
Revert 212613 "Use Histogram algorithm to calculate DNS timeout."
> Use Histogram algorithm to calculate DNS timeout.
>
> BUG=110197
>
> Review URL: https://chromiumcodereview.appspot.com/19770014
TBR=szym@chromium.org
Review URL: https://codereview.chromium.org/19886002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212789 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/dns/dns_session.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/net/dns/dns_session.cc b/net/dns/dns_session.cc index 9f1aa12..67d5779 100644 --- a/net/dns/dns_session.cc +++ b/net/dns/dns_session.cc @@ -209,8 +209,18 @@ void DnsSession::RecordServerStats() { base::TimeDelta DnsSession::NextTimeout(unsigned server_index, int attempt) { - // Use Histogram to calculate next timeout. - return NextTimeoutFromHistogram(server_index, 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)); } // Allocate a socket, already connected to the server address. |