DnsOptions

public final class DnsOptions


Класс, настраивающий функциональность разрешения имен хостов в Cronet. Обратите внимание, что хотя для краткости мы используем DNS как наиболее распространенный механизм, настройки применимы и к другим способам разрешения имен хостов, таким как разрешение файлов hosts.

Cronet разрешает имена хостов двумя способами: либо используя системный резолвер (с помощью getaddrinfo предоставляемой системными библиотеками), либо используя пользовательский резолвер, встроенный в сетевой стек Cronet.

Встроенный стек предоставляет ряд преимуществ по сравнению с использованием системного резолвера:

  • Оно было разработано с учетом потребностей сетевого стека, в частности, скорости и стабильности.
  • getaddrinfo — это блокирующий вызов, требующий выделения рабочих потоков и делающий отмену невозможной (нам необходимо оставить поток до завершения вызова).
  • Интерфейс getaddrinfo не позволяет получить представление о первопричине сбоев.
  • struct addrinfo не предоставляет информацию о времени жизни (TTL) возвращаемых адресов. Это ограничивает гибкость обработки кэширования (например, позволяет использовать устаревшие DNS-записи) и требует от нас либо полагаться на кэши DNS операционной системы, либо быть крайне осторожными с TTL.
  • getaddrinfo являясь частью операционной системы, развивается медленно. Использование собственного стека технологий позволяет Cronet быстрее внедрять такие функции, как зашифрованный DNS.

Большинство настроек в этом классе применимы только при использовании встроенного DNS-сервера.

Краткое содержание

Вложенные типы

public final class DnsOptions.Builder

Конструктор для DnsOptions .

Аннотация для API, которые ещё не считаются стабильными.

Класс для настройки устаревшей функциональности DNS в Cronet.

Конструктор для StaleDnsOptions .

Общедоступные методы

строитель

public static DnsOptions.Builder builder()

getEnableStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

getPreestablishConnectionsToStaleDnsResults

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()