nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Il s'agit d'une classe interne à InetLayer qui fournit des API d'assistance pour la résolution DNS (Asynchrone) de noms de domaine dans InetLayer.

Résumé

Aucune interface publique n'est disponible pour la couche d'application.

Fonctions publiques

Cancel(DNSResolver & resolver)
Annulez une requête DNS en attente, qui est peut-être encore active.
EnqueueRequest(DNSResolver & resolver)
Mettez en file d'attente un objet DNSResolver pour la résolution asynchrone des adresses IP d'un nom d'hôte spécifié.
Init(InetLayer *inet)
initialiseur explicite de la classe AsynchronousDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Cette méthode prépare un objet DNSResolver avant la résolution asynchrone.
Shutdown(void)
Il s'agit du déinitialiseur explicite de la classe AsyncDNSResolverSockets. Il se charge d'arrêter les threads et de détruire les variables mutex et semaphore.

Fonctions publiques

Annuler

INET_ERROR Cancel(
  DNSResolver & resolver
)

Annulez une requête DNS en attente, qui est peut-être encore active.

Détails
Paramètres
[in] resolver
Référence à l'objet DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Mettez en file d'attente un objet DNSResolver pour la résolution asynchrone des adresses IP d'un nom d'hôte spécifié.

Détails
Paramètres
[in] resolver
Référence à l'objet DNSResolver.
Valeurs de retour
INET_NO_ERROR
si une requête DNS est bien mise en file d'attente.
INET_ERROR_NO_MEMORY
si le pool de résolveur de couche Inet est saturé.
other
erreur réseau POSIX appropriée ou erreur système.

Init

INET_ERROR Init(
  InetLayer *inet
)

initialiseur explicite de la classe AsynchronousDNSResolverSockets.

Cette opération initialise les variables mutex et semaphore, et crée les threads pour gérer la résolution DNS asynchrone.

Détails
Paramètres
[in] aInet
Un pointeur vers l'objet InetLayer.
Valeurs de retour
INET_NO_ERROR
si l'initialisation réussit.
other
erreur réseau POSIX appropriée ou erreur système.

PrepareDNSResolver

INET_ERROR PrepareDNSResolver(
  DNSResolver & resolver,
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolver::OnResolveCompleteFunct onComplete,
  void *appState
)

Cette méthode prépare un objet DNSResolver avant la résolution asynchrone.

Détails
Paramètres
[in] resolver
Référence à un objet DNSResolver alloué.
[in] hostName
Pointeur vers une chaîne C représentant le nom d'hôte à interroger.
[in] hostNameLen
Longueur de la chaîne du nom d'hôte.
[in] options
Valeur entière contrôlant la façon dont la résolution de l'adresse du nom d'hôte est effectuée. Les valeurs proviennent de l'énumération #DNSOptions.
[in] maxAddrs
Nombre maximal d'adresses à stocker dans la table DNS.
[in] addrArray
Un pointeur vers la table DNS.
[in] onComplete
Pointeur vers la fonction de rappel lorsqu'une requête DNS est terminée.
[in] appState
Pointeur vers l'état de l'application à transmettre à onComplete lorsqu'une requête DNS est terminée.
Valeurs de retour
INET_NO_ERROR
si une requête DNS est gérée avec succès.

Arrêt

INET_ERROR Shutdown(
  void
)

Il s'agit du déinitialiseur explicite de la classe AsyncDNSResolverSockets. Il se charge d'arrêter les threads et de détruire les variables mutex et semaphore.

Détails
Valeurs de retour
INET_NO_ERROR
si l'arrêt réussit.
other
erreur réseau POSIX appropriée ou erreur système.