Class DnsNameResolverBuilder
DnsNameResolver builder.-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new builder.DnsNameResolverBuilder(EventLoop eventLoop) Creates a new builder. -
Method Summary
Modifier and TypeMethodDescriptionauthoritativeDnsServerCache(AuthoritativeDnsServerCache authoritativeDnsServerCache) Sets the cache for authoritative NS serversauthoritativeDnsServerCache(DnsCache authoritativeDnsServerCache) Deprecated.build()Returns a newDnsNameResolverinstance.protected ChannelFactory<? extends DatagramChannel> Deprecated.channelFactory(ChannelFactory<? extends DatagramChannel> datagramChannelFactory) Deprecated.channelType(Class<? extends DatagramChannel> channelType) Deprecated.cnameCache(DnsCnameCache cnameCache) Sets the cache forCNAMEmappings.completeOncePreferredResolved(boolean completeOncePreferredResolved) IftrueSimpleNameResolver.resolveAll(String)will notify the returnedFutureas soon as all queries for the preferred address-type are complete.static ResolvedAddressTypescomputeResolvedAddressTypes(InternetProtocolFamily... internetProtocolFamilies) Deprecated.consolidateCacheSize(int maxNumConsolidation) Set the maximum size of the cache that is used to consolidate lookups for different hostnames when in-flight.copy()Creates a copy of thisDnsNameResolverBuilderdatagramChannelFactory(ChannelFactory<? extends DatagramChannel> datagramChannelFactory) Sets theChannelFactorythat will create aDatagramChannel.datagramChannelStrategy(DnsNameResolverChannelStrategy datagramChannelStrategy) Set the strategy that is used to determine how aDatagramChannelis used by the resolver for sending queries over UDP protocol.datagramChannelType(Class<? extends DatagramChannel> channelType) Sets theChannelFactoryas aReflectiveChannelFactoryof this type.decodeIdn(boolean decodeIdn) Set if domain / host names should be decoded to unicode when received.dnsQueryLifecycleObserverFactory(DnsQueryLifecycleObserverFactory lifecycleObserverFactory) Set the factory used to generate objects which can observe individual DNS queries.Sets theEventLoopwhich will perform the communication with the DNS servers.hostsFileEntriesResolver(HostsFileEntriesResolver hostsFileEntriesResolver) localAddress(SocketAddress localAddress) Configure the address that will be used to bind too.maxPayloadSize(int maxPayloadSize) Sets the capacity of the datagram packet buffer (in bytes).maxQueriesPerResolve(int maxQueriesPerResolve) Sets the maximum allowed number of DNS queries to send when resolving a host name.protected DnsServerAddressStreamProvidernameServerProvider(DnsServerAddressStreamProvider dnsServerAddressStreamProvider) Set theDnsServerAddressStreamProviderwhich is used to determine which DNS server is used to resolve each hostname.ndots(int ndots) Set the number of dots which must appear in a name before an initial absolute query is made.negativeTtl(int negativeTtl) Sets the TTL of the cache for the failed DNS queries (in seconds).optResourceEnabled(boolean optResourceEnabled) Enable the automatic inclusion of a optional records that tries to give the remote DNS server a hint about how much data the resolver can read per response.protected DnsServerAddressStreamqueryServerAddressStream(DnsServerAddressStream queryServerAddressStream) Set theDnsServerAddressStreamwhich provides the server address for DNS queries.queryTimeoutMillis(long queryTimeoutMillis) Sets the timeout of each DNS query performed by this resolver (in milliseconds).recursionDesired(boolean recursionDesired) Sets if this resolver has to send a DNS query with the RD (recursion desired) flag set.resolveCache(DnsCache resolveCache) Sets the cache for resolution results.resolvedAddressTypes(ResolvedAddressTypes resolvedAddressTypes) Sets the list of the protocol families of the address resolved.searchDomains(Iterable<String> searchDomains) Set the list of search domains of the resolver.socketChannelFactory(ChannelFactory<? extends SocketChannel> channelFactory) socketChannelFactory(ChannelFactory<? extends SocketChannel> channelFactory, boolean retryOnTimeout) socketChannelType(Class<? extends SocketChannel> channelType) socketChannelType(Class<? extends SocketChannel> channelType, boolean retryOnTimeout) static ResolvedAddressTypestoResolvedAddressTypes(SocketProtocolFamily... socketProtocolFamilies) Compute aResolvedAddressTypesfrom someSocketProtocolFamilys.traceEnabled(boolean traceEnabled) Deprecated.Prefer to configure aLoggingDnsQueryLifeCycleObserverFactoryinstead.ttl(int minTtl, int maxTtl) Sets the minimum and maximum TTL of the cached DNS resource records (in seconds).
-
Constructor Details
-
DnsNameResolverBuilder
public DnsNameResolverBuilder()Creates a new builder. -
DnsNameResolverBuilder
-
-
Method Details
-
eventLoop
-
channelFactory
Deprecated. -
channelFactory
@Deprecated public DnsNameResolverBuilder channelFactory(ChannelFactory<? extends DatagramChannel> datagramChannelFactory) Deprecated.Sets theChannelFactorythat will create aDatagramChannel.If TCP fallback should be supported as well it is required to call the
socketChannelFactory(ChannelFactory)orsocketChannelType(Class)method.- Parameters:
datagramChannelFactory- theChannelFactory- Returns:
this
-
datagramChannelFactory
public DnsNameResolverBuilder datagramChannelFactory(ChannelFactory<? extends DatagramChannel> datagramChannelFactory) Sets theChannelFactorythat will create aDatagramChannel.If TCP fallback should be supported as well it is required to call the
socketChannelFactory(ChannelFactory)orsocketChannelType(Class)method.- Parameters:
datagramChannelFactory- theChannelFactory- Returns:
this
-
channelType
Deprecated.Sets theChannelFactoryas aReflectiveChannelFactoryof this type. Use as an alternative tochannelFactory(ChannelFactory).If TCP fallback should be supported as well it is required to call the
socketChannelFactory(ChannelFactory)orsocketChannelType(Class)method.- Parameters:
channelType- the type- Returns:
this
-
datagramChannelType
Sets theChannelFactoryas aReflectiveChannelFactoryof this type. Use as an alternative todatagramChannelFactory(ChannelFactory).If TCP fallback should be supported as well it is required to call the
socketChannelFactory(ChannelFactory)orsocketChannelType(Class)method.- Parameters:
channelType- the type- Returns:
this
-
socketChannelFactory
public DnsNameResolverBuilder socketChannelFactory(ChannelFactory<? extends SocketChannel> channelFactory) Sets theChannelFactorythat will create aSocketChannelfor TCP fallback if needed.TCP fallback is not enabled by default and must be enabled by providing a non-null
ChannelFactoryfor this method.- Parameters:
channelFactory- theChannelFactoryornullif TCP fallback should not be supported. By default, TCP fallback is not enabled.- Returns:
this
-
socketChannelType
Sets theChannelFactoryas aReflectiveChannelFactoryof this type for TCP fallback if needed. Use as an alternative tosocketChannelFactory(ChannelFactory).TCP fallback is not enabled by default and must be enabled by providing a non-null
channelTypefor this method.- Parameters:
channelType- the type ornullif TCP fallback should not be supported. By default, TCP fallback is not enabled.- Returns:
this
-
socketChannelFactory
public DnsNameResolverBuilder socketChannelFactory(ChannelFactory<? extends SocketChannel> channelFactory, boolean retryOnTimeout) Sets theChannelFactorythat will create aSocketChannelfor TCP fallback if needed.TCP fallback is not enabled by default and must be enabled by providing a non-null
ChannelFactoryfor this method.- Parameters:
channelFactory- theChannelFactoryornullif TCP fallback should not be supported. By default, TCP fallback is not enabled.retryOnTimeout- iftruetheDnsNameResolverwill also fallback to TCP if a timeout was detected, iffalseit will only try to use TCP if the response was marked as truncated.- Returns:
this
-
socketChannelType
public DnsNameResolverBuilder socketChannelType(Class<? extends SocketChannel> channelType, boolean retryOnTimeout) Sets theChannelFactoryas aReflectiveChannelFactoryof this type for TCP fallback if needed. Use as an alternative tosocketChannelFactory(ChannelFactory).TCP fallback is not enabled by default and must be enabled by providing a non-null
channelTypefor this method.- Parameters:
channelType- the type ornullif TCP fallback should not be supported. By default, TCP fallback is not enabled.retryOnTimeout- iftruetheDnsNameResolverwill also fallback to TCP if a timeout was detected, iffalseit will only try to use TCP if the response was marked as truncated.- Returns:
this
-
resolveCache
Sets the cache for resolution results.- Parameters:
resolveCache- the DNS resolution results cache- Returns:
this
-
cnameCache
Sets the cache forCNAMEmappings.- Parameters:
cnameCache- the cache used to cacheCNAMEmappings for a domain.- Returns:
this
-
dnsQueryLifecycleObserverFactory
public DnsNameResolverBuilder dnsQueryLifecycleObserverFactory(DnsQueryLifecycleObserverFactory lifecycleObserverFactory) Set the factory used to generate objects which can observe individual DNS queries.- Parameters:
lifecycleObserverFactory- the factory used to generate objects which can observe individual DNS queries.- Returns:
this
-
authoritativeDnsServerCache
@Deprecated public DnsNameResolverBuilder authoritativeDnsServerCache(DnsCache authoritativeDnsServerCache) Deprecated.Sets the cache for authoritative NS servers- Parameters:
authoritativeDnsServerCache- the authoritative NS servers cache- Returns:
this
-
authoritativeDnsServerCache
public DnsNameResolverBuilder authoritativeDnsServerCache(AuthoritativeDnsServerCache authoritativeDnsServerCache) Sets the cache for authoritative NS servers- Parameters:
authoritativeDnsServerCache- the authoritative NS servers cache- Returns:
this
-
localAddress
Configure the address that will be used to bind too. Ifnullthe default will be used.- Parameters:
localAddress- the bind address- Returns:
this
-
ttl
Sets the minimum and maximum TTL of the cached DNS resource records (in seconds). If the TTL of the DNS resource record returned by the DNS server is less than the minimum TTL or greater than the maximum TTL, this resolver will ignore the TTL from the DNS server and use the minimum TTL or the maximum TTL instead respectively. The default value is0andInteger.MAX_VALUE, which practically tells this resolver to respect the TTL from the DNS server.- Parameters:
minTtl- the minimum TTLmaxTtl- the maximum TTL- Returns:
this
-
negativeTtl
Sets the TTL of the cache for the failed DNS queries (in seconds).- Parameters:
negativeTtl- the TTL for failed cached queries- Returns:
this
-
queryTimeoutMillis
Sets the timeout of each DNS query performed by this resolver (in milliseconds).0disables the timeout. If not set or a negative number is set, the default timeout is used.- Parameters:
queryTimeoutMillis- the query timeout- Returns:
this
-
computeResolvedAddressTypes
@Deprecated public static ResolvedAddressTypes computeResolvedAddressTypes(InternetProtocolFamily... internetProtocolFamilies) Deprecated.Compute aResolvedAddressTypesfrom someInternetProtocolFamilys. An empty input will return the default value, based on "java.net" System properties. Valid inputs are (), (IPv4), (IPv6), (Ipv4, IPv6) and (IPv6, IPv4).- Parameters:
internetProtocolFamilies- a valid sequence ofInternetProtocolFamilys- Returns:
- a
ResolvedAddressTypes
-
toResolvedAddressTypes
public static ResolvedAddressTypes toResolvedAddressTypes(SocketProtocolFamily... socketProtocolFamilies) Compute aResolvedAddressTypesfrom someSocketProtocolFamilys. An empty input will return the default value, based on "java.net" System properties. Valid inputs are (), (IPv4), (IPv6), (Ipv4, IPv6) and (IPv6, IPv4).- Parameters:
socketProtocolFamilies- a valid sequence ofSocketProtocolFamilys- Returns:
- a
ResolvedAddressTypes
-
resolvedAddressTypes
Sets the list of the protocol families of the address resolved. You can usecomputeResolvedAddressTypes(InternetProtocolFamily...)to get aResolvedAddressTypesout of someInternetProtocolFamilys.- Parameters:
resolvedAddressTypes- the address types- Returns:
this
-
completeOncePreferredResolved
IftrueSimpleNameResolver.resolveAll(String)will notify the returnedFutureas soon as all queries for the preferred address-type are complete.- Parameters:
completeOncePreferredResolved-trueto enable,falseto disable.- Returns:
this
-
recursionDesired
Sets if this resolver has to send a DNS query with the RD (recursion desired) flag set.- Parameters:
recursionDesired- true if recursion is desired- Returns:
this
-
maxQueriesPerResolve
Sets the maximum allowed number of DNS queries to send when resolving a host name.- Parameters:
maxQueriesPerResolve- the max number of queries- Returns:
this
-
traceEnabled
Deprecated.Prefer to configure aLoggingDnsQueryLifeCycleObserverFactoryinstead.Sets if this resolver should generate the detailed trace information in an exception message so that it is easier to understand the cause of resolution failure.- Parameters:
traceEnabled- true if trace is enabled- Returns:
this
-
maxPayloadSize
Sets the capacity of the datagram packet buffer (in bytes). The default value is4096bytes.- Parameters:
maxPayloadSize- the capacity of the datagram packet buffer- Returns:
this
-
optResourceEnabled
Enable the automatic inclusion of a optional records that tries to give the remote DNS server a hint about how much data the resolver can read per response. Some DNSServer may not support this and so fail to answer queries. If you find problems you may want to disable this.- Parameters:
optResourceEnabled- if optional records inclusion is enabled- Returns:
this
-
hostsFileEntriesResolver
public DnsNameResolverBuilder hostsFileEntriesResolver(HostsFileEntriesResolver hostsFileEntriesResolver) - Parameters:
hostsFileEntriesResolver- theHostsFileEntriesResolverused to first check if the hostname is locally aliased.- Returns:
this
-
nameServerProvider
-
nameServerProvider
public DnsNameResolverBuilder nameServerProvider(DnsServerAddressStreamProvider dnsServerAddressStreamProvider) Set theDnsServerAddressStreamProviderwhich is used to determine which DNS server is used to resolve each hostname.- Returns:
this.
-
queryServerAddressStream
-
queryServerAddressStream
public DnsNameResolverBuilder queryServerAddressStream(DnsServerAddressStream queryServerAddressStream) Set theDnsServerAddressStreamwhich provides the server address for DNS queries.- Returns:
this.
-
searchDomains
Set the list of search domains of the resolver.- Parameters:
searchDomains- the search domains- Returns:
this
-
ndots
Set the number of dots which must appear in a name before an initial absolute query is made. The default value is1.- Parameters:
ndots- the ndots value- Returns:
this
-
decodeIdn
Set if domain / host names should be decoded to unicode when received. See rfc3492.- Parameters:
decodeIdn- if should get decoded- Returns:
this
-
consolidateCacheSize
Set the maximum size of the cache that is used to consolidate lookups for different hostnames when in-flight. This means if multiple lookups are done for the same hostname and still in-flight only one actual query will be made and the result will be cascaded to the others.- Parameters:
maxNumConsolidation- the maximum lookups to consolidate (different hostnames), or0if no consolidation should be performed.- Returns:
this
-
datagramChannelStrategy
public DnsNameResolverBuilder datagramChannelStrategy(DnsNameResolverChannelStrategy datagramChannelStrategy) Set the strategy that is used to determine how aDatagramChannelis used by the resolver for sending queries over UDP protocol.- Parameters:
datagramChannelStrategy- theDnsNameResolverChannelStrategyto use when doing queries over UDP protocol.- Returns:
this
-
build
-
copy
Creates a copy of thisDnsNameResolverBuilder- Returns:
DnsNameResolverBuilder
-
authoritativeDnsServerCache(AuthoritativeDnsServerCache)