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..68f79f3b307b437f2d94e4c0c1b7ae614118e930 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)); |
| } |
| } |
| @@ -169,14 +171,18 @@ int MockHostResolverBase::ResolveProc(size_t id, |
| info.host_resolver_flags(), |
| &addr, |
| NULL); |
| + if (rv != OK) |
| + return rv; |
|
cbentzel
2012/01/20 11:04:53
Not sure you want to early exit here - doesn't mat
szym
2012/01/20 16:31:46
Right, I didn't catch that Set(..., TTL = 0) is no
|
| + |
| if (cache_.get()) { |
| HostCache::Key key(info.hostname(), |
| info.address_family(), |
| info.host_resolver_flags()); |
| - cache_->Set(key, rv, addr, base::TimeTicks::Now()); |
| + cache_->Set(key, rv, addr, |
| + base::TimeTicks::Now(), |
| + kCacheEntryTTL); |
| } |
| - if (rv == OK) |
| - *addresses = CreateAddressListUsingPort(addr, info.port()); |
| + *addresses = CreateAddressListUsingPort(addr, info.port()); |
| return rv; |
| } |