DnsOptions

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

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.

Funções públicas

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?