@UnstableApi public final class UnixResolverDnsServerAddressStreamProvider extends java.lang.Object implements DnsServerAddressStreamProvider
Modifier and Type | Field and Description |
---|---|
(package private) static int |
DEFAULT_NDOTS |
private DnsServerAddresses |
defaultNameServerAddresses |
private static java.lang.String |
DOMAIN_ROW_LABEL |
private java.util.Map<java.lang.String,DnsServerAddresses> |
domainToNameServerStreamMap |
private static java.lang.String |
ETC_RESOLV_CONF_FILE |
private static java.lang.String |
ETC_RESOLVER_DIR |
private static InternalLogger |
logger |
private static java.lang.String |
NAMESERVER_ROW_LABEL |
private static java.lang.String |
NDOTS_LABEL |
private static java.lang.String |
OPTIONS_ROW_LABEL |
private static java.lang.String |
PORT_ROW_LABEL |
private static java.lang.String |
SORTLIST_ROW_LABEL |
Constructor and Description |
---|
UnixResolverDnsServerAddressStreamProvider(java.io.File etcResolvConf,
java.io.File... etcResolverFiles)
Parse a file of the format /etc/resolv.conf which may contain
the default DNS server to use, and also overrides for individual domains.
|
UnixResolverDnsServerAddressStreamProvider(java.lang.String etcResolvConf,
java.lang.String etcResolverDir)
Parse a file of the format /etc/resolv.conf which may contain
the default DNS server to use, and also overrides for individual domains.
|
Modifier and Type | Method and Description |
---|---|
private boolean |
mayOverrideNameServers() |
DnsServerAddressStream |
nameServerAddressStream(java.lang.String hostname)
Ask this provider for the name servers to query for
hostname . |
private static java.util.Map<java.lang.String,DnsServerAddresses> |
parse(java.io.File... etcResolverFiles) |
(package private) static int |
parseEtcResolverFirstNdots()
Parse a file of the format /etc/resolv.conf and return the
value corresponding to the first ndots in an options configuration.
|
(package private) static int |
parseEtcResolverFirstNdots(java.io.File etcResolvConf)
Parse a file of the format /etc/resolv.conf and return the
value corresponding to the first ndots in an options configuration.
|
(package private) static DnsServerAddressStreamProvider |
parseSilently()
Attempt to parse
/etc/resolv.conf and files in the /etc/resolver directory by default. |
private static void |
putIfAbsent(java.util.Map<java.lang.String,DnsServerAddresses> domainToNameServerStreamMap,
java.lang.String domainName,
DnsServerAddresses addresses) |
private static void |
putIfAbsent(java.util.Map<java.lang.String,DnsServerAddresses> domainToNameServerStreamMap,
java.lang.String domainName,
java.util.List<java.net.InetSocketAddress> addresses) |
private static final InternalLogger logger
private static final java.lang.String ETC_RESOLV_CONF_FILE
private static final java.lang.String ETC_RESOLVER_DIR
private static final java.lang.String NAMESERVER_ROW_LABEL
private static final java.lang.String SORTLIST_ROW_LABEL
private static final java.lang.String OPTIONS_ROW_LABEL
private static final java.lang.String DOMAIN_ROW_LABEL
private static final java.lang.String PORT_ROW_LABEL
private static final java.lang.String NDOTS_LABEL
static final int DEFAULT_NDOTS
private final DnsServerAddresses defaultNameServerAddresses
private final java.util.Map<java.lang.String,DnsServerAddresses> domainToNameServerStreamMap
public UnixResolverDnsServerAddressStreamProvider(java.io.File etcResolvConf, java.io.File... etcResolverFiles) throws java.io.IOException
etcResolvConf
- /etc/resolv.conf.etcResolverFiles
- List of files of the format defined in
/etc/resolver.java.io.IOException
- If an error occurs while parsing the input files.public UnixResolverDnsServerAddressStreamProvider(java.lang.String etcResolvConf, java.lang.String etcResolverDir) throws java.io.IOException
etcResolvConf
- /etc/resolv.conf.etcResolverDir
- Directory containing files of the format defined in
/etc/resolver.java.io.IOException
- If an error occurs while parsing the input files.static DnsServerAddressStreamProvider parseSilently()
/etc/resolv.conf
and files in the /etc/resolver
directory by default.
A failure to parse will return DefaultDnsServerAddressStreamProvider
.public DnsServerAddressStream nameServerAddressStream(java.lang.String hostname)
DnsServerAddressStreamProvider
hostname
.nameServerAddressStream
in interface DnsServerAddressStreamProvider
hostname
- The hostname for which to lookup the DNS server addressed to use.
If this is the final DnsServerAddressStreamProvider
to be queried then generally empty
string or '.'
correspond to the default DnsServerAddressStream
.DnsServerAddressStream
which should be used to resolve hostname
.private boolean mayOverrideNameServers()
private static java.util.Map<java.lang.String,DnsServerAddresses> parse(java.io.File... etcResolverFiles) throws java.io.IOException
java.io.IOException
private static void putIfAbsent(java.util.Map<java.lang.String,DnsServerAddresses> domainToNameServerStreamMap, java.lang.String domainName, java.util.List<java.net.InetSocketAddress> addresses)
private static void putIfAbsent(java.util.Map<java.lang.String,DnsServerAddresses> domainToNameServerStreamMap, java.lang.String domainName, DnsServerAddresses addresses)
static int parseEtcResolverFirstNdots() throws java.io.IOException
DEFAULT_NDOTS
if not
found.java.io.IOException
- If a failure occurs parsing the file.static int parseEtcResolverFirstNdots(java.io.File etcResolvConf) throws java.io.IOException
etcResolvConf
- a file of the format /etc/resolv.conf.DEFAULT_NDOTS
if not
found.java.io.IOException
- If a failure occurs parsing the file.