Added
- The new
upstream.CachingResolver
implementation of theupstream.Resolver
interface. It's used to account the TTL of resolved addresses and resolve those on demand. - The new
upstream.NewCachingResolver
function to wrap theupstream.UpstreamResolver
s.
Changed
Upstream
s are now bootstrapped on each call ofExchange
, meaning that caching the lookup results is now theOptions.Bootstrap
resolver's responsibility.