DnsOptions

public final class DnsOptions


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

Cronet risolve i nomi host in due modi: utilizzando il resolver di sistema (tramite 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 per 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).
  • Come parte 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 delle configurazioni di questa classe è applicabile solo se viene utilizzato il resolver DNS integrato.

Riepilogo

Tipi nidificati

public final class DnsOptions.Builder

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.

Metodi pubblici

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