diff --git a/common/src/main/java/io/netty/util/internal/Hidden.java b/common/src/main/java/io/netty/util/internal/Hidden.java index f0e878681c..043c561609 100644 --- a/common/src/main/java/io/netty/util/internal/Hidden.java +++ b/common/src/main/java/io/netty/util/internal/Hidden.java @@ -113,6 +113,18 @@ class Hidden { "io.netty.resolver.dns.UnixResolverDnsServerAddressStreamProvider", "parse"); + builder.allowBlockingCallsInside( + "io.netty.resolver.dns.UnixResolverDnsServerAddressStreamProvider", + "parseEtcResolverSearchDomains"); + + builder.allowBlockingCallsInside( + "io.netty.resolver.dns.UnixResolverDnsServerAddressStreamProvider", + "parseEtcResolverOptions"); + + builder.allowBlockingCallsInside( + "io.netty.resolver.HostsFileParser", + "parse"); + builder.nonBlockingThreadPredicate(p -> thread -> p.test(thread) || thread instanceof FastThreadLocalThread); } diff --git a/resolver-dns/src/main/java/io/netty/resolver/dns/UnixResolverDnsServerAddressStreamProvider.java b/resolver-dns/src/main/java/io/netty/resolver/dns/UnixResolverDnsServerAddressStreamProvider.java index 02c4440ece..cc0ba6ad63 100644 --- a/resolver-dns/src/main/java/io/netty/resolver/dns/UnixResolverDnsServerAddressStreamProvider.java +++ b/resolver-dns/src/main/java/io/netty/resolver/dns/UnixResolverDnsServerAddressStreamProvider.java @@ -87,7 +87,7 @@ public final class UnixResolverDnsServerAddressStreamProvider implements DnsServ * the default DNS server to use, and also overrides for individual domains. Also parse list of files of the format * - * /etc/resolver which may contain multiple files to override the name servers used for multimple domains. + * /etc/resolver which may contain multiple files to override the name servers used for multiple domains. * @param etcResolvConf /etc/resolv.conf. * @param etcResolverFiles List of files of the format defined in * - * /etc/resolver which may contain multiple files to override the name servers used for multimple domains. + * /etc/resolver which may contain multiple files to override the name servers used for multiple domains. * @param etcResolvConf /etc/resolv.conf. * @param etcResolverDir Directory containing files of the format defined in * result = new ArrayList<>(); + List result = new ArrayList<>(); List error = new ArrayList<>(); executor.execute(() -> { try { - result.add(DnsServerAddressStreamProviders.unixDefault()); + result.add(callable.call()); } catch (Throwable t) { error.add(t); }