summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authormef@chromium.org <mef@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-20 13:14:18 +0000
committermef@chromium.org <mef@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-20 13:14:18 +0000
commit1b1d1dfbf22508012ef48ddc406a3e16a848832e (patch)
treeceb29671c1cf5a8d78bf58b072dbf62537756f97 /net
parentd4a26dbaae765ca898ded3b2f6f2320e1e42491b (diff)
downloadchromium_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.cc14
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.