Home / Function/ handleWithAdditional() — netty Function Reference

handleWithAdditional() — netty Function Reference

Architecture documentation for the handleWithAdditional() function in DnsResolveContext.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  ce863271_9615_37a8_a591_eac4f9ad92d1["handleWithAdditional()"]
  a63c5319_f927_6bfc_6318_415aecf6068e["AuthoritativeNameServerList"]
  ce863271_9615_37a8_a591_eac4f9ad92d1 -->|defined in| a63c5319_f927_6bfc_6318_415aecf6068e
  65c57ffd_71d8_8f62_ab38_e8ff772695a7["handleRedirect()"]
  65c57ffd_71d8_8f62_ab38_e8ff772695a7 -->|calls| ce863271_9615_37a8_a591_eac4f9ad92d1
  5167f7c9_01dd_bfa6_4519_865cd0886ae5["AuthoritativeNameServer()"]
  ce863271_9615_37a8_a591_eac4f9ad92d1 -->|calls| 5167f7c9_01dd_bfa6_4519_865cd0886ae5
  20e320db_4760_d5ed_1331_acfb0409926a["update()"]
  ce863271_9615_37a8_a591_eac4f9ad92d1 -->|calls| 20e320db_4760_d5ed_1331_acfb0409926a
  e1a10468_2ab8_17c7_5dfe_66d356b0d510["cache()"]
  ce863271_9615_37a8_a591_eac4f9ad92d1 -->|calls| e1a10468_2ab8_17c7_5dfe_66d356b0d510
  style ce863271_9615_37a8_a591_eac4f9ad92d1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java lines 1313–1350

        void handleWithAdditional(
                DnsNameResolver parent, DnsRecord r, AuthoritativeDnsServerCache authoritativeCache) {
            // Just walk the linked-list and mark the entry as handled when matched.
            AuthoritativeNameServer serverName = head;

            String nsName = r.name();
            InetAddress resolved = decodeAddress(r, nsName, parent.isDecodeIdn());
            if (resolved == null) {
                // Could not parse the address, just ignore.
                return;
            }

            while (serverName != null) {
                if (serverName.nsName.equalsIgnoreCase(nsName)) {
                    if (serverName.address != null) {
                        // We received multiple ADDITIONAL records for the same name.
                        // Search for the last we insert before and then append a new one.
                        while (serverName.next != null && serverName.next.isCopy) {
                            serverName = serverName.next;
                        }
                        AuthoritativeNameServer server = new AuthoritativeNameServer(serverName);
                        server.next = serverName.next;
                        serverName.next = server;
                        serverName = server;

                        nameServerCount++;
                    }
                    // We should replace the TTL if needed with the one of the ADDITIONAL record so we use
                    // the smallest for caching.
                    serverName.update(parent.newRedirectServerAddress(resolved), r.timeToLive());

                    // Cache the server now.
                    cache(serverName, authoritativeCache, parent.executor());
                    return;
                }
                serverName = serverName.next;
            }
        }

Subdomains

Called By

Frequently Asked Questions

What does handleWithAdditional() do?
handleWithAdditional() is a function in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java.
Where is handleWithAdditional() defined?
handleWithAdditional() is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java at line 1313.
What does handleWithAdditional() call?
handleWithAdditional() calls 3 function(s): AuthoritativeNameServer, cache, update.
What calls handleWithAdditional()?
handleWithAdditional() is called by 1 function(s): handleRedirect.

Analyze Your Own Codebase

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

Try Supermodel Free