nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Dies ist eine interne Klasse für 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)
Ausstehende DNS-Abfrage abbrechen, die möglicherweise noch aktiv ist.
EnqueueRequest(DNSResolver & resolver)
Ein DNSResolver-Objekt für die asynchrone IP-Adressauflösung eines bestimmten Hostnamens in die Warteschlange stellen.
Init(InetLayer *inet)
Der explizite Initialisierer für die Klasse AsynchronousDNSResolverSockets.
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 AsyncDNSResolverSockets-Klasse, der die Threads herunterfährt und die Mutex- und Semaphore-Variablen löscht.

Öffentliche Funktionen

Abbrechen

INET_ERROR Cancel(
  DNSResolver & resolver
)

Ausstehende DNS-Abfrage abbrechen, die möglicherweise noch aktiv ist.

Details
Parameter
[in] resolver
Ein Verweis zum Objekt DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Ein DNSResolver-Objekt für die asynchrone IP-Adressauflösung eines bestimmten Hostnamens in die Warteschlange stellen.

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

Init

INET_ERROR Init(
  InetLayer *inet
)

Der explizite Initialisierer für die Klasse AsynchronousDNSResolverSockets.

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

Details
Parameter
[in] aInet
Ein Zeiger auf das InetLayer-Objekt.
Rückgabewerte
INET_NO_ERROR
wenn die Initialisierung erfolgreich war.
other
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 ganzzahliger Wert, der steuert, wie die Auflösung von Hostnamen-Adressen durchgeführt wird. Die Werte stammen aus der #DNSOptions-Enum.
[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 bearbeitet wurde.

Herunterfahren

INET_ERROR Shutdown(
  void
)

Dies ist der explizite Deinitialisierer der AsyncDNSResolverSockets-Klasse, der die Threads herunterfährt und die Mutex- und Semaphore-Variablen löscht.

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