testTruncated0() — netty Function Reference
Architecture documentation for the testTruncated0() function in DnsNameResolverTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a6f938b0_a209_98b3_73c5_ec340c25a233["testTruncated0()"] b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"] a6f938b0_a209_98b3_73c5_ec340c25a233 -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97 c62b5c9e_619c_6725_bde9_714c003c90f4["testTruncatedWithoutTcpFallback()"] c62b5c9e_619c_6725_bde9_714c003c90f4 -->|calls| a6f938b0_a209_98b3_73c5_ec340c25a233 2ffd18a7_ce33_d3e2_3caf_e794fc0b08e5["testTruncatedWithTcpFallback()"] 2ffd18a7_ce33_d3e2_3caf_e794fc0b08e5 -->|calls| a6f938b0_a209_98b3_73c5_ec340c25a233 b68a11a8_34e0_fdd5_ac16_20bb6cea165d["testTruncatedWithTcpFallbackBecauseOfMtu()"] b68a11a8_34e0_fdd5_ac16_20bb6cea165d -->|calls| a6f938b0_a209_98b3_73c5_ec340c25a233 c618ea04_6139_c010_738d_c8a4c238bcab["responseViaSocket()"] a6f938b0_a209_98b3_73c5_ec340c25a233 -->|calls| c618ea04_6139_c010_738d_c8a4c238bcab f68a278a_d1e5_7598_a2d3_c261c81029bc["get()"] a6f938b0_a209_98b3_73c5_ec340c25a233 -->|calls| f68a278a_d1e5_7598_a2d3_c261c81029bc 62201c8c_6f8a_307c_e366_fd95b6969fae["decodeTxt()"] a6f938b0_a209_98b3_73c5_ec340c25a233 -->|calls| 62201c8c_6f8a_307c_e366_fd95b6969fae style a6f938b0_a209_98b3_73c5_ec340c25a233 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 3329–3441
private static void testTruncated0(DnsNameResolverChannelStrategy strategy,
boolean tcpFallback, final boolean truncatedBecauseOfMtu) throws IOException {
ServerSocket serverSocket = null;
final String host = "somehost.netty.io";
final String txt = "this is a txt record";
final AtomicReference<DnsMessage> messageRef = new AtomicReference<DnsMessage>();
TestDnsServer dnsServer2 = new TestDnsServer(new RecordStore() {
@Override
public Set<ResourceRecord> getRecords(QuestionRecord question) {
String name = question.getDomainName();
if (name.equals(host)) {
return Collections.<ResourceRecord>singleton(
new TestDnsServer.TestResourceRecord(name, RecordType.TXT,
Collections.<String, Object>singletonMap(
DnsAttribute.CHARACTER_STRING.toLowerCase(), txt)));
}
return null;
}
}) {
@Override
protected DnsMessage filterMessage(DnsMessage message) {
// Store a original message so we can replay it later on.
messageRef.set(message);
if (!truncatedBecauseOfMtu) {
// Create a copy of the message but set the truncated flag.
DnsMessageModifier modifier = modifierFrom(message);
modifier.setTruncated(true);
return modifier.getDnsMessage();
}
return message;
}
};
DnsNameResolver resolver = null;
try {
DnsNameResolverBuilder builder = newResolver(strategy);
final DatagramChannel datagramChannel = new NioDatagramChannel();
ChannelFactory<DatagramChannel> channelFactory = new ChannelFactory<DatagramChannel>() {
@Override
public DatagramChannel newChannel() {
return datagramChannel;
}
};
builder.datagramChannelFactory(channelFactory);
if (tcpFallback) {
// If we are configured to use TCP as a fallback also bind a TCP socket
serverSocket = startDnsServerAndCreateServerSocket(dnsServer2);
// If we are configured to use TCP as a fallback also bind a TCP socket
builder.socketChannelType(NioSocketChannel.class);
} else {
dnsServer2.start();
}
builder.queryTimeoutMillis(10000)
.resolvedAddressTypes(ResolvedAddressTypes.IPV4_PREFERRED)
.maxQueriesPerResolve(16)
.nameServerProvider(new SingletonDnsServerAddressStreamProvider(dnsServer2.localAddress()));
resolver = builder.build();
if (truncatedBecauseOfMtu) {
datagramChannel.pipeline().addFirst(new ChannelInboundHandlerAdapter() {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
if (msg instanceof DatagramPacket) {
// Truncate the packet by 1 byte.
DatagramPacket packet = (DatagramPacket) msg;
packet.content().writerIndex(packet.content().writerIndex() - 1);
}
ctx.fireChannelRead(msg);
}
});
}
Future<AddressedEnvelope<DnsResponse, InetSocketAddress>> envelopeFuture = resolver.query(
new DefaultDnsQuestion(host, DnsRecordType.TXT));
if (tcpFallback) {
// If we are configured to use TCP as a fallback lets replay the dns message over TCP
Socket socket = serverSocket.accept();
responseViaSocket(socket, messageRef.get());
// Let's wait until we received the envelope before closing the socket.
envelopeFuture.syncUninterruptibly();
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does testTruncated0() do?
testTruncated0() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testTruncated0() defined?
testTruncated0() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 3329.
What does testTruncated0() call?
testTruncated0() calls 3 function(s): decodeTxt, get, responseViaSocket.
What calls testTruncated0()?
testTruncated0() is called by 3 function(s): testTruncatedWithTcpFallback, testTruncatedWithTcpFallbackBecauseOfMtu, testTruncatedWithoutTcpFallback.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free