DnsOptions

public final 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 couramment 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

public final class DnsOptions.Builder

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.

Méthodes publiques

compilateur

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