Home / Function/ testSrvWithCnameNotCached() — netty Function Reference

testSrvWithCnameNotCached() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  a831d3b9_bdfb_bbf4_0b78_794c3d71aba8["testSrvWithCnameNotCached()"]
  b6215f36_0afe_a284_a3fd_3999e90a8e97["DnsNameResolverTest"]
  a831d3b9_bdfb_bbf4_0b78_794c3d71aba8 -->|defined in| b6215f36_0afe_a284_a3fd_3999e90a8e97
  f68a278a_d1e5_7598_a2d3_c261c81029bc["get()"]
  a831d3b9_bdfb_bbf4_0b78_794c3d71aba8 -->|calls| f68a278a_d1e5_7598_a2d3_c261c81029bc
  19c3ba33_bda1_1926_47cf_50b766581ee7["assertNotEmptyAndRelease()"]
  a831d3b9_bdfb_bbf4_0b78_794c3d71aba8 -->|calls| 19c3ba33_bda1_1926_47cf_50b766581ee7
  style a831d3b9_bdfb_bbf4_0b78_794c3d71aba8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java lines 3794–3873

    @ParameterizedTest
    @EnumSource(DnsNameResolverChannelStrategy.class)
    @Timeout(value = 2000, unit = TimeUnit.MILLISECONDS)
    public void testSrvWithCnameNotCached(DnsNameResolverChannelStrategy strategy) throws Exception {
        final AtomicBoolean alias = new AtomicBoolean();
        TestDnsServer dnsServer2 = new TestDnsServer(new RecordStore() {
            @Override
            public Set<ResourceRecord> getRecords(QuestionRecord question) {
                String name = question.getDomainName();
                if (name.equals("service.netty.io")) {
                    Set<ResourceRecord> records = new HashSet<ResourceRecord>(2);

                    ResourceRecordModifier rm = new ResourceRecordModifier();
                    rm.setDnsClass(RecordClass.IN);
                    rm.setDnsName(name);
                    rm.setDnsTtl(10);
                    rm.setDnsType(RecordType.CNAME);
                    rm.put(DnsAttribute.DOMAIN_NAME, "alias.service.netty.io");
                    records.add(rm.getEntry());

                    rm = new ResourceRecordModifier();
                    rm.setDnsClass(RecordClass.IN);
                    rm.setDnsName(name);
                    rm.setDnsTtl(10);
                    rm.setDnsType(RecordType.SRV);
                    rm.put(DnsAttribute.DOMAIN_NAME, "foo.service.netty.io");
                    rm.put(DnsAttribute.SERVICE_PORT, "8080");
                    rm.put(DnsAttribute.SERVICE_PRIORITY, "10");
                    rm.put(DnsAttribute.SERVICE_WEIGHT, "1");
                    records.add(rm.getEntry());
                    return records;
                }
                if (name.equals("foo.service.netty.io")) {
                    ResourceRecordModifier rm = new ResourceRecordModifier();
                    rm.setDnsClass(RecordClass.IN);
                    rm.setDnsName(name);
                    rm.setDnsTtl(10);
                    rm.setDnsType(RecordType.A);
                    rm.put(DnsAttribute.IP_ADDRESS, "10.0.0.1");
                    return Collections.singleton(rm.getEntry());
                }
                if (alias.get()) {
                    ResourceRecordModifier rm = new ResourceRecordModifier();
                    rm.setDnsClass(RecordClass.IN);
                    rm.setDnsName(name);
                    rm.setDnsTtl(10);
                    rm.setDnsType(RecordType.SRV);
                    rm.put(DnsAttribute.DOMAIN_NAME, "foo.service.netty.io");
                    rm.put(DnsAttribute.SERVICE_PORT, "8080");
                    rm.put(DnsAttribute.SERVICE_PRIORITY, "10");
                    rm.put(DnsAttribute.SERVICE_WEIGHT, "1");
                    return Collections.singleton(rm.getEntry());
                }
                return null;
            }
        });
        dnsServer2.start();
        DnsNameResolver resolver = null;
        try {
            DnsNameResolverBuilder builder = newResolver(strategy)
                    .recursionDesired(false)
                    .queryTimeoutMillis(10000)
                    .resolvedAddressTypes(ResolvedAddressTypes.IPV4_PREFERRED)
                    .completeOncePreferredResolved(true)
                    .maxQueriesPerResolve(16)
                    .nameServerProvider(new SingletonDnsServerAddressStreamProvider(dnsServer2.localAddress()));

            resolver = builder.build();
            assertNotEmptyAndRelease(resolver.resolveAll(new DefaultDnsQuestion("service.netty.io", SRV)));
            alias.set(true);
            assertNotEmptyAndRelease(resolver.resolveAll(new DefaultDnsQuestion("service.netty.io", SRV)));
            alias.set(false);
            assertNotEmptyAndRelease(resolver.resolveAll(new DefaultDnsQuestion("service.netty.io", SRV)));
        } finally {
            dnsServer2.stop();
            if (resolver != null) {
                resolver.close();
            }
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does testSrvWithCnameNotCached() do?
testSrvWithCnameNotCached() is a function in the netty codebase, defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java.
Where is testSrvWithCnameNotCached() defined?
testSrvWithCnameNotCached() is defined in resolver-dns/src/test/java/io/netty/resolver/dns/DnsNameResolverTest.java at line 3794.
What does testSrvWithCnameNotCached() call?
testSrvWithCnameNotCached() calls 2 function(s): assertNotEmptyAndRelease, get.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free