DnsOptions

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 modułu rozpoznawania (przy użyciu getaddrinfo udostępnianej przez biblioteki systemowe) lub za pomocą niestandardowego modułu rozpoznawania wbudowanego w stos sieciowy używany przez Cronet.

Wbudowany stos ma kilka zalet w porównaniu z używaniem systemowego modułu rozpoznawania:

  • 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 przydzielenia wątków roboczych i uniemożliwia anulowanie (musimy porzucić wątek, dopóki wywołanie się nie zakończy).
  • 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.
  • 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 moduł rozpoznawania DNS.

Podsumowanie

Typy zagnieżdżone

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.

Funkcje publiczne

monter

java-static fun builder(): DnsOptions.Builder!

getEnableStaleDns

fun getEnableStaleDns(): Boolean?

getPersistHostCache

fun getPersistHostCache(): Boolean?

getPersistHostCachePeriodMillis

fun getPersistHostCachePeriodMillis(): Long?

getPreestablishConnectionsToStaleDnsResults

fun getPreestablishConnectionsToStaleDnsResults(): Boolean?

getStaleDnsOptions

fun getStaleDnsOptions(): DnsOptions.StaleDnsOptions?

getUseBuiltInDnsResolver

fun getUseBuiltInDnsResolver(): Boolean?