testQueryMx() — netty Function Reference
Architecture documentation for the testQueryMx() function in DnsNameResolverTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD f35f68f3_6da5_9b3e_f7f9_89190ed4326b["testQueryMx()"] b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"] f35f68f3_6da5_9b3e_f7f9_89190ed4326b -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97 963c626c_c0b4_c75d_8b92_70ab0d848c94["queryMx()"] f35f68f3_6da5_9b3e_f7f9_89190ed4326b -->|calls| 963c626c_c0b4_c75d_8b92_70ab0d848c94 a94d6293_6df1_57c6_0dfb_5a85d1fa8553["assertNoQueriesMade()"] f35f68f3_6da5_9b3e_f7f9_89190ed4326b -->|calls| a94d6293_6df1_57c6_0dfb_5a85d1fa8553 style f35f68f3_6da5_9b3e_f7f9_89190ed4326b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 677–736
@ParameterizedTest
@EnumSource(DnsNameResolverChannelStrategy.class)
public void testQueryMx(DnsNameResolverChannelStrategy strategy) {
DnsNameResolver resolver = newResolver(strategy).build();
try {
assertTrue(resolver.isRecursionDesired());
Map<String, Future<AddressedEnvelope<DnsResponse, InetSocketAddress>>> futures =
new LinkedHashMap<String, Future<AddressedEnvelope<DnsResponse, InetSocketAddress>>>();
for (String name : DOMAINS) {
if (EXCLUSIONS_QUERY_MX.contains(name)) {
continue;
}
queryMx(resolver, futures, name);
}
for (Entry<String, Future<AddressedEnvelope<DnsResponse, InetSocketAddress>>> e : futures.entrySet()) {
String hostname = e.getKey();
Future<AddressedEnvelope<DnsResponse, InetSocketAddress>> f = e.getValue().awaitUninterruptibly();
DnsResponse response = f.getNow().content();
assertEquals(DnsResponseCode.NOERROR, response.code());
final int answerCount = response.count(DnsSection.ANSWER);
final List<DnsRecord> mxList = new ArrayList<DnsRecord>(answerCount);
for (int i = 0; i < answerCount; i++) {
final DnsRecord r = response.recordAt(DnsSection.ANSWER, i);
if (r.type() == DnsRecordType.MX) {
mxList.add(r);
}
}
assertThat(mxList.size()).isGreaterThan(0);
StringBuilder buf = new StringBuilder();
for (DnsRecord r : mxList) {
ByteBuf recordContent = ((ByteBufHolder) r).content();
buf.append(StringUtil.NEWLINE);
buf.append('\t');
buf.append(r.name());
buf.append(' ');
buf.append(r.type().name());
buf.append(' ');
buf.append(recordContent.readUnsignedShort());
buf.append(' ');
buf.append(DnsResolveContext.decodeDomainName(recordContent));
}
logger.info("{} has the following MX records:{}", hostname, buf);
response.release();
// We only track query lifecycle if it is managed by the DnsNameResolverContext, and not direct calls
// to query.
assertNoQueriesMade(resolver);
}
} finally {
resolver.close();
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does testQueryMx() do?
testQueryMx() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testQueryMx() defined?
testQueryMx() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 677.
What does testQueryMx() call?
testQueryMx() calls 2 function(s): assertNoQueriesMade, queryMx.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free