nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

这是 InetLayer 的内部类,为 InetLayer 中的异步域名系统 (DNS) 解析提供了辅助 API。

摘要

应用层没有公共接口。

公共函数

Cancel(DNSResolver & resolver)
取消可能仍处于活跃状态的未完成 DNS 查询。
EnqueueRequest(DNSResolver & resolver)
DNSResolver 对象加入队列,以便对指定主机名进行异步 IP 解析。
Init(InetLayer *inet)
AasyncDNSResolverSockets 类的显式初始化程序。
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 对象的引用。

EnqueueRequest

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
)

AasyncDNSResolverSockets 类的显式初始化程序。

这会初始化互斥量和信号量变量,并创建用于处理异步 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 网络或操作系统错误。