diff --git a/resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java b/resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java index 1f666076c7..26f99905e4 100644 --- a/resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java +++ b/resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java @@ -74,6 +74,7 @@ public class DnsAddressResolverGroup extends AddressResolverGroup newResolver(EventExecutor executor) throws Exception { if (!(executor instanceof EventLoop)) { @@ -86,23 +87,34 @@ public class DnsAddressResolverGroup extends AddressResolverGroup newResolver( EventLoop eventLoop, ChannelFactory channelFactory, InetSocketAddress localAddress, DnsServerAddresses nameServerAddresses) throws Exception { final NameResolver resolver = new InflightNameResolver( eventLoop, - new DnsNameResolverBuilder(eventLoop) - .channelFactory(channelFactory) - .localAddress(localAddress) - .nameServerAddresses(nameServerAddresses) - .build(), + newNameResolver(eventLoop, channelFactory, localAddress, nameServerAddresses), resolvesInProgress, resolveAllsInProgress); return new InetSocketAddressResolver(eventLoop, resolver); } + + /** + * Creates a new {@link NameResolver}. Override this method to create an alternative {@link NameResolver} + * implementation or override the default configuration. + */ + protected NameResolver newNameResolver(EventLoop eventLoop, + ChannelFactory channelFactory, + InetSocketAddress localAddress, + DnsServerAddresses nameServerAddresses) throws Exception { + return new DnsNameResolverBuilder(eventLoop) + .channelFactory(channelFactory) + .localAddress(localAddress) + .nameServerAddresses(nameServerAddresses) + .build(); + } }