DnsOptions

public final class DnsOptions


Uma classe que configura a funcionalidade de resolução de host do Cronet. Embora nos refiramos a DNS como o mecanismo mais comum usado para abreviação, as configurações se aplicam a outros meios de resolver nomes de host, como a resolução de arquivos de hosts.

O Cronet resolve nomes de host de duas maneiras: usando o resolvedor do sistema (usando getaddrinfo fornecido por bibliotecas do sistema) ou usando um resolvedor personalizado integrado à pilha de rede usada pelo Cronet.

A pilha integrada oferece várias vantagens em relação ao uso do resolvedor do sistema:

  • Ela foi adaptada às necessidades da pilha de rede, principalmente velocidade e estabilidade.
  • getaddrinfo é uma chamada de bloqueio que exige a dedicação de linhas de execução de worker e impossibilita o cancelamento (precisamos abandonar a linha de execução até que a chamada seja concluída)
  • A interface getaddrinfo não oferece insights sobre a causa raiz das falhas
  • struct addrinfo não fornece TTL (Time To Live) dos endereços retornados. Isso restringe a flexibilidade do tratamento de armazenamento em cache (por exemplo, permitindo o uso de registros DNS obsoletos) e exige que confiemos em caches DNS do SO ou que sejamos extremamente conservadores com o TTL.
  • Como parte do SO, getaddrinfo evolui lentamente. O uso de uma pilha personalizada permite que o Cronet introduza recursos como DNS criptografado mais rapidamente.

A maioria das configurações nessa classe só é aplicável se o resolvedor de DNS integrado for usado.

Resumo

Tipos aninhados

public final class DnsOptions.Builder

Builder para a classe DnsOptions.

Uma anotação para APIs que ainda não são consideradas estáveis.

Uma classe que configura a funcionalidade de DNS obsoleto do Cronet.

Builder para a classe StaleDnsOptions.

Métodos públicos

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