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 类的显式反初始化器,负责关闭线程并销毁互斥和信号量变量。

公共函数

取消

INET_ERROR Cancel(
  DNSResolver & resolver
)

取消可能仍然有效的未完成 DNS 查询。

详细信息
参数
[in] resolver
DNSResolver 对象的引用。

排队请求

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

DNSResolver 对象加入指定主机名的异步 IP 地址解析队列。

详细信息
参数
[in] resolver
DNSResolver 对象的引用。
返回值
INET_NO_ERROR
如果 DNS 请求成功加入队列。
INET_ERROR_NO_MEMORY
如果 Inet 层解析器池已满。
other
相应的 POSIX 网络或操作系统错误。

Init

INET_ERROR Init(
  InetLayer *inet
)

AsyncDNSResolverSockets 类的显式初始化器。

这会初始化互斥和信号量变量,并创建用于处理异步 DNS 解析的线程。

详细信息
参数
[in] aInet
指向 InetLayer 对象的指针。
返回值
INET_NO_ERROR
初始化成功。
other
相应的 POSIX 网络或操作系统错误。

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 类的显式反初始化器,负责关闭线程并销毁互斥和信号量变量。

详细信息
返回值
INET_NO_ERROR
如果关闭成功。
other
相应的 POSIX 网络或操作系统错误。