netty5/resolver-dns/src/main/java/io/netty/resolver/dns
Norman Maurer 0523c781e8 DnsNameResolver.resolve(...) should notify future as soon as one preferred record was resolved (#9050)
Motivation:

At the moment resolve(...) does just delegate to resolveAll(...) and so will only notify the future once all records were resolved. This is wasteful as we are only interested in the first record anyway. We should notify the promise as soon as one record that matches the preferred record type is resolved.

Modifications:

- Introduce DnsResolveContext.isCompleteEarly(...) to be able to detect once we should early notify the promise.
- Make use of this early detecting if resolve(...) is called
- Remove FutureListener which could lead to IllegalReferenceCountException due double releases
- add unit test

Result:

Be able to notify about resolved host more quickly.
2019-04-15 21:50:28 +02:00
..
AuthoritativeDnsServerCache.java Correctly handle DNS redirects for NS servers that have no ADDITIONAL record (#8177) 2018-08-22 17:49:22 +02:00
AuthoritativeDnsServerCacheAdapter.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
BiDnsQueryLifecycleObserver.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
BiDnsQueryLifecycleObserverFactory.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
Cache.java migrate java8 (#8779) 2019-01-28 05:55:30 +01:00
DefaultAuthoritativeDnsServerCache.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DefaultDnsCache.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DefaultDnsCnameCache.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DefaultDnsServerAddresses.java Correctly handle DNS redirects for NS servers that have no ADDITIONAL record (#8177) 2018-08-22 17:49:22 +02:00
DefaultDnsServerAddressStreamProvider.java Java 8 migration: Use diamond operator (#8749) 2019-01-22 16:07:26 +01:00
DirContextUtils.java Java 8 migration: Use diamond operator (#8749) 2019-01-22 16:07:26 +01:00
DnsAddressDecoder.java Add DnsNameResolver.resolveAll(DnsQuestion) (#7803) 2018-03-29 22:01:25 +02:00
DnsAddressResolveContext.java DnsNameResolver.resolve(...) should notify future as soon as one preferred record was resolved (#9050) 2019-04-15 21:50:28 +02:00
DnsAddressResolverGroup.java Java 8 migration. Inline PlatformDependent.newConcurrentHashMap() (#8760) 2019-01-22 17:18:50 +01:00
DnsCache.java Allow to detect failed query caused by an Timeout / IO error and also not cache these. 2017-11-23 10:56:41 +01:00
DnsCacheEntry.java Decouple DnsCache and DnsCacheEntry 2017-08-21 11:15:27 -07:00
DnsCnameCache.java Add cache for CNAME mappings resolved during lookup of DNS entries. (#8314) 2018-09-27 17:05:35 +02:00
DnsNameResolver.java DnsNameResolver.resolve(...) should notify future as soon as one preferred record was resolved (#9050) 2019-04-15 21:50:28 +02:00
DnsNameResolverBuilder.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DnsNameResolverException.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DnsNameResolverTimeoutException.java Allow to detect failed query caused by an Timeout / IO error and also not cache these. 2017-11-23 10:56:41 +01:00
DnsQueryContext.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DnsQueryContextManager.java Java 8 migration. Remove ThreadLocalProvider and inline java.util.concurrent.ThreadLocalRandom.current() where necessary. (#8762) 2019-01-22 20:14:28 +01:00
DnsQueryLifecycleObserver.java DNS Resolver visibility into individual queries 2017-04-27 15:17:20 -07:00
DnsQueryLifecycleObserverFactory.java DNS Resolver visibility into individual queries 2017-04-27 15:17:20 -07:00
DnsRecordResolveContext.java DnsNameResolver.resolve(...) should notify future as soon as one preferred record was resolved (#9050) 2019-04-15 21:50:28 +02:00
DnsResolveContext.java DnsNameResolver.resolve(...) should notify future as soon as one preferred record was resolved (#9050) 2019-04-15 21:50:28 +02:00
DnsServerAddresses.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DnsServerAddressStream.java DNS Resolver should be more consistent with JDK resolution 2017-07-05 09:10:59 -04:00
DnsServerAddressStreamProvider.java DNS Resolve ambiguity in which DNS servers are used during resolution 2017-03-31 15:29:49 -07:00
DnsServerAddressStreamProviders.java Refresh DNS configuration each 5 minutes. (#8468) 2018-11-16 10:37:29 +01:00
InflightNameResolver.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
MultiDnsServerAddressStreamProvider.java DNS Resolve ambiguity in which DNS servers are used during resolution 2017-03-31 15:29:49 -07:00
NameServerComparator.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
NoopAuthoritativeDnsServerCache.java remove unused import statement (#8792) 2019-01-28 16:50:15 +01:00
NoopDnsCache.java Decouple DnsCache and DnsCacheEntry 2017-08-21 11:15:27 -07:00
NoopDnsCnameCache.java Add cache for CNAME mappings resolved during lookup of DNS entries. (#8314) 2018-09-27 17:05:35 +02:00
NoopDnsQueryLifecycleObserver.java DNS Resolver visibility into individual queries 2017-04-27 15:17:20 -07:00
NoopDnsQueryLifecycleObserverFactory.java DNS Resolver visibility into individual queries 2017-04-27 15:17:20 -07:00
package-info.java [#5088] Add annotation which marks packages/interfaces/classes as unstable 2016-05-09 15:16:35 +02:00
PreferredAddressTypeComparator.java DnsNameResolver.resolveAll(...) should also contain non preferred addresses (#9044) 2019-04-15 10:33:04 +02:00
RotationalDnsServerAddresses.java Correctly handle DNS redirects for NS servers that have no ADDITIONAL record (#8177) 2018-08-22 17:49:22 +02:00
RoundRobinDnsAddressResolverGroup.java DnsAddressResolverGroup to use pluggable DnsNameResolverBuilder (#7793) 2018-04-26 08:04:01 +02:00
SequentialDnsServerAddressStream.java Correctly handle DNS redirects for NS servers that have no ADDITIONAL record (#8177) 2018-08-22 17:49:22 +02:00
SequentialDnsServerAddressStreamProvider.java DNS Resolver should be more consistent with JDK resolution 2017-07-05 09:10:59 -04:00
ShuffledDnsServerAddressStream.java Java 8 migration. Remove ThreadLocalProvider and inline java.util.concurrent.ThreadLocalRandom.current() where necessary. (#8762) 2019-01-22 20:14:28 +01:00
SingletonDnsServerAddresses.java DNS Resolver should be more consistent with JDK resolution 2017-07-05 09:10:59 -04:00
SingletonDnsServerAddressStreamProvider.java DNS Resolver should be more consistent with JDK resolution 2017-07-05 09:10:59 -04:00
TraceDnsQueryLifecycleObserver.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
TraceDnsQueryLifeCycleObserverFactory.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
UniSequentialDnsServerAddressStreamProvider.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
UnixResolverDnsServerAddressStreamProvider.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00