Home / Function/ resolve() — netty Function Reference

resolve() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  19225515_ce5b_59bc_9042_d989b77e8911["resolve()"]
  3bc002ec_f54e_a55f_0b37_77eac88c60db["DnsResolveContext"]
  19225515_ce5b_59bc_9042_d989b77e8911 -->|defined in| 3bc002ec_f54e_a55f_0b37_77eac88c60db
  804ea022_5b6c_6eb0_3048_d20c3d4093fb["queryUnresolvedNameServer()"]
  804ea022_5b6c_6eb0_3048_d20c3d4093fb -->|calls| 19225515_ce5b_59bc_9042_d989b77e8911
  9f561f45_6801_ce1e_316a_a956c08ce604["internalResolve()"]
  19225515_ce5b_59bc_9042_d989b77e8911 -->|calls| 9f561f45_6801_ce1e_316a_a956c08ce604
  5e50dade_7679_6bfb_4ac3_1314c4c0e2dc["hasNDots()"]
  19225515_ce5b_59bc_9042_d989b77e8911 -->|calls| 5e50dade_7679_6bfb_4ac3_1314c4c0e2dc
  3f24e8ee_6b3f_43ab_47be_3f4ebeca0a49["SearchDomainUnknownHostException()"]
  19225515_ce5b_59bc_9042_d989b77e8911 -->|calls| 3f24e8ee_6b3f_43ab_47be_3f4ebeca0a49
  04601a99_7b74_c57b_d385_a444bf92ae20["doSearchDomainQuery()"]
  19225515_ce5b_59bc_9042_d989b77e8911 -->|calls| 04601a99_7b74_c57b_d385_a444bf92ae20
  style 19225515_ce5b_59bc_9042_d989b77e8911 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java lines 232–273

    void resolve(final Promise<List<T>> promise) {
        final String[] searchDomains = parent.searchDomains();
        if (searchDomains.length == 0 || parent.ndots() == 0 || StringUtil.endsWith(hostname, '.')) {
            internalResolve(hostname, promise);
        } else {
            final boolean startWithoutSearchDomain = hasNDots();
            final String initialHostname = startWithoutSearchDomain ? hostname : hostname + '.' + searchDomains[0];
            final int initialSearchDomainIdx = startWithoutSearchDomain ? 0 : 1;

            final Promise<List<T>> searchDomainPromise = parent.executor().newPromise();
            searchDomainPromise.addListener(new FutureListener<List<T>>() {
                private int searchDomainIdx = initialSearchDomainIdx;
                @Override
                public void operationComplete(Future<List<T>> future) {
                    Throwable cause = future.cause();
                    if (cause == null) {
                        final List<T> result = future.getNow();
                        if (!promise.trySuccess(result)) {
                            for (T item : result) {
                                ReferenceCountUtil.safeRelease(item);
                            }
                        }
                    } else {
                        if (DnsNameResolver.isTransportOrTimeoutError(cause)) {
                            promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname, expectedTypes,
                                    searchDomains));
                        } else if (searchDomainIdx < searchDomains.length) {
                            Promise<List<T>> newPromise = parent.executor().newPromise();
                            newPromise.addListener(this);
                            doSearchDomainQuery(hostname + '.' + searchDomains[searchDomainIdx++], newPromise);
                        } else if (!startWithoutSearchDomain) {
                            internalResolve(hostname, promise);
                        } else {
                            promise.tryFailure(new SearchDomainUnknownHostException(cause, hostname, expectedTypes,
                                    searchDomains));
                        }
                    }
                }
            });
            doSearchDomainQuery(initialHostname, searchDomainPromise);
        }
    }

Subdomains

Frequently Asked Questions

What does resolve() do?
resolve() is a function in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java.
Where is resolve() defined?
resolve() is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java at line 232.
What does resolve() call?
resolve() calls 4 function(s): SearchDomainUnknownHostException, doSearchDomainQuery, hasNDots, internalResolve.
What calls resolve()?
resolve() is called by 1 function(s): queryUnresolvedNameServer.

Analyze Your Own Codebase

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

Try Supermodel Free