netty5/resolver-dns/src/main/java/io/netty/resolver/dns
Scott Mitchell 54c9ecf682 DnsNameResolver should respect /etc/resolv.conf and /etc/resolver
Motivation:
The JDK uses gethostbyname for blocking hostname resoltuion. gethostbyname can be configured on Unix systems according to [1][2]. This may impact the name server that is used to resolve particular domains or just override the default fall-back resolver. DnsNameResolver currently ignores these configuration files which means the default resolution behavior is different than the JDK. This may lead to unexpected resolution failures which succeed when using the JDK's resolver.

Modifications:
- Add an interface which can override what DnsServerAddressStream to use for a given hostname
- Provide a Unix specific implementation of this interface and implement [1][2]. Some elements may be ignored sortlist, timeout, etc...

Result:
DnsNameResolver behaves more like the JDK resolver by default.

[1] https://linux.die.net/man/5/resolver
[2] https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/resolver.5.html
2017-02-13 11:54:09 -08:00
..
DefaultDnsCache.java Add support for Client Subnet in DNS Queries (RFC7871) 2016-09-06 07:16:57 +02:00
DefaultDnsServerAddresses.java Replace infinite Iterable/Iterator with dedicated types 2015-08-26 17:38:43 +09:00
DnsAddressResolverGroup.java Support aggressive round-robin dns 2016-10-10 11:08:44 +02:00
DnsCache.java Add support for Client Subnet in DNS Queries (RFC7871) 2016-09-06 07:16:57 +02:00
DnsCacheEntry.java [#5088] Add annotation which marks packages/interfaces/classes as unstable 2016-05-09 15:16:35 +02:00
DnsNameResolver.java DnsNameResolver should respect /etc/resolv.conf and /etc/resolver 2017-02-13 11:54:09 -08:00
DnsNameResolverBuilder.java DnsNameResolver should respect /etc/resolv.conf and /etc/resolver 2017-02-13 11:54:09 -08:00
DnsNameResolverContext.java DnsNameResolver should respect /etc/resolv.conf and /etc/resolver 2017-02-13 11:54:09 -08:00
DnsNameResolverException.java [#5088] Add annotation which marks packages/interfaces/classes as unstable 2016-05-09 15:16:35 +02:00
DnsQueryContext.java Ensure we release the previous retained AddressedEnvelope when we fail to notify the promise. 2017-02-09 10:11:07 +01:00
DnsQueryContextManager.java Use separate query ID space for different DNS servers 2015-11-09 15:25:13 -08:00
DnsServerAddresses.java Implement correct handling of recursive DNS 2017-02-06 20:33:52 +01:00
DnsServerAddressStream.java [#5088] Add annotation which marks packages/interfaces/classes as unstable 2016-05-09 15:16:35 +02:00
DnsServerAddressStreamProvider.java DnsNameResolver should respect /etc/resolv.conf and /etc/resolver 2017-02-13 11:54:09 -08:00
InflightNameResolver.java Do not send duplicate DNS queries when the same query is in progress already 2016-05-17 15:07:36 +02:00
NoopDnsCache.java Add support for Client Subnet in DNS Queries (RFC7871) 2016-09-06 07:16:57 +02:00
NoopDnsServerAddressStreamProvider.java DnsNameResolver should respect /etc/resolv.conf and /etc/resolver 2017-02-13 11:54:09 -08:00
package-info.java [#5088] Add annotation which marks packages/interfaces/classes as unstable 2016-05-09 15:16:35 +02:00
RotationalDnsServerAddresses.java Remove usage of own Atomic*FieldUpdater in favor of JDKs 2016-12-15 08:09:06 +00:00
RoundRobinDnsAddressResolverGroup.java Expose RoundRobinInetAddressResolver 2016-11-02 06:52:19 +01:00
SequentialDnsServerAddressStream.java Replace infinite Iterable/Iterator with dedicated types 2015-08-26 17:38:43 +09:00
ShuffledDnsServerAddressStream.java Replace infinite Iterable/Iterator with dedicated types 2015-08-26 17:38:43 +09:00
SingletonDnsServerAddresses.java Replace infinite Iterable/Iterator with dedicated types 2015-08-26 17:38:43 +09:00
UnixResolverDnsServerAddressStreamProvider.java DnsNameResolver should respect /etc/resolv.conf and /etc/resolver 2017-02-13 11:54:09 -08:00