DnsOptions

class DnsOptions


Una classe che configura la funzionalità di risoluzione host di Cronet. Tieni presente che, sebbene ci riferiamo a DNS come al meccanismo più comune utilizzato per brevità, le impostazioni si applicano ad altri mezzi di risoluzione dei nomi host, come la risoluzione del file host.

Cronet risolve i nomi host in due modi: utilizzando il resolver di sistema (utilizzando getaddrinfo fornito dalle librerie di sistema) o utilizzando un resolver personalizzato integrato nello stack di rete utilizzato da Cronet.

Lo stack integrato offre diversi vantaggi rispetto all'utilizzo del resolver di sistema:

  • È stato adattato alle esigenze dello stack di rete, in particolare velocità e stabilità.
  • getaddrinfo è una chiamata di blocco che richiede l'assegnazione di thread di lavoro e rende impossibile l'annullamento (dobbiamo abbandonare il thread fino al completamento della chiamata)
  • L'interfaccia getaddrinfo non fornisce informazioni sulla causa principale degli errori
  • struct addrinfo non fornisce la durata (TTL) degli indirizzi restituiti. Ciò limita la flessibilità della gestione della memorizzazione nella cache (ad es. consentendo l'utilizzo di record DNS obsoleti) e ci impone di affidarci alle cache DNS del sistema operativo o di essere estremamente conservativi con la durata (TTL).
  • Nell'ambito del sistema operativo, getaddrinfo si evolve lentamente. L'utilizzo di uno stack personalizzato consente a Cronet di introdurre più rapidamente funzionalità come il DNS criptato.

La maggior parte della configurazione in questa classe è applicabile solo se viene utilizzato il resolver DNS integrato.

Riepilogo

Tipi nidificati

Builder per DnsOptions.

Un'annotazione per le API che non sono ancora considerate stabili.

Una classe che configura la funzionalità DNS obsoleta di Cronet.

Builder per StaleDnsOptions.

Funzioni pubbliche

builder

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?