nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

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

摘要

應用程式層沒有可用的公開介面。

公開函式

Cancel(DNSResolver & resolver)
取消仍在執行中的 DNS 查詢。
EnqueueRequest(DNSResolver & resolver)
DNSResolver 物件排入佇列,取得指定主機名稱的非同步 IP 位址解析。
Init(InetLayer *inet)
AsynchronousDNSResolverSockets 類別的明確初始化器。
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 Layer 解析器集區已滿
other
正確的 POSIX 網路或 OS 錯誤。

Init

INET_ERROR Init(
  InetLayer *inet
)

AsynchronousDNSResolverSockets 類別的明確初始化器。

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

詳細資料
參數
[in] aInet
指向 InetLayer 物件的指標。
傳回值
INET_NO_ERROR
則會傳回 true
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 錯誤。