DNS-SD 服务器

此模块包含适用于 DNS-SD 服务器的 API。

摘要

枚举

otDnssdQueryType{
  OT_DNSSD_QUERY_TYPE_NONE = 0,
  OT_DNSSD_QUERY_TYPE_BROWSE = 1,
  OT_DNSSD_QUERY_TYPE_RESOLVE = 2,
  OT_DNSSD_QUERY_TYPE_RESOLVE_HOST = 3
}
枚举
指定 DNS-SD 查询类型。

类型定义符

otDnssdCounters typedef
包含 DNS-SD 服务器的计数器。
otDnssdHostInfo typedef
表示为 DNS-SD 查询发现的主机的信息。
otDnssdQuery typedef
void
此不透明类型表示 DNS-SD 查询。
otDnssdQuerySubscribeCallback)(void *aContext, const char *aFullName) typedef
void(*
在 DNS-SD 查询订阅以下任一项时调用:
otDnssdQueryUnsubscribeCallback)(void *aContext, const char *aFullName) typedef
void(*
在 DNS-SD 查询退订以下任一项时调用:
otDnssdServiceInstanceInfo typedef
表示针对 DNS-SD 查询发现的服务实例的信息。

函数

otDnssdGetCounters(otInstance *aInstance)
const otDnssdCounters *
返回 DNS-SD 服务器的计数器。
otDnssdGetNextQuery(otInstance *aInstance, const otDnssdQuery *aQuery)
const otDnssdQuery *
在 DNS-SD 服务器中获取下一个查询。
otDnssdGetQueryTypeAndName(const otDnssdQuery *aQuery, char(*) aNameOutput[OT_DNS_MAX_NAME_SIZE])
获取特定查询的 DNS-SD 查询类型和名称。
otDnssdQueryHandleDiscoveredHost(otInstance *aInstance, const char *aHostFullName, otDnssdHostInfo *aHostInfo)
void
通知已发现的主机。
otDnssdQueryHandleDiscoveredServiceInstance(otInstance *aInstance, const char *aServiceFullName, otDnssdServiceInstanceInfo *aInstanceInfo)
void
通知已发现的服务实例。
otDnssdQuerySetCallbacks(otInstance *aInstance, otDnssdQuerySubscribeCallback aSubscribe, otDnssdQueryUnsubscribeCallback aUnsubscribe, void *aContext)
void
设置 DNS-SD 服务器查询回调。
otDnssdUpstreamQueryIsEnabled(otInstance *aInstance)
bool
返回 DNSSD 服务器是否会将 DNS 查询转发到平台 DNS 上游 API。
otDnssdUpstreamQuerySetEnabled(otInstance *aInstance, bool aEnabled)
void
启用或停用将 DNS 查询转发到平台 DNS 上游 API 的功能。

结构体

otDnssdCounters

包含 DNS-SD 服务器的计数器。

otDnssdHostInfo

表示为 DNS-SD 查询发现的主机的信息。

otDnssdServiceInstanceInfo

表示针对 DNS-SD 查询发现的服务实例的信息。

枚举

otDnssdQueryType

 otDnssdQueryType

指定 DNS-SD 查询类型。

属性
OT_DNSSD_QUERY_TYPE_BROWSE

服务类型浏览服务。

OT_DNSSD_QUERY_TYPE_NONE

未指定服务类型。

OT_DNSSD_QUERY_TYPE_RESOLVE

服务类型解析服务实例。

OT_DNSSD_QUERY_TYPE_RESOLVE_HOST

服务类型解析主机名。

类型定义符

otDnssdCounters

struct otDnssdCounters otDnssdCounters

包含 DNS-SD 服务器的计数器。

otDnssdHostInfo

struct otDnssdHostInfo otDnssdHostInfo

表示为 DNS-SD 查询发现的主机的信息。

otDnssdQuery

void otDnssdQuery

此不透明类型表示 DNS-SD 查询。

otDnssdQuerySubscribeCallback

void(* otDnssdQuerySubscribeCallback)(void *aContext, const char *aFullName)

在 DNS-SD 查询订阅以下任一项时调用:

  1. 服务名称。
  2. 服务实例名称。
  3. 主机名

DNS-SD 查询实现负责识别 aFullName。如果 aFullName 是服务名称或服务实例名称,则 DNS-SD 查询实现应发现相应的服务实例信息,并使用 otDnssdQueryHandleDiscoveredServiceInstance 通知 DNS-SD 服务器。如果 aFullName 是主机名,DNS-SD 查询实现应发现主机信息,并使用 otDnssdQueryHandleDiscoveredHost 通知 DNS-SD 服务器。

具体说明
参数
[in] aContext
指向应用特定上下文的指针。
[in] aFullName
以 null 结尾的完整服务名称(例如“_ipps._tcp.default.service.arpa.”)、完整服务实例名称(例如“OpenThread._ipps._tcp.default.service.arpa.”)或完整主机名(例如“ot-host.default.service.arpa.”)。
另请参阅
otDnssdQueryHandleDiscoveredServiceInstance
otDnssdQueryHandleDiscoveredHost

otDnssdQueryUnsubscribeCallback

void(* otDnssdQueryUnsubscribeCallback)(void *aContext, const char *aFullName)

在 DNS-SD 查询退订以下任一项时调用:

  1. 服务名称。
  2. 服务实例名称。
  3. 主机名

DNS-SD 查询实现负责识别 aFullName 是什么。

具体说明
参数
[in] aContext
指向应用特定上下文的指针。
[in] aFullName
以 null 结尾的完整服务名称(例如“_ipps._tcp.default.service.arpa.”)或完整服务实例名称(例如“OpenThread._ipps._tcp.default.service.arpa.”)。

otDnssdServiceInstanceInfo

struct otDnssdServiceInstanceInfo otDnssdServiceInstanceInfo

表示针对 DNS-SD 查询发现的服务实例的信息。

函数

otDnssdGetCounters

const otDnssdCounters * otDnssdGetCounters(
  otInstance *aInstance
)

返回 DNS-SD 服务器的计数器。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
返回值
指向 DNS-SD 服务器计数器的指针。

otDnssdGetNextQuery

const otDnssdQuery * otDnssdGetNextQuery(
  otInstance *aInstance,
  const otDnssdQuery *aQuery
)

在 DNS-SD 服务器中获取下一个查询。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aQuery
查询指针。传递 NULL 以获取第一个查询。
返回值
指向查询的指针,如果没有其他查询,则为 NULL。

otDnssdGetQueryTypeAndName

otDnssdQueryType otDnssdGetQueryTypeAndName(
  const otDnssdQuery *aQuery,
  char(*) aNameOutput[OT_DNS_MAX_NAME_SIZE]
)

获取特定查询的 DNS-SD 查询类型和名称。

具体说明
参数
[in] aQuery
otDnssdGetNextQuery 获取的查询指针。
[out] aNameOutput
名称输出缓冲区,长度应为 OT_DNS_MAX_NAME_SIZE 字节。
返回值
DNS-SD 查询类型。

otDnssdQueryHandleDiscoveredHost

void otDnssdQueryHandleDiscoveredHost(
  otInstance *aInstance,
  const char *aHostFullName,
  otDnssdHostInfo *aHostInfo
)

通知已发现的主机。

外部查询解析器(例如发现代理)应调用此函数,以通知所订阅主机的 OpenThread 核心。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aHostFullName
以 null 结尾的完整主机名。
[in] aHostInfo
指向已发现的服务实例信息的指针。

otDnssdQueryHandleDiscoveredServiceInstance

void otDnssdQueryHandleDiscoveredServiceInstance(
  otInstance *aInstance,
  const char *aServiceFullName,
  otDnssdServiceInstanceInfo *aInstanceInfo
)

通知已发现的服务实例。

外部查询解析器(例如发现代理)应调用此函数,以通知 OpenThread 核心已订阅的服务或服务实例。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aServiceFullName
以 null 结尾的完整服务名称。
[in] aInstanceInfo
指向已发现的服务实例信息的指针。

otDnssdQuerySetCallbacks

void otDnssdQuerySetCallbacks(
  otInstance *aInstance,
  otDnssdQuerySubscribeCallback aSubscribe,
  otDnssdQueryUnsubscribeCallback aUnsubscribe,
  void *aContext
)

设置 DNS-SD 服务器查询回调。

DNS-SD 服务器会调用 aSubscribe 来订阅服务或服务实例以解析 DNS-SD 查询,并在查询解析或超时后调用 aUnsubscribe 来退订。

具体说明
参数
[in] aInstance
OpenThread 实例结构。
[in] aSubscribe
指向用于订阅服务或服务实例的回调函数的指针。
[in] aUnsubscribe
指向用于退订服务或服务实例的回调函数的指针。
[in] aContext
指向应用特定上下文的指针。

otDnssdUpstreamQueryIsEnabled

bool otDnssdUpstreamQueryIsEnabled(
  otInstance *aInstance
)

返回 DNSSD 服务器是否会将 DNS 查询转发到平台 DNS 上游 API。

启用 OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
TRUE
DNSSD 服务器是否转发 DNS 查询。
FALSE
DNSSD 服务器不转发 DNS 查询。
另请参阅
otDnssdUpstreamQuerySetEnabled

otDnssdUpstreamQuerySetEnabled

void otDnssdUpstreamQuerySetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

启用或停用将 DNS 查询转发到平台 DNS 上游 API 的功能。

启用 OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
用于启用/停用向上游转发 DNS 查询的布尔值。
另请参阅
otPlatDnsStartUpstreamQuery
otPlatDnsCancelUpstreamQuery
otPlatDnsUpstreamQueryDone

资源

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