DNS - 平台

本模块包含用于向上游 DNS 服务器发送递归 DNS 查询的平台抽象。

摘要

类型定义符

otPlatDnsUpstreamQuery typedef
此不透明类型表示上游 DNS 查询事务。

函数

otPlatDnsCancelUpstreamQuery(otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn)
void
取消上游查询的事务。
otPlatDnsStartUpstreamQuery(otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn, const otMessage *aQuery)
void
启动一项上游查询事务。
otPlatDnsUpstreamQueryDone(otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn, otMessage *aResponse)
void
平台会调用此函数来完成 DNS 查询。

类型定义符

otPlatDnsUpstreamQuery

struct otPlatDnsUpstreamQuery otPlatDnsUpstreamQuery

此不透明类型表示上游 DNS 查询事务。

函数

otPlatDnsCancelUpstreamQuery

void otPlatDnsCancelUpstreamQuery(
  otInstance *aInstance,
  otPlatDnsUpstreamQuery *aTxn
)

取消上游查询的事务。

平台必须调用 otPlatDnsUpstreamQueryDone 才能释放资源。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aTxn
指向不透明 DNS 查询事务对象的指针。

otPlatDnsStartUpstreamQuery

void otPlatDnsStartUpstreamQuery(
  otInstance *aInstance,
  otPlatDnsUpstreamQuery *aTxn,
  const otMessage *aQuery
)

启动一项上游查询事务。

  • 如果成功(以及 DNS 协议消息表示的错误),平台应调用 otPlatDnsUpstreamQueryDone
  • OpenThread 核心可通过调用 otPlatDnsCancelUpstreamQuery 取消(可能超时)查询事务,但平台不得对已取消的事务调用 otPlatDnsUpstreamQueryDone

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aTxn
指向不透明 DNS 查询事务对象的指针。
[in] aQuery
应发送到上游 DNS 服务器中的 DNS 载荷的消息缓冲区。

otPlatDnsUpstreamQueryDone

void otPlatDnsUpstreamQueryDone(
  otInstance *aInstance,
  otPlatDnsUpstreamQuery *aTxn,
  otMessage *aResponse
)

平台会调用此函数来完成 DNS 查询。

事务将被释放,因此平台不得对同一事务调用两次。此函数将 aResponse 的所有权传递给 OpenThread 堆栈。

平台可以传递 nullptr,在没有响应的情况下关闭事务。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aTxn
指向不透明 DNS 查询事务对象的指针。
[in] aResponse
DNS 响应载荷的消息缓冲区或 nullptr,用于在无响应的情况下关闭事务。

资源

OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源