nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

這是 InetLayer 的內部類別,可提供 InetLayer 中的非同步網域名稱系統 (DNS) 解析輔助 API。

摘要

應用程式層沒有公用介面。

公用函式

Cancel(DNSResolver & resolver)
取消仍在處理中的 DNS 查詢。
EnqueueRequest(DNSResolver & resolver)
DNSResolver 物件排入佇列,以便播放指定主機名稱的非同步 IP 位址解析。
Init(InetLayer *inet)
AsyncDNSResolverSockets 類別的明確初始化器。
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
這個方法可在開始非同步解析前,準備 DNSResolver 物件。
Shutdown(void)
這是 AsyncDNSResolverSockets 類別的明確解碼器,負責關閉執行緒並刪除互斥鎖 和 semaphore 變數。

公用函式

取消

INET_ERROR Cancel(
  DNSResolver & resolver
)

取消仍在處理中的 DNS 查詢。

詳細說明
參數
[in] resolver
DNSResolver 物件的參照。

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

DNSResolver 物件排入佇列,以便播放指定主機名稱的非同步 IP 位址解析。

詳細說明
參數
[in] resolver
DNSResolver 物件的參照。
傳回值
INET_NO_ERROR
表示 DNS 要求已成功排入佇列。
INET_ERROR_NO_MEMORY
如果 Inet 層解析器集區已滿
other
適當的 POSIX 網路或 OS 錯誤。

Init

INET_ERROR Init(
  InetLayer *inet
)

AsyncDNSResolverSockets 類別的明確初始化器。

這會初始化 mutex 和 semaphore 變數,並建立執行緒來處理非同步 DNS 解析。

詳細說明
參數
[in] aInet
指向 InetLayer 物件的指標。
傳回值
INET_NO_ERROR
表示初始化成功
other
適當的 POSIX 網路或 OS 錯誤。

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
)

這個方法可在開始非同步解析前,準備 DNSResolver 物件。

詳細說明
參數
[in] resolver
分配的 DNSResolver 物件參照。
[in] hostName
指向 C 字串的指標,代表要查詢的主機名稱。
[in] hostNameLen
主機名稱的字串長度。
[in] options
控制主機名稱位址解析方式的整數值。此值來自 #DNSOptions 列舉。
[in] maxAddrs
要儲存在 DNS 資料表中的位址數量上限。
[in] addrArray
DNS 資料表的指標。
[in] onComplete
DNS 要求完成後的回呼函式指標。
[in] appState
DNS 要求完成時,要傳遞至 onComplete 的應用程式狀態指標。
傳回值
INET_NO_ERROR
表示已成功處理 DNS 要求。

關機

INET_ERROR Shutdown(
  void
)

這是 AsyncDNSResolverSockets 類別的明確解碼器,負責關閉執行緒並刪除互斥鎖 和 semaphore 變數。

詳細說明
傳回值
INET_NO_ERROR
other
適當的 POSIX 網路或 OS 錯誤。