nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Questa è una classe interna di InetLayer che fornisce API helper per la risoluzione DNS (Asynchronous Domain Name System) in InetLayer.

Riepilogo

Non è disponibile un'interfaccia pubblica per il livello di applicazione.

Funzioni pubbliche

Cancel(DNSResolver & resolver)
Annulla una query DNS in sospeso che potrebbe essere ancora attiva.
EnqueueRequest(DNSResolver & resolver)
Accoda un oggetto DNSResolver per la risoluzione asincrona dell'indirizzo IP di un nome host specificato.
Init(InetLayer *inet)
L'inizializzatore esplicito per 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)
Questo metodo prepara un oggetto DNSResolver prima della risoluzione asincrona.
Shutdown(void)
Questo è il deinizializzatore esplicito della classe AsyncDNSResolverSockets e si occupa di arrestare i thread e distruggere le variabili mutex e semaphore.

Funzioni pubbliche

Annulla

INET_ERROR Cancel(
  DNSResolver & resolver
)

Annulla una query DNS in sospeso che potrebbe essere ancora attiva.

Dettagli
Parametri
[in] resolver
Un riferimento all'oggetto DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Accoda un oggetto DNSResolver per la risoluzione asincrona dell'indirizzo IP di un nome host specificato.

Dettagli
Parametri
[in] resolver
Un riferimento all'oggetto DNSResolver.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS viene accodata correttamente.
INET_ERROR_NO_MEMORY
se il pool di resolver dello strato Inet è pieno.
other
la rete POSIX o l'errore del sistema operativo appropriato.

Init

INET_ERROR Init(
  InetLayer *inet
)

L'inizializzatore esplicito per la classe AsynchronousDNSResolverSockets.

Questa operazione inizializza le variabili mutex e semaphore e crea i thread per la gestione della risoluzione DNS asincrona.

Dettagli
Parametri
[in] aInet
Un puntatore all'oggetto InetLayer.
Valori restituiti
INET_NO_ERROR
se l'inizializzazione va a buon fine.
other
la rete POSIX o l'errore del sistema operativo appropriato.

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
)

Questo metodo prepara un oggetto DNSResolver prima della risoluzione asincrona.

Dettagli
Parametri
[in] resolver
Un riferimento a un oggetto DNSResolver allocato.
[in] hostName
Un puntatore a una stringa C che rappresenta il nome host su cui eseguire la query.
[in] hostNameLen
La lunghezza della stringa del nome host.
[in] options
Un valore intero che controlla il modo in cui viene eseguita la risoluzione dell'indirizzo del nome host. I valori provengono dall'enumerazione #DNSOptions.
[in] maxAddrs
Il numero massimo di indirizzi da archiviare nella tabella DNS.
[in] addrArray
Un puntatore alla tabella DNS.
[in] onComplete
Un puntatore alla funzione di callback al completamento di una richiesta DNS.
[in] appState
Un puntatore allo stato dell'applicazione da passare a onComplete al completamento di una richiesta DNS.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS viene gestita correttamente.

Arresto

INET_ERROR Shutdown(
  void
)

Questo è il deinizializzatore esplicito della classe AsyncDNSResolverSockets e si occupa di arrestare i thread e distruggere le variabili mutex e semaphore.

Dettagli
Valori restituiti
INET_NO_ERROR
se la chiusura viene eseguita correttamente.
other
la rete POSIX o l'errore del sistema operativo appropriato.