queryUnresolvedNameServer() — netty Function Reference
Architecture documentation for the queryUnresolvedNameServer() function in DnsResolveContext.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 804ea022_5b6c_6eb0_3048_d20c3d4093fb["queryUnresolvedNameServer()"] 3bc002ec_f54e_a55f_0b37_77eac88c60db["DnsResolveContext"] 804ea022_5b6c_6eb0_3048_d20c3d4093fb -->|defined in| 3bc002ec_f54e_a55f_0b37_77eac88c60db 07f53a31_718c_c4a3_04b0_19d21f5a6af4["query()"] 07f53a31_718c_c4a3_04b0_19d21f5a6af4 -->|calls| 804ea022_5b6c_6eb0_3048_d20c3d4093fb 161fe130_19c1_016b_ea22_8d91937c6452["add()"] 804ea022_5b6c_6eb0_3048_d20c3d4093fb -->|calls| 161fe130_19c1_016b_ea22_8d91937c6452 a7835729_7cee_bc21_d7bd_f702b4b9c74e["CombinedDnsServerAddressStream()"] 804ea022_5b6c_6eb0_3048_d20c3d4093fb -->|calls| a7835729_7cee_bc21_d7bd_f702b4b9c74e 07f53a31_718c_c4a3_04b0_19d21f5a6af4["query()"] 804ea022_5b6c_6eb0_3048_d20c3d4093fb -->|calls| 07f53a31_718c_c4a3_04b0_19d21f5a6af4 19225515_ce5b_59bc_9042_d989b77e8911["resolve()"] 804ea022_5b6c_6eb0_3048_d20c3d4093fb -->|calls| 19225515_ce5b_59bc_9042_d989b77e8911 style 804ea022_5b6c_6eb0_3048_d20c3d4093fb fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java lines 523–568
private void queryUnresolvedNameServer(final InetSocketAddress nameServerAddr,
final DnsServerAddressStream nameServerAddrStream,
final int nameServerAddrStreamIndex,
final DnsQuestion question,
final DnsQueryLifecycleObserver queryLifecycleObserver,
final Promise<List<T>> promise,
final Throwable cause) {
final String nameServerName = nameServerAddr.getHostString();
assert nameServerName != null;
// Placeholder so we will not try to finish the original query yet.
final Future<AddressedEnvelope<DnsResponse, InetSocketAddress>> resolveFuture = parent.executor()
.newSucceededFuture(null);
queriesInProgress.add(resolveFuture);
Promise<List<InetAddress>> resolverPromise = parent.executor().newPromise();
resolverPromise.addListener((FutureListener<List<InetAddress>>) future -> {
// Remove placeholder.
queriesInProgress.remove(resolveFuture);
if (future.isSuccess()) {
List<InetAddress> resolvedAddresses = future.getNow();
DnsServerAddressStream addressStream = new CombinedDnsServerAddressStream(
nameServerAddr, resolvedAddresses, nameServerAddrStream);
query(addressStream, nameServerAddrStreamIndex, question,
queryLifecycleObserver, true, promise, cause);
} else {
// Ignore the server and try the next one...
query(nameServerAddrStream, nameServerAddrStreamIndex + 1,
question, queryLifecycleObserver, true, promise, cause);
}
});
DnsCache resolveCache = resolveCache();
if (!DnsNameResolver.doResolveAllCached(nameServerName, additionals, resolverPromise, resolveCache,
parent.searchDomains(), parent.ndots(), parent.resolvedInternetProtocolFamiliesUnsafe())) {
new DnsAddressResolveContext(parent, channel,
originalPromise, nameServerName, additionals, parent.newNameServerAddressStream(nameServerName),
// Resolving the unresolved nameserver must be limited by allowedQueries
// so we eventually fail
allowedQueries,
resolveCache,
redirectAuthoritativeDnsServerCache(authoritativeDnsServerCache()), false)
.resolve(resolverPromise);
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does queryUnresolvedNameServer() do?
queryUnresolvedNameServer() is a function in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java.
Where is queryUnresolvedNameServer() defined?
queryUnresolvedNameServer() is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java at line 523.
What does queryUnresolvedNameServer() call?
queryUnresolvedNameServer() calls 4 function(s): CombinedDnsServerAddressStream, add, query, resolve.
What calls queryUnresolvedNameServer()?
queryUnresolvedNameServer() is called by 1 function(s): query.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free