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 查詢類型。

Typedefs

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

服務類型解析主機名稱。

Typedefs

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
空值的完整服務名稱 (例如「_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
空值的完整服務名稱 (例如「_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。

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
)

通知找到的主機。

外部查詢解析器 (例如 Discovery Proxy) 應呼叫這個函式來通知已訂閱主機的 OpenThread 核心。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aHostFullName
以空值結束的完整主機名稱。
[in] aHostInfo
指向探索服務執行個體資訊的指標。

otDnssdQueryHandleDiscoveredServiceInstance

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

通知找到的服務執行個體。

外部查詢解析器 (例如 Discovery Proxy) 應呼叫這個函式,來通知已訂閱的服務或服務執行個體的 OpenThread 核心。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aServiceFullName
以空值結束的完整服務名稱。
[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 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源