Chromium Code Reviews| Index: net/base/mock_host_resolver.cc |
| diff --git a/net/base/mock_host_resolver.cc b/net/base/mock_host_resolver.cc |
| index 612c6007a48d1f076ee3058552c04ebb498e841d..5b4d852fade5052938bdaa979ffe4f41694a2345 100644 |
| --- a/net/base/mock_host_resolver.cc |
| +++ b/net/base/mock_host_resolver.cc |
| @@ -22,6 +22,11 @@ namespace net { |
| namespace { |
| +// Cache size for the MockCachingHostResolver. |
| +const unsigned kMaxCacheEntries = 100; |
| +// TTL for the successful resolutions. Failures are not cached. |
| +const base::TimeDelta kCacheEntryTTL = base::TimeDelta::FromMinutes(1); |
|
mmenke
2012/01/20 22:42:35
Going to have to do it here, too.
|
| + |
| char* do_strdup(const char* src) { |
| #if defined(OS_WIN) |
| return _strdup(src); |
| @@ -130,10 +135,7 @@ MockHostResolverBase::MockHostResolverBase(bool use_caching) |
| proc_ = rules_; |
| if (use_caching) { |
| - cache_.reset(new HostCache( |
| - 100, // max entries. |
| - base::TimeDelta::FromMinutes(1), |
| - base::TimeDelta::FromSeconds(0))); |
| + cache_.reset(new HostCache(kMaxCacheEntries)); |
| } |
| } |
| @@ -173,7 +175,10 @@ int MockHostResolverBase::ResolveProc(size_t id, |
| HostCache::Key key(info.hostname(), |
| info.address_family(), |
| info.host_resolver_flags()); |
| - cache_->Set(key, rv, addr, base::TimeTicks::Now()); |
| + // Storing a failure with TTL 0 so that it overwrites previous value. |
| + cache_->Set(key, rv, addr, |
| + base::TimeTicks::Now(), |
| + (rv == OK) ? kCacheEntryTTL : base::TimeDelta()); |
| } |
| if (rv == OK) |
| *addresses = CreateAddressListUsingPort(addr, info.port()); |