| java.lang.Object | |
| ↳ | org.chromium.net.DnsOptions |
A class configuring Cronet's host resolution functionality. Note that while we refer to DNS as the most common mechanism being used for brevity, settings apply to other means of
resolving hostnames like hosts file resolution.
Cronet resolve hostnames in two ways - either by using the system resolver (using getaddrinfo provided by system libraries), or by using a custom resolver which is built into the
networking stack Cronet uses.
The built-in stack provides several advantages over using the system resolver:
getaddrinfo is a blocking call which requires dedicating worker threads and makes
cancellation impossible (we need to abandon the thread until the call completes)
getaddrinfo interface gives no insight into the root cause of failures
struct addrinfo provides no TTL (Time To Live) of the returned addresses. This
restricts flexibility of handling caching (e.g. allowing the use of stale DNS records) and
requires us to either rely on OS DNS caches, or be extremely conservative with the TTL.
getaddrinfo evolves slowly. Using a custom stack enables Cronet
to introduce features like encrypted DNS faster.
Most configuration in this class is only applicable if the built-in DNS resolver is used.
| Nested Classes | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| DnsOptions.Builder | Builder for DnsOptions. |
||||||||||
| DnsOptions.Experimental | An annotation for APIs which are not considered stable yet. | ||||||||||
| DnsOptions.StaleDnsOptions | A class configuring Cronet's stale DNS functionality. | ||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||||