DnsOptions

public final class DnsOptions


Klasa konfigurująca funkcję rozpoznawania hostów w Cronet. Pamiętaj, że chociaż dla uproszczenia używamy terminu DNS jako najpopularniejszego mechanizmu, ustawienia dotyczą też innych sposobów rozpoznawania nazw hostów, np. rozpoznawania z pliku hosts.

Cronet rozpoznaje nazwy hostów na 2 sposoby – za pomocą systemowego resolvera (przy użyciu getaddrinfo udostępnianej przez biblioteki systemowe) lub za pomocą niestandardowego resolvera wbudowanego w stos sieciowy używany przez Cronet.

Wbudowany stos ma kilka zalet w porównaniu z używaniem systemowego resolvera:

  • Został dostosowany do potrzeb stosu sieciowego, zwłaszcza pod względem szybkości i stabilności.
  • getaddrinfo to wywołanie blokujące, które wymaga dedykowanych wątków roboczych i uniemożliwia anulowanie (musimy porzucić wątek do czasu zakończenia wywołania).
  • Interfejs getaddrinfo nie pozwala poznać głównej przyczyny awarii.
  • struct addrinfo nie podaje czasu życia (TTL) zwracanych adresów. Ogranicza to elastyczność obsługi buforowania (np. umożliwiając używanie nieaktualnych rekordów DNS) i wymaga od nas polegania na pamięci podręcznej DNS systemu operacyjnego lub bardzo konserwatywnego podejścia do czasu życia.
  • Funkcja getaddrinfo jest częścią systemu operacyjnego i rozwija się powoli. Używanie niestandardowego stosu umożliwia Cronet szybsze wprowadzanie funkcji takich jak szyfrowany DNS.

Większość konfiguracji w tej klasie ma zastosowanie tylko wtedy, gdy używany jest wbudowany resolver DNS.

Podsumowanie

Typy zagnieżdżone

public final class DnsOptions.Builder

Kreator DnsOptions.

Adnotacja do interfejsów API, które nie są jeszcze uważane za stabilne.

Klasa konfigurująca funkcję nieaktualnego DNS w Cronet.

Kreator StaleDnsOptions.

Metody publiczne

builder

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()

getStaleDnsOptions

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()