Home / Class/ DnsServerAddresses Class — netty Architecture

DnsServerAddresses Class — netty Architecture

Architecture documentation for the DnsServerAddresses class in DnsServerAddresses.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  9adc85d7_da1e_9f4c_7dad_2e7905c0a61e["DnsServerAddresses"]
  4612adf1_3c5b_0f1b_7c20_34e61ae171b3["DnsServerAddresses.java"]
  9adc85d7_da1e_9f4c_7dad_2e7905c0a61e -->|defined in| 4612adf1_3c5b_0f1b_7c20_34e61ae171b3
  c4cff171_f3c6_4139_087a_071264f7a4bc["defaultAddressList()"]
  9adc85d7_da1e_9f4c_7dad_2e7905c0a61e -->|method| c4cff171_f3c6_4139_087a_071264f7a4bc
  2dfc2618_8266_b04a_5478_c1240eaef69a["DnsServerAddresses()"]
  9adc85d7_da1e_9f4c_7dad_2e7905c0a61e -->|method| 2dfc2618_8266_b04a_5478_c1240eaef69a
  fb9a7724_bcbd_a481_cd0c_1b0bcb111560["sanitize()"]
  9adc85d7_da1e_9f4c_7dad_2e7905c0a61e -->|method| fb9a7724_bcbd_a481_cd0c_1b0bcb111560
  45038eef_7cfe_79ee_7801_a887252502ed["DnsServerAddressStream()"]
  9adc85d7_da1e_9f4c_7dad_2e7905c0a61e -->|method| 45038eef_7cfe_79ee_7801_a887252502ed

Relationship Graph

Source Code

resolver-dns/src/main/java/io/netty/resolver/dns/DnsServerAddresses.java lines 30–209

@SuppressWarnings("IteratorNextCanNotThrowNoSuchElementException")
public abstract class DnsServerAddresses {
    /**
     * @deprecated Use {@link DefaultDnsServerAddressStreamProvider#defaultAddressList()}.
     * <p>
     * Returns the list of the system DNS server addresses. If it failed to retrieve the list of the system DNS server
     * addresses from the environment, it will return {@code "8.8.8.8"} and {@code "8.8.4.4"}, the addresses of the
     * Google public DNS servers.
     */
    @Deprecated
    public static List<InetSocketAddress> defaultAddressList() {
        return DefaultDnsServerAddressStreamProvider.defaultAddressList();
    }

    /**
     * @deprecated Use {@link DefaultDnsServerAddressStreamProvider#defaultAddresses()}.
     * <p>
     * Returns the {@link DnsServerAddresses} that yields the system DNS server addresses sequentially. If it failed to
     * retrieve the list of the system DNS server addresses from the environment, it will use {@code "8.8.8.8"} and
     * {@code "8.8.4.4"}, the addresses of the Google public DNS servers.
     * <p>
     * This method has the same effect with the following code:
     * <pre>
     * DnsServerAddresses.sequential(DnsServerAddresses.defaultAddressList());
     * </pre>
     * </p>
     */
    @Deprecated
    public static DnsServerAddresses defaultAddresses() {
        return DefaultDnsServerAddressStreamProvider.defaultAddresses();
    }

    /**
     * Returns the {@link DnsServerAddresses} that yields the specified {@code addresses} sequentially. Once the
     * last address is yielded, it will start again from the first address.
     */
    public static DnsServerAddresses sequential(Iterable<? extends InetSocketAddress> addresses) {
        return sequential0(sanitize(addresses));
    }

    /**
     * Returns the {@link DnsServerAddresses} that yields the specified {@code addresses} sequentially. Once the
     * last address is yielded, it will start again from the first address.
     */
    public static DnsServerAddresses sequential(InetSocketAddress... addresses) {
        return sequential0(sanitize(addresses));
    }

    private static DnsServerAddresses sequential0(final List<InetSocketAddress> addresses) {
        if (addresses.size() == 1) {
            return singleton(addresses.get(0));
        }

        return new DefaultDnsServerAddresses("sequential", addresses) {
            @Override
            public DnsServerAddressStream stream() {
                return new SequentialDnsServerAddressStream(addresses, 0);
            }
        };
    }

    /**
     * Returns the {@link DnsServerAddresses} that yields the specified {@code address} in a shuffled order. Once all
     * addresses are yielded, the addresses are shuffled again.
     */
    public static DnsServerAddresses shuffled(Iterable<? extends InetSocketAddress> addresses) {
        return shuffled0(sanitize(addresses));
    }

    /**
     * Returns the {@link DnsServerAddresses} that yields the specified {@code addresses} in a shuffled order. Once all
     * addresses are yielded, the addresses are shuffled again.
     */
    public static DnsServerAddresses shuffled(InetSocketAddress... addresses) {
        return shuffled0(sanitize(addresses));
    }

    private static DnsServerAddresses shuffled0(List<InetSocketAddress> addresses) {
        if (addresses.size() == 1) {
            return singleton(addresses.get(0));
        }

Frequently Asked Questions

What is the DnsServerAddresses class?
DnsServerAddresses is a class in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsServerAddresses.java.
Where is DnsServerAddresses defined?
DnsServerAddresses is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsServerAddresses.java at line 30.

Analyze Your Own Codebase

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

Try Supermodel Free