@Override void doSearchDomainQuery(String hostname, Promise<List<InetAddress>> nextPromise) { // Query the cache for the hostname first and only do a query if we could not find it in the cache. if (!DnsNameResolver.doResolveAllCached( hostname, additionals, nextPromise, resolveCache, parent.resolvedInternetProtocolFamiliesUnsafe())) { super.doSearchDomainQuery(hostname, nextPromise); } }
@Override void doSearchDomainQuery(String hostname, Promise<List<InetAddress>> nextPromise) { // Query the cache for the hostname first and only do a query if we could not find it in the cache. if (!DnsNameResolver.doResolveAllCached( hostname, additionals, nextPromise, resolveCache, parent.resolvedInternetProtocolFamiliesUnsafe())) { super.doSearchDomainQuery(hostname, nextPromise); } }
@Override public void operationComplete(Future<List<T>> future) { Throwable cause = future.cause(); if (cause == null) { promise.trySuccess(future.getNow()); } else { if (DnsNameResolver.isTransportOrTimeoutError(cause)) { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } else if (searchDomainIdx < searchDomains.length) { Promise<List<T>> newPromise = parent.executor().newPromise(); newPromise.addListener(this); doSearchDomainQuery(hostname + '.' + searchDomains[searchDomainIdx++], newPromise); } else if (!startWithoutSearchDomain) { internalResolve(hostname, promise); } else { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } } } });
@Override public void operationComplete(Future<List<T>> future) { Throwable cause = future.cause(); if (cause == null) { promise.trySuccess(future.getNow()); } else { if (DnsNameResolver.isTransportOrTimeoutError(cause)) { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } else if (searchDomainIdx < searchDomains.length) { Promise<List<T>> newPromise = parent.executor().newPromise(); newPromise.addListener(this); doSearchDomainQuery(hostname + '.' + searchDomains[searchDomainIdx++], newPromise); } else if (!startWithoutSearchDomain) { internalResolve(hostname, promise); } else { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } } } });
doSearchDomainQuery(initialHostname, searchDomainPromise);
doSearchDomainQuery(initialHostname, searchDomainPromise);
@Override void doSearchDomainQuery(String hostname, Promise<List<InetAddress>> nextPromise) { // Query the cache for the hostname first and only do a query if we could not find it in the cache. if (!DnsNameResolver.doResolveAllCached( hostname, additionals, nextPromise, resolveCache, parent.resolvedInternetProtocolFamiliesUnsafe())) { super.doSearchDomainQuery(hostname, nextPromise); } }
void resolve(final Promise<List<T>> promise) { final String[] searchDomains = parent.searchDomains(); if (searchDomains.length == 0 || parent.ndots() == 0 || StringUtil.endsWith(hostname, '.')) { internalResolve(promise); } else { final boolean startWithoutSearchDomain = hasNDots(); final String initialHostname = startWithoutSearchDomain ? hostname : hostname + '.' + searchDomains[0]; final int initialSearchDomainIdx = startWithoutSearchDomain ? 0 : 1; doSearchDomainQuery(initialHostname, new FutureListener<List<T>>() { private int searchDomainIdx = initialSearchDomainIdx; @Override public void operationComplete(Future<List<T>> future) { Throwable cause = future.cause(); if (cause == null) { promise.trySuccess(future.getNow()); } else { if (DnsNameResolver.isTransportOrTimeoutError(cause)) { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } else if (searchDomainIdx < searchDomains.length) { doSearchDomainQuery(hostname + '.' + searchDomains[searchDomainIdx++], this); } else if (!startWithoutSearchDomain) { internalResolve(promise); } else { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } } } }); } }
@Override public void operationComplete(Future<List<T>> future) { Throwable cause = future.cause(); if (cause == null) { promise.trySuccess(future.getNow()); } else { if (DnsNameResolver.isTransportOrTimeoutError(cause)) { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } else if (searchDomainIdx < searchDomains.length) { Promise<List<T>> newPromise = parent.executor().newPromise(); newPromise.addListener(this); doSearchDomainQuery(hostname + '.' + searchDomains[searchDomainIdx++], newPromise); } else if (!startWithoutSearchDomain) { internalResolve(hostname, promise); } else { promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname)); } } } });
doSearchDomainQuery(initialHostname, searchDomainPromise);