handleRedirect() — netty Function Reference
Architecture documentation for the handleRedirect() function in DnsResolveContext.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 65c57ffd_71d8_8f62_ab38_e8ff772695a7["handleRedirect()"] 3bc002ec_f54e_a55f_0b37_77eac88c60db["DnsResolveContext"] 65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|defined in| 3bc002ec_f54e_a55f_0b37_77eac88c60db 6b22df1c_91b5_21bf_29f9_518f692074d4["onResponse()"] 6b22df1c_91b5_21bf_29f9_518f692074d4 -->|calls| 65c57ffd_71d8_8f62_ab38_e8ff772695a7 ce863271_9615_37a8_a591_eac4f9ad92d1["handleWithAdditional()"] 65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|calls| ce863271_9615_37a8_a591_eac4f9ad92d1 7da11410_1c67_395f_375c_64155bdbcc56["handleWithoutAdditionals()"] 65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|calls| 7da11410_1c67_395f_375c_64155bdbcc56 2b098af8_5694_2a00_1f74_a3149167f056["addressList()"] 65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|calls| 2b098af8_5694_2a00_1f74_a3149167f056 07f53a31_718c_c4a3_04b0_19d21f5a6af4["query()"] 65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|calls| 07f53a31_718c_c4a3_04b0_19d21f5a6af4 8551bbf5_ceb5_b64c_f8de_aedc66ee65f3["DnsAddressStreamList()"] 65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|calls| 8551bbf5_ceb5_b64c_f8de_aedc66ee65f3 style 65c57ffd_71d8_8f62_ab38_e8ff772695a7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java lines 683–726
private boolean handleRedirect(
DnsQuestion question, AddressedEnvelope<DnsResponse, InetSocketAddress> envelope,
final DnsQueryLifecycleObserver queryLifecycleObserver, Promise<List<T>> promise) {
final DnsResponse res = envelope.content();
// Check if we have answers, if not this may be an non authority NS and so redirects must be handled.
if (res.count(DnsSection.ANSWER) == 0) {
AuthoritativeNameServerList serverNames = extractAuthoritativeNameServers(question.name(), res);
if (serverNames != null) {
int additionalCount = res.count(DnsSection.ADDITIONAL);
AuthoritativeDnsServerCache authoritativeDnsServerCache = authoritativeDnsServerCache();
for (int i = 0; i < additionalCount; i++) {
final DnsRecord r = res.recordAt(DnsSection.ADDITIONAL, i);
if (r.type() == DnsRecordType.A && !parent.supportsARecords() ||
r.type() == DnsRecordType.AAAA && !parent.supportsAAAARecords()) {
continue;
}
// We may have multiple ADDITIONAL entries for the same nameserver name. For example one AAAA and
// one A record.
serverNames.handleWithAdditional(parent, r, authoritativeDnsServerCache);
}
// Process all unresolved nameservers as well.
serverNames.handleWithoutAdditionals(parent, resolveCache(), authoritativeDnsServerCache);
List<InetSocketAddress> addresses = serverNames.addressList();
// Give the user the chance to sort or filter the used servers for the query.
DnsServerAddressStream serverStream = parent.newRedirectDnsServerStream(
question.name(), addresses);
if (serverStream != null) {
query(serverStream, 0, question,
queryLifecycleObserver.queryRedirected(new DnsAddressStreamList(serverStream)),
true, promise, null);
return true;
}
}
}
return false;
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does handleRedirect() do?
handleRedirect() is a function in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java.
Where is handleRedirect() defined?
handleRedirect() is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java at line 683.
What does handleRedirect() call?
handleRedirect() calls 5 function(s): DnsAddressStreamList, addressList, handleWithAdditional, handleWithoutAdditionals, query.
What calls handleRedirect()?
handleRedirect() is called by 1 function(s): onResponse.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free