nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Dies ist eine interne Klasse von InetLayer, die Hilfs-APIs für die DNS-Auflösung (Asynchronous Domain Name System) in InetLayer bereitstellt.

Zusammenfassung

Für die Anwendungsebene ist keine öffentliche Schnittstelle verfügbar.

Öffentliche Funktionen

Cancel(DNSResolver & resolver)
Brechen Sie eine ausstehende DNS-Abfrage ab, die möglicherweise noch aktiv ist.
EnqueueRequest(DNSResolver & resolver)
Stellen Sie ein DNSResolver-Objekt für die asynchrone Auflösung von IP-Adressen eines angegebenen Hostnamens in die Warteschlange ein.
Init(InetLayer *inet)
Der explizite Initialisierer für die AsynchronousDNSResolverSockets-Klasse.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Diese Methode bereitet ein DNSResolver-Objekt vor der asynchronen Auflösung vor.
Shutdown(void)
Dies ist der explizite Deinitialisierer der Klasse AsyncDNSResolverSockets. Er sorgt dafür, dass die Threads heruntergefahren und die mutex- und Semaphore-Variablen gelöscht werden.

Öffentliche Funktionen

Abbrechen

INET_ERROR Cancel(
  DNSResolver & resolver
)

Brechen Sie eine ausstehende DNS-Abfrage ab, die möglicherweise noch aktiv ist.

Details
Parameter
[in] resolver
Eine Referenz zum DNSResolver-Objekt.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Stellen Sie ein DNSResolver-Objekt für die asynchrone Auflösung von IP-Adressen eines angegebenen Hostnamens in die Warteschlange ein.

Details
Parameter
[in] resolver
Eine Referenz zum DNSResolver-Objekt.
Rückgabewerte
INET_NO_ERROR
, wenn eine DNS-Anfrage erfolgreich in die Warteschlange gestellt wurde.
INET_ERROR_NO_MEMORY
wenn der Inet-Layer-Resolver voll ist.
other
entsprechenden POSIX-Netzwerk- oder Betriebssystemfehler.

Init

INET_ERROR Init(
  InetLayer *inet
)

Der explizite Initialisierer für die AsynchronousDNSResolverSockets-Klasse.

Dadurch werden die mutex- und Semaphore-Variablen initialisiert und die Threads für die Verarbeitung der asynchronen DNS-Auflösung werden erstellt.

Details
Parameter
[in] aInet
Ein Zeiger auf das InetLayer-Objekt.
Rückgabewerte
INET_NO_ERROR
wenn die Initialisierung erfolgreich ist.
other
entsprechenden POSIX-Netzwerk- oder Betriebssystemfehler.

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
)

Diese Methode bereitet ein DNSResolver-Objekt vor der asynchronen Auflösung vor.

Details
Parameter
[in] resolver
Ein Verweis auf ein zugewiesenes DNSResolver-Objekt.
[in] hostName
Ein Zeiger auf einen C-String, der den abzufragenden Hostnamen darstellt.
[in] hostNameLen
Die Stringlänge des Hostnamens.
[in] options
Ein Ganzzahlwert, der die Auflösung der Hostnamenadresse steuert. Die Werte stammen aus der Aufzählung #DNSOptions.
[in] maxAddrs
Die maximale Anzahl von Adressen, die in der DNS-Tabelle gespeichert werden sollen.
[in] addrArray
Ein Zeiger auf die DNS-Tabelle.
[in] onComplete
Ein Zeiger auf die Callback-Funktion, wenn eine DNS-Anfrage abgeschlossen ist.
[in] appState
Ein Zeiger auf den Anwendungsstatus, der an onComplete übergeben wird, wenn eine DNS-Anfrage abgeschlossen ist.
Rückgabewerte
INET_NO_ERROR
wenn eine DNS-Anfrage erfolgreich verarbeitet wird.

Herunterfahren

INET_ERROR Shutdown(
  void
)

Dies ist der explizite Deinitialisierer der Klasse AsyncDNSResolverSockets. Er sorgt dafür, dass die Threads heruntergefahren und die mutex- und Semaphore-Variablen gelöscht werden.

Details
Rückgabewerte
INET_NO_ERROR
wenn das Herunterfahren erfolgreich war.
other
POSIX-Netzwerk- oder Betriebssystemfehler gefunden.