DnsOptions

class DnsOptions


Classe qui configure la fonctionnalité de résolution d'hôte de Cronet. Bien que nous fassions référence à DNS comme mécanisme le plus courant utilisé par souci de concision, les paramètres s'appliquent à d'autres moyens de résoudre les noms d'hôte, comme la résolution de fichiers hôtes.

Cronet résout les noms d'hôte de deux manières : en utilisant le résolveur système (avec getaddrinfo fourni par les bibliothèques système) ou en utilisant un résolveur personnalisé intégré à la pile réseau utilisée par Cronet.

La pile intégrée présente plusieurs avantages par rapport à l'utilisation du résolveur système :

  • Elle a été adaptée aux besoins de la pile réseau, en particulier en termes de vitesse et de stabilité.
  • getaddrinfo est un appel bloquant qui nécessite de dédier des threads de travail et rend l'annulation impossible (nous devons abandonner le thread jusqu'à la fin de l'appel).
  • L'interface getaddrinfo ne fournit aucune information sur la cause première des échecs.
  • struct addrinfo ne fournit pas de TTL (Time To Live) pour les adresses renvoyées. Cela limite la flexibilité de la gestion de la mise en cache (par exemple, en autorisant l'utilisation d'enregistrements DNS obsolètes) et nous oblige à nous appuyer sur les caches DNS du système d'exploitation ou à être extrêmement conservateurs avec le TTL.
  • En tant que partie du système d'exploitation, getaddrinfo évolue lentement. L'utilisation d'une pile personnalisée permet à Cronet d'introduire plus rapidement des fonctionnalités telles que le DNS chiffré.

La plupart des configurations de cette classe ne s'appliquent que si le résolveur DNS intégré est utilisé.

Résumé

Types imbriqués

Compilateur pour DnsOptions.

Annotation pour les API qui ne sont pas encore considérées comme stables.

Classe qui configure la fonctionnalité DNS obsolète de Cronet.

Compilateur pour StaleDnsOptions.

Fonctions publiques

compilateur

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?