| 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);
|
| +
|
| 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());
|
|
|