Class DefaultDnsCache

java.lang.Object
io.netty.resolver.dns.DefaultDnsCache
All Implemented Interfaces:
DnsCache

public class DefaultDnsCache extends Object implements DnsCache
Default implementation of DnsCache, backed by a ConcurrentMap. If any additional DnsRecord is used, no caching takes place.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a cache that respects the TTL returned by the DNS server and doesn't cache negative responses.
    DefaultDnsCache(int minTtl, int maxTtl, int negativeTtl)
    Create a cache.
  • Method Summary

    Modifier and Type
    Method
    Description
    cache(String hostname, io.netty.handler.codec.dns.DnsRecord[] additionals, Throwable cause, io.netty.channel.EventLoop loop)
    Cache the resolution failure for a given hostname.
    cache(String hostname, io.netty.handler.codec.dns.DnsRecord[] additionals, InetAddress address, long originalTtl, io.netty.channel.EventLoop loop)
    Create a new DnsCacheEntry and cache a resolved address for a given hostname.
    void
    Clears all the resolved addresses cached by this resolver.
    boolean
    clear(String hostname)
    Clears the resolved addresses of the specified host name from the cache of this resolver.
    List<? extends DnsCacheEntry>
    get(String hostname, io.netty.handler.codec.dns.DnsRecord[] additionals)
    Return the cached entries for the given hostname.
    int
    Returns the maximum TTL of the cached DNS resource records (in seconds).
    int
    Returns the minimum TTL of the cached DNS resource records (in seconds).
    int
    Returns the TTL of the cache for the failed DNS queries (in seconds).
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • DefaultDnsCache

      public DefaultDnsCache()
      Create a cache that respects the TTL returned by the DNS server and doesn't cache negative responses.
    • DefaultDnsCache

      public DefaultDnsCache(int minTtl, int maxTtl, int negativeTtl)
      Create a cache.
      Parameters:
      minTtl - the minimum TTL
      maxTtl - the maximum TTL
      negativeTtl - the TTL for failed queries
  • Method Details

    • minTtl

      public int minTtl()
      Returns the minimum TTL of the cached DNS resource records (in seconds).
      See Also:
    • maxTtl

      public int maxTtl()
      Returns the maximum TTL of the cached DNS resource records (in seconds).
      See Also:
    • negativeTtl

      public int negativeTtl()
      Returns the TTL of the cache for the failed DNS queries (in seconds). The default value is 0, which disables the cache for negative results.
    • clear

      public void clear()
      Description copied from interface: DnsCache
      Clears all the resolved addresses cached by this resolver.
      Specified by:
      clear in interface DnsCache
      See Also:
    • clear

      public boolean clear(String hostname)
      Description copied from interface: DnsCache
      Clears the resolved addresses of the specified host name from the cache of this resolver.
      Specified by:
      clear in interface DnsCache
      Returns:
      true if and only if there was an entry for the specified host name in the cache and it has been removed by this method
    • get

      public List<? extends DnsCacheEntry> get(String hostname, io.netty.handler.codec.dns.DnsRecord[] additionals)
      Description copied from interface: DnsCache
      Return the cached entries for the given hostname.
      Specified by:
      get in interface DnsCache
      Parameters:
      hostname - the hostname
      additionals - the additional records
      Returns:
      the cached entries
    • cache

      public DnsCacheEntry cache(String hostname, io.netty.handler.codec.dns.DnsRecord[] additionals, InetAddress address, long originalTtl, io.netty.channel.EventLoop loop)
      Description copied from interface: DnsCache
      Create a new DnsCacheEntry and cache a resolved address for a given hostname.
      Specified by:
      cache in interface DnsCache
      Parameters:
      hostname - the hostname
      additionals - the additional records
      address - the resolved address
      originalTtl - the TTL as returned by the DNS server
      loop - the EventLoop used to register the TTL timeout
      Returns:
      The DnsCacheEntry corresponding to this cache entry.
    • cache

      public DnsCacheEntry cache(String hostname, io.netty.handler.codec.dns.DnsRecord[] additionals, Throwable cause, io.netty.channel.EventLoop loop)
      Description copied from interface: DnsCache
      Cache the resolution failure for a given hostname. Be aware this won't be called with timeout / cancel / transport exceptions.
      Specified by:
      cache in interface DnsCache
      Parameters:
      hostname - the hostname
      additionals - the additional records
      cause - the resolution failure
      loop - the EventLoop used to register the TTL timeout
      Returns:
      The DnsCacheEntry corresponding to this cache entry, or null if this cache doesn't support caching failed responses.
    • toString

      public String toString()
      Overrides:
      toString in class Object