Index: net/base/host_resolver_impl.h |
=================================================================== |
--- net/base/host_resolver_impl.h (revision 85651) |
+++ net/base/host_resolver_impl.h (working copy) |
@@ -85,19 +85,22 @@ |
// |max_jobs| specifies the maximum number of threads that the host resolver |
// will use (not counting potential duplicate attempts). Use |
// SetPoolConstraints() to specify finer-grain settings. |
+ // |max_retry_attempts| is the maximum number of times we will retry for host |
+ // resolution. Pass HostResolver::kDefaultRetryAttempts to choose a default |
+ // value. |
// |
// For each attempt, we could start another attempt if host is not resolved |
// within unresponsive_delay_ time. We keep attempting to resolve the host |
- // until retry interval reaches maximum_unresponsive_delay_ time. For every |
- // retry attempt, we grow the unresponsive_delay_ by the retry_factor_ amount |
- // (that is retry interval is multiplied by the retry factor each time). Once |
- // retry interval exceeds maximum_unresponsive_delay_ time, we give up on |
- // additional attempts. |
+ // for max_retry_attempts. For every retry attempt, we grow the |
+ // unresponsive_delay_ by the retry_factor_ amount (that is retry interval is |
+ // multiplied by the retry factor each time). Once we have retried |
+ // max_retry_attempts, we give up on additional attempts. |
// |
// |net_log| must remain valid for the life of the HostResolverImpl. |
HostResolverImpl(HostResolverProc* resolver_proc, |
HostCache* cache, |
size_t max_jobs, |
+ size_t max_retry_attempts, |
NetLog* net_log); |
// If any completion callbacks are pending when the resolver is destroyed, |
@@ -250,13 +253,21 @@ |
// NetworkChangeNotifier::IPAddressObserver methods: |
virtual void OnIPAddressChanged(); |
+ // Helper methods to get and set max_retry_attempts_. |
+ size_t max_retry_attempts() const { |
+ return max_retry_attempts_; |
+ } |
+ void set_max_retry_attempts(const size_t max_retry_attempts) { |
+ max_retry_attempts_ = max_retry_attempts; |
+ } |
+ |
// Helper methods for unit tests to get and set unresponsive_delay_. |
base::TimeDelta unresponsive_delay() const { return unresponsive_delay_; } |
void set_unresponsive_delay(const base::TimeDelta& unresponsive_delay) { |
unresponsive_delay_ = unresponsive_delay; |
} |
- // Helper methods to get and set retry_factor. |
+ // Helper methods to get and set retry_factor_. |
uint32 retry_factor() const { |
return retry_factor_; |
} |
@@ -264,15 +275,6 @@ |
retry_factor_ = retry_factor; |
} |
- // Helper methods for unit tests to get and set maximum_unresponsive_delay_. |
- base::TimeDelta maximum_unresponsive_delay() const { |
- return maximum_unresponsive_delay_; |
- } |
- void set_maximum_unresponsive_delay( |
- const base::TimeDelta& maximum_unresponsive_delay) { |
- maximum_unresponsive_delay_ = maximum_unresponsive_delay; |
- } |
- |
// Cache of host resolution results. |
scoped_ptr<HostCache> cache_; |
@@ -283,6 +285,9 @@ |
// create multiple concurrent resolve attempts for the hostname. |
size_t max_jobs_; |
+ // Maximum number retry attempts to resolve the hostname. |
+ size_t max_retry_attempts_; |
+ |
// This is the limit after which we make another attempt to resolve the host |
// if the worker thread has not responded yet. Allow unit tests to change the |
// value. |
@@ -292,11 +297,6 @@ |
// change the value. |
uint32 retry_factor_; |
- // This is the limit on how large we grow the retry interval. Once it exceeds |
- // this, we give up on additional attempts. Allow unit tests to change the |
- // value. |
- base::TimeDelta maximum_unresponsive_delay_; |
- |
// The information to track pending requests for a JobPool, as well as |
// how many outstanding jobs the pool already has, and its constraints. |
JobPool* job_pools_[POOL_COUNT]; |