Home / Function/ testTruncated0() — netty Function Reference

testTruncated0() — netty Function Reference

Architecture documentation for the testTruncated0() function in DnsNameResolverTest.java from the netty codebase.

Function java Buffer Telemetry calls 3 called by 3

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

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