testCNAMERecursiveResolve() — netty Function Reference
Architecture documentation for the testCNAMERecursiveResolve() function in DnsNameResolverTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 9953463c_c29f_79ad_8840_75b66327f65a["testCNAMERecursiveResolve()"] b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"] 9953463c_c29f_79ad_8840_75b66327f65a -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97 85179375_f20d_a320_7ede_8d8f765f4b5c["testCNAMEResolveAllIpv4()"] 85179375_f20d_a320_7ede_8d8f765f4b5c -->|calls| 9953463c_c29f_79ad_8840_75b66327f65a dea2e913_516d_e013_fb0c_d9cbdf002b4f["testCNAMEResolveAllIpv6()"] dea2e913_516d_e013_fb0c_d9cbdf002b4f -->|calls| 9953463c_c29f_79ad_8840_75b66327f65a df4510f5_88a8_20fd_2366_a4c543cdf3b8["resolve()"] 9953463c_c29f_79ad_8840_75b66327f65a -->|calls| df4510f5_88a8_20fd_2366_a4c543cdf3b8 style 9953463c_c29f_79ad_8840_75b66327f65a fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 952–1016
private static void testCNAMERecursiveResolve(DnsNameResolverChannelStrategy strategy, boolean ipv4Preferred)
throws IOException {
final String firstName = "firstname.com";
final String secondName = "secondname.com";
final String lastName = "lastname.com";
final String ipv4Addr = "1.2.3.4";
final String ipv6Addr = "::1";
TestDnsServer dnsServer2 = new TestDnsServer(new RecordStore() {
@Override
public Set<ResourceRecord> getRecords(QuestionRecord question) {
ResourceRecordModifier rm = new ResourceRecordModifier();
rm.setDnsClass(RecordClass.IN);
rm.setDnsName(question.getDomainName());
rm.setDnsTtl(100);
rm.setDnsType(RecordType.CNAME);
if (question.getDomainName().equals(firstName)) {
rm.put(DnsAttribute.DOMAIN_NAME, secondName);
} else if (question.getDomainName().equals(secondName)) {
rm.put(DnsAttribute.DOMAIN_NAME, lastName);
} else if (question.getDomainName().equals(lastName)) {
rm.setDnsType(question.getRecordType());
switch (question.getRecordType()) {
case A:
rm.put(DnsAttribute.IP_ADDRESS, ipv4Addr);
break;
case AAAA:
rm.put(DnsAttribute.IP_ADDRESS, ipv6Addr);
break;
default:
return null;
}
} else {
return null;
}
return Collections.singleton(rm.getEntry());
}
});
dnsServer2.start();
DnsNameResolver resolver = null;
try {
DnsNameResolverBuilder builder = newResolver(strategy)
.recursionDesired(true)
.maxQueriesPerResolve(16)
.nameServerProvider(new SingletonDnsServerAddressStreamProvider(dnsServer2.localAddress()));
if (ipv4Preferred) {
builder.resolvedAddressTypes(ResolvedAddressTypes.IPV4_PREFERRED);
} else {
builder.resolvedAddressTypes(ResolvedAddressTypes.IPV6_PREFERRED);
}
resolver = builder.build();
InetAddress resolvedAddress = resolver.resolve(firstName).syncUninterruptibly().getNow();
if (ipv4Preferred) {
assertEquals(ipv4Addr, resolvedAddress.getHostAddress());
} else {
assertEquals(ipv6Addr, NetUtil.toAddressString(resolvedAddress));
}
assertEquals(firstName, resolvedAddress.getHostName());
} finally {
dnsServer2.stop();
if (resolver != null) {
resolver.close();
}
}
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does testCNAMERecursiveResolve() do?
testCNAMERecursiveResolve() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testCNAMERecursiveResolve() defined?
testCNAMERecursiveResolve() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 952.
What does testCNAMERecursiveResolve() call?
testCNAMERecursiveResolve() calls 1 function(s): resolve.
What calls testCNAMERecursiveResolve()?
testCNAMERecursiveResolve() is called by 2 function(s): testCNAMEResolveAllIpv4, testCNAMEResolveAllIpv6.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free