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

公共函数

取消

INET_ERROR Cancel(
  DNSResolver & resolver
)

取消可能仍处于活跃状态的未完成 DNS 查询。

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

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

DNSResolver 对象加入队列,以便对指定主机名进行异步 IP 解析。

详细信息
参数
[in] resolver
DNSResolver 对象的引用。
返回值
INET_NO_ERROR
INET_ERROR_NO_MEMORY
如果 Inet 层解析器池已满。
other
适当的 POSIX 网络或操作系统错误。

Init

INET_ERROR Init(
  InetLayer *inet
)

AsynchronousDNSResolverSockets 类的显式初始化程序。

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