DnsOptions

public final class DnsOptions


Una clase que configura la funcionalidad de resolución de host de Cronet. Ten en cuenta que, si bien nos referimos a DNS como el mecanismo más común que se usa para abreviar, la configuración se aplica a otros medios para resolver nombres de host, como la resolución de archivos de hosts.

Cronet resuelve nombres de host de dos maneras: ya sea usando el agente de resolución del sistema (con getaddrinfo proporcionado por las bibliotecas del sistema) o usando un agente de resolución personalizado que está integrado en la pila de red que usa Cronet.

La pila integrada proporciona varias ventajas en comparación con el uso del agente de resolución del sistema:

  • Se adaptó a las necesidades de la pila de redes, en particular, la velocidad y la estabilidad.
  • getaddrinfo es una llamada de bloqueo que requiere la dedicación de subprocesos de trabajo y hace que la cancelación sea imposible (debemos abandonar el subproceso hasta que se complete la llamada).
  • La interfaz getaddrinfo no proporciona información sobre la causa raíz de las fallas.
  • struct addrinfo no proporciona TTL (tiempo de actividad) de las direcciones que se muestran. Esto restringe la flexibilidad del manejo del almacenamiento en caché (p.ej., permite el uso de registros DNS obsoletos) y requiere que dependamos de las memorias caché de DNS del SO o que seamos extremadamente conservadores con el TTL.
  • Como parte del SO, getaddrinfo evoluciona lentamente. El uso de una pila personalizada permite que Cronet introduzca funciones como el DNS encriptado más rápido.

La mayor parte de la configuración de esta clase solo se aplica si se usa el solucionador de DNS integrado.

Resumen

Tipos anidados

public final class DnsOptions.Builder

Compilador para DnsOptions.

Una anotación para las APIs que aún no se consideran estables.

Una clase que configura la funcionalidad de DNS obsoleta de Cronet.

Compilador para StaleDnsOptions.

Métodos públicos

compilador

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