Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

DNSv6

該模塊包括控制DNS通信的功能。

概括

僅當啟用功能OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE ,此模塊中的功能OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE

枚舉

otDnsRecursionFlag {
OT_DNS_FLAG_UNSPECIFIED = 0,
OT_DNS_FLAG_RECURSION_DESIRED = 1,
OT_DNS_FLAG_NO_RECURSION = 2
}
枚舉
此枚舉類型表示otDnsQueryConfig的“所需的遞歸”(RD)標誌。

類型定義

otDnsAddressCallback )(otError aError, const otDnsAddressResponse *aResponse, void *aContext)類型定義
void(*
當收到地址解析查詢的DNS響應時,將調用此函數指針。
otDnsAddressResponse類型定義
此類型是對地址解析DNS查詢的響應的不透明表示。
otDnsBrowseCallback )(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)類型定義
void(*
當收到瀏覽(服務實例枚舉)查詢的DNS響應時,將調用此函數指針。
otDnsBrowseResponse類型定義
此類型是對瀏覽(服務實例枚舉)DNS查詢的響應的不透明表示。
otDnsQueryConfig類型定義
此結構表示DNS查詢配置。
otDnsServiceCallback )(otError aError, const otDnsServiceResponse *aResponse, void *aContext)類型定義
void(*
當收到服務實例解析查詢的DNS響應時,將調用此函數指針。
otDnsServiceInfo類型定義
此結構提供有關DNS服務實例的信息。
otDnsServiceResponse類型定義
此類型是對服務實例解析DNS查詢的響應的不透明表示。

功能

otDnsAddressResponseGetAddress (const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
此功能獲取與地址解析DNS響應關聯的IPv6地址。
otDnsAddressResponseGetHostName (const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
此功能獲取與地址解析DNS響應關聯的完整主機名。
otDnsBrowseResponseGetHostAddress (const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
此功能從DNS瀏覽(服務實例枚舉)響應獲取主機IPv6地址。
otDnsBrowseResponseGetServiceInfo (const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
此功能從DNS瀏覽(服務實例枚舉)響應獲取服務實例的信息。
otDnsBrowseResponseGetServiceInstance (const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
此函數獲取與DNS瀏覽(服務實例枚舉)響應關聯的服務實例。
otDnsBrowseResponseGetServiceName (const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
此函數獲取與DNS瀏覽(服務實例枚舉)響應關聯的服務名稱。
otDnsClientBrowse ( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
此功能發送給定服務名稱的DNS瀏覽(服務實例枚舉)查詢。
otDnsClientGetDefaultConfig ( otInstance *aInstance)
此功能獲取DNS客戶端使用的當前默認查詢配置。
otDnsClientResolveAddress ( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
此功能發送給定主機名的AAAA(IPv6)記錄的地址解析DNS查詢。
otDnsClientResolveService ( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
此函數發送給定服務實例的DNS服務實例解析查詢。
otDnsClientSetDefaultConfig ( otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
此功能在DNS客戶端上設置默認查詢配置。
otDnsServiceResponseGetHostAddress (const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
此功能從DNS服務實例解析響應中獲取主機IPv6地址。
otDnsServiceResponseGetServiceInfo (const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
此功能從DNS服務實例解析響應獲取服務實例的信息。
otDnsServiceResponseGetServiceName (const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
此函數獲取與DNS服務實例解析響應關聯的服務實例名稱。

結構

otDnsQueryConfig

此結構表示DNS查詢配置。

otDnsServiceInfo

此結構提供DNS服務實例的信息。

枚舉

otDnsRecursionFlag

 otDnsRecursionFlag

此枚舉類型表示otDnsQueryConfig的“所需的遞歸”(RD)標誌。

特性
OT_DNS_FLAG_NO_RECURSION

表示DNS名稱服務器無法遞歸解析查詢。

OT_DNS_FLAG_RECURSION_DESIRED

表示DNS名稱服務器可以遞歸解決查詢。

OT_DNS_FLAG_UNSPECIFIED

指示未指定標誌。

類型定義

otDnsAddressCallback

void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)

當收到地址解析查詢的DNS響應時,將調用此函數指針。

在這個回調用戶可以使用otDnsAddressResponseGet{Item}()函數與一起aResponse指針,以獲取有關響應的詳細信息。

aResponse指針只能在此回調中使用,並且從該函數返回後將保持有效,因此用戶不得保留aResponse指針供以後使用。

aError可以具有以下內容:

細節
參數
[in] aError
DNS事務的結果。
[in] aResponse
指向響應的指針(始終為非NULL)。
[in] aContext
指向特定於應用程序的上下文的指針。

  • OT_ERROR_NONE已成功收到響應。
  • OT_ERROR_ABORT DNS事務被堆棧中止。
  • OT_ERROR_RESPONSE_TIMEOUT在超時內未收到DNS響應。

如果服務器拒絕地址解析請求,則服務器映射的錯誤代碼如下:

  • (0)NOERROR成功(無錯誤條件)-> OT_ERROR_NONE
  • (1)FORMERR服務器由於格式錯誤無法解釋-> OT_ERROR_PARSE
  • (2)SERVFAIL Server發生內部故障-> OT_ERROR_FAILED
  • (3)應該存在的NXDOMAIN名稱不存在-> OT_ERROR_NOT_FOUND
  • (4)NOTIMP Server不支持查詢類型(OpCode)-> OT_ERROR_NOT_IMPLEMENTED
  • (5)拒絕服務器由於策略/安全原因被拒絕-> OT_ERROR_SECURITY
  • (6)YXDOMAIN某些不應該存在的名稱,確實存在-> OT_ERROR_DUPLICATED
  • (7)YXRRSET某些不應該存在的RRset確實存在-> OT_ERROR_DUPLICATED
  • (8)NXRRSET應該存在的一些RRset不存在-> OT_ERROR_NOT_FOUND
  • (9)NOTAUTH服務對區域-> OT_ERROR_SECURITY不具有權威性
  • (10)NOTZONE名稱不在區域中-> OT_ERROR_PARSE
  • (20)BADNAME暱稱-> OT_ERROR_PARSE
  • (21)BADALG錯誤的算法-> OT_ERROR_SECURITY
  • (22)BADTRUN截斷錯誤-> OT_ERROR_PARSE
  • 其他響應代碼-> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

此類型是對地址解析DNS查詢的響應的不透明表示。

回調otDnsAddressCallback提供了指向此類型實例的指針。

otDnsBrowseCallback

void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)

當收到瀏覽(服務實例枚舉)查詢的DNS響應時,將調用此函數指針。

在這個回調用戶可以使用otDnsBrowseResponseGet{Item}()函數與一起aResponse指針,以獲取有關響應的詳細信息。

aResponse指針只能在此回調中使用,並且從該函數返回後將保持有效,因此用戶不得保留aResponse指針供以後使用。

有關aError可能值的完整列表,請參見otDnsAddressCallback()

細節
參數
[in] aError
DNS事務的結果。
[in] aResponse
指向響應的指針(始終為非NULL)。
[in] aContext
指向特定於應用程序的上下文的指針。

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

此類型是對瀏覽(服務實例枚舉)DNS查詢的響應的不透明表示。

回調otDnsBrowseCallback提供了指向此類型實例的指針。

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

此結構表示DNS查詢配置。

可以將此結構中的任何字段設置為零以指示未指定。未指定字段的處理方式由使用otDnsQueryConfig實例的函數確定。

otDnsServiceCallback

void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)

當收到服務實例解析查詢的DNS響應時,將調用此函數指針。

在這個回調用戶可以使用otDnsServiceResponseGet{Item}()函數與一起aResponse指針,以獲取有關響應的詳細信息。

aResponse指針只能在此回調中使用,並且從該函數返回後將保持有效,因此用戶不得保留aResponse指針供以後使用。

有關aError可能值的完整列表,請參見otDnsAddressCallback()

細節
參數
[in] aError
DNS事務的結果。
[in] aResponse
指向響應的指針(始終為非NULL)。
[in] aContext
指向特定於應用程序的上下文的指針。

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

此結構提供有關DNS服務實例的信息。

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

此類型是對服務實例解析DNS查詢的響應的不透明表示。

回調otDnsAddressCallback提供了指向此類型實例的指針。

功能

otDnsAddressResponseGetAddress

otError otDnsAddressResponseGetAddress(
  const otDnsAddressResponse *aResponse,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

此功能獲取與地址解析DNS響應關聯的IPv6地址。

此函數只能從otDnsAddressCallback

該響應可以包括多個IPv6地址記錄。 aIndex可用於遍歷地址列表。索引零獲取第一個地址,依此類推。當我們到達列表的末尾時,將返回OT_ERROR_NOT_FOUND

細節
參數
[in] aResponse
指向響應的指針。
[in] aIndex
要檢索的地址記錄索引。
[out] aAddress
指向要輸出地址的IPv6地址的指針(不得為NULL)。
[out] aTtl
指向uint32_t的指針以輸出該地址的TTL。如果呼叫者不想獲取TTL,則可以為NULL。
返回值
OT_ERROR_NONE
地址已成功讀取。
OT_ERROR_NOT_FOUND
在沒有地址記錄aResponseaIndex
OT_ERROR_PARSE
在無法解析記錄aResponse

otDnsAddressResponseGetHostName

otError otDnsAddressResponseGetHostName(
  const otDnsAddressResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

此功能獲取與地址解析DNS響應關聯的完整主機名。

此函數只能從otDnsAddressCallback

細節
參數
[in] aResponse
指向響應的指針。
[out] aNameBuffer
char數組的緩衝區,用於輸出完整的主機名(不得為NULL)。
[in] aNameBufferSize
aNameBuffer的大小。
返回值
OT_ERROR_NONE
完整的主機名已成功讀取。
OT_ERROR_NO_BUFS
該名稱不適合aNameBuffer

otDnsBrowseResponseGetHostAddress

otError otDnsBrowseResponseGetHostAddress(
  const otDnsBrowseResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

此功能從DNS瀏覽(服務實例枚舉)響應獲取主機IPv6地址。

此函數只能從otDnsBrowseCallback

該響應可以包括零個或多個IPv6地址記錄。 aIndex可用於遍歷地址列表。索引零獲取第一個地址,依此類推。當我們到達列表的末尾時,將返回OT_ERROR_NOT_FOUND

細節
參數
[in] aResponse
指向響應的指針。
[in] aHostName
要獲取地址的主機名(不得為NULL)。
[in] aIndex
要檢索的地址記錄索引。
[out] aAddress
指向要輸出地址的IPv6地址的指針(不得為NULL)。
[out] aTtl
指向uint32_t的指針以輸出該地址的TTL。如果呼叫者不想獲取TTL,則可以為NULL。
返回值
OT_ERROR_NONE
地址已成功讀取。
OT_ERROR_NOT_FOUND
對於沒有地址記錄aHostnameaResponseaIndex
OT_ERROR_PARSE
在無法解析記錄aResponse

otDnsBrowseResponseGetServiceInfo

otError otDnsBrowseResponseGetServiceInfo(
  const otDnsBrowseResponse *aResponse,
  const char *aInstanceLabel,
  otDnsServiceInfo *aServiceInfo
)

此功能從DNS瀏覽(服務實例枚舉)響應獲取服務實例的信息。

此函數只能從otDnsBrowseCallback

瀏覽DNS響應應包括枚舉的服務實例的SRV,TXT和AAAA記錄(請注意,這是應該的,而不是必須的要求)。如果可用,此函數將嘗試檢索給定服務實例的此信息。

  • 如果沒有找到匹配的SRV記錄aResponseOT_ERROR_NOT_FOUND返回。
  • 如果找到匹配的SRV記錄aResponseaServiceInfo被更新, OT_ERROR_NONE返回。
  • 如果沒有找到匹配的TXT記錄aResponsemTxtDataSizeaServiceInfo設置為零。
  • 如果沒有找到匹配的AAAA記錄aResponsemHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddress is set to the first one. The other addresses can be retrieved using otDnsBrowseResponseGetHostAddress() ` is set to the first one. The other addresses can be retrieved using

細節
參數
[in] aResponse
指向響應的指針。
[in] aInstanceLabel
服務實例標籤(不得為NULL)。
[out] aServiceInfo
用於輸出服務實例信息的ServiceInfo (不得為NULL)。
返回值
OT_ERROR_NONE
已讀取服務實例信息。 aServiceInfo已更新。
OT_ERROR_NOT_FOUND
找不到aInstanceLabel的匹配SRV記錄。
OT_ERROR_NO_BUFS
主機名和/或TXT數據無法容納在給定的緩衝區中。
OT_ERROR_PARSE
在無法解析記錄aResponse

otDnsBrowseResponseGetServiceInstance

otError otDnsBrowseResponseGetServiceInstance(
  const otDnsBrowseResponse *aResponse,
  uint16_t aIndex,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize
)

此函數獲取與DNS瀏覽(服務實例枚舉)響應關聯的服務實例。

此函數只能從otDnsBrowseCallback

該響應可以包括多個服務實例記錄。 aIndex可用於遍歷列表。索引零給出第一條記錄。當我們到達列表的末尾時,將返回OT_ERROR_NOT_FOUND

請注意,此函數獲取服務實例標籤,而不是完整的服務實例名稱,其形式為. . . .

細節
參數
[in] aResponse
指向響應的指針。
[in] aIndex
要檢索的服務實例記錄索引。
[out] aLabelBuffer
char數組的緩衝區,用於輸出服務實例標籤(不得為NULL)。
[in] aLabelBufferSize
aLabelBuffer的大小。
返回值
OT_ERROR_NONE
服務實例已成功讀取。
OT_ERROR_NO_BUFS
該名稱不適合aNameBuffer
OT_ERROR_NOT_FOUND
沒有在服務實例記錄aResponseaIndex
OT_ERROR_PARSE
在無法解析記錄aResponse

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

此函數獲取與DNS瀏覽(服務實例枚舉)響應關聯的服務名稱。

此函數只能從otDnsBrowseCallback

細節
參數
[in] aResponse
指向響應的指針。
[out] aNameBuffer
char數組的緩衝區,用於輸出服務名稱(不得為NULL)。
[in] aNameBufferSize
aNameBuffer的大小。
返回值
OT_ERROR_NONE
服務名稱已成功讀取。
OT_ERROR_NO_BUFS
該名稱不適合aNameBuffer

otDnsClientBrowse

otError otDnsClientBrowse(
  otInstance *aInstance,
  const char *aServiceName,
  otDnsBrowseCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

此函數發送給定服務名稱的DNS瀏覽(服務實例枚舉)查詢。

啟用OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE時,此功能可用。

aConfig可以為NULL。在這種情況下,默認配置(來自otDnsClientGetDefaultConfig() )將用作此查詢的配置。在非NULL aConfig ,某些字段可以不指定(值為零)。然後,未指定的字段將替換為默認配置中的值。

細節
參數
[in] aInstance
指向OpenThread實例的指針。
[in] aServiceName
要查詢的服務名稱(不得為NULL)。
[in] aCallback
在響應接收或超時時應調用的函數指針。
[in] aContext
指向任意上下文信息的指針。
[in] aConfig
指向用於此查詢的配置的指針。
返回值
OT_ERROR_NONE
查詢已成功發送。將調用aCallback來報告狀態。
OT_ERROR_NO_BUFS
緩衝區不足,無法準備和發送查詢。

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

此功能獲取DNS客戶端使用的當前默認查詢配置。

當OpenThread堆棧啟動時,默認的DNS查詢配置由一組OT配置選項確定,例如OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS_DEFAULT_SERVER_PORT_DEFAULT_RESPONSE_TIMEOUT等(有關所有相關配置選項,請參閱config/dns_clinet.h )。

細節
參數
[in] aInstance
指向OpenThread實例的指針。
退貨
指向DNS客戶端正在使用的當前默認配置的指針。

otDnsClientResolveAddress

otError otDnsClientResolveAddress(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

此功能發送給定主機名的AAAA(IPv6)記錄的地址解析DNS查詢。

aConfig可以為NULL。在這種情況下,默認配置(來自otDnsClientGetDefaultConfig() )將用作此查詢的配置。在非NULL aConfig ,某些字段可以不指定(值為零)。然後,未指定的字段將替換為默認配置中的值。

細節
參數
[in] aInstance
指向OpenThread實例的指針。
[in] aHostName
要查詢地址的主機名(不得為NULL)。
[in] aCallback
在響應接收或超時時應調用的函數指針。
[in] aContext
指向任意上下文信息的指針。
[in] aConfig
指向用於此查詢的配置的指針。
返回值
OT_ERROR_NONE
查詢已成功發送。將調用aCallback來報告狀態。
OT_ERROR_NO_BUFS
緩衝區不足,無法準備和發送查詢。

otDnsClientResolveService

otError otDnsClientResolveService(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

此函數發送給定服務實例的DNS服務實例解析查詢。

啟用OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE時,此功能可用。

aConfig可以為NULL。在這種情況下,默認配置(來自otDnsClientGetDefaultConfig() )將用作此查詢的配置。在非NULL aConfig ,某些字段可以不指定(值為零)。然後,未指定的字段將替換為默認配置中的值。

細節
參數
[in] aInstance
指向OpenThread實例的指針。
[in] aInstanceLabel
服務實例標籤。
[in] aServiceName
服務名稱(連同aInstanceLabel形式的完整實例名稱)。
[in] aCallback
在響應接收或超時時應調用的函數指針。
[in] aContext
指向任意上下文信息的指針。
[in] aConfig
指向用於此查詢的配置的指針。
返回值
OT_ERROR_NONE
查詢已成功發送。將調用aCallback來報告狀態。
OT_ERROR_NO_BUFS
緩衝區不足,無法準備和發送查詢。
OT_ERROR_INVALID_ARGS
aInstanceLabel為NULL。

otDnsClientSetDefaultConfig

void otDnsClientSetDefaultConfig(
  otInstance *aInstance,
  const otDnsQueryConfig *aConfig
)

此功能在DNS客戶端上設置默認查詢配置。

注意:任何正在進行的查詢將從啟動時開始繼續使用該配置。新的默認配置將用於以後的任何DNS查詢。 aConfig可以為NULL。在這種情況下,默認配置將從OT配置選項OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}設置為默認值。這將在OpenThread堆棧啟動時將默認查詢配置重置回該配置。

在非NULL aConfig ,調用者可以選擇不指定otDnsQueryConfig實例中的某些字段(值為零)。未指定的字段由相應的OT配置選項定義OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}取代,以形成默認查詢配置。

細節
參數
[in] aInstance
指向OpenThread實例的指針。
[in] aConfig
指向要用作默認查詢的新查詢配置的指針。

otDnsServiceResponseGetHostAddress

otError otDnsServiceResponseGetHostAddress(
  const otDnsServiceResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

此功能從DNS服務實例解析響應中獲取主機IPv6地址。

此函數只能從otDnsServiceCallback

該響應可以包括零個或多個IPv6地址記錄。 aIndex可用於遍歷地址列表。索引零獲取第一個地址,依此類推。當我們到達列表的末尾時,將返回OT_ERROR_NOT_FOUND

細節
參數
[in] aResponse
指向響應的指針。
[in] aHostName
要獲取地址的主機名(不得為NULL)。
[in] aIndex
要檢索的地址記錄索引。
[out] aAddress
指向要輸出地址的IPv6地址的指針(不得為NULL)。
[out] aTtl
指向uint32_t的指針以輸出該地址的TTL。如果呼叫者不想獲取TTL,則可以為NULL。
返回值
OT_ERROR_NONE
地址已成功讀取。
OT_ERROR_NOT_FOUND
對於沒有地址記錄aHostnameaResponseaIndex
OT_ERROR_PARSE
在無法解析記錄aResponse

otDnsServiceResponseGetServiceInfo

otError otDnsServiceResponseGetServiceInfo(
  const otDnsServiceResponse *aResponse,
  otDnsServiceInfo *aServiceInfo
)

此功能從DNS服務實例解析響應獲取服務實例的信息。

此函數只能從otDnsServiceCallback

  • 如果沒有找到匹配的SRV記錄aResponseOT_ERROR_NOT_FOUND返回。
  • 如果找到匹配的SRV記錄aResponseaServiceInfo被更新, OT_ERROR_NONE返回。
  • 如果沒有找到匹配的TXT記錄aResponsemTxtDataSizeaServiceInfo設置為零。
  • 如果沒有找到匹配的AAAA記錄aResponsemHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddress is set to the first one. The other addresses can be retrieved using otDnsServiceResponseGetHostAddress() ` is set to the first one. The other addresses can be retrieved using

細節
參數
[in] aResponse
指向響應的指針。
[out] aServiceInfo
用於輸出服務實例信息的ServiceInfo (不得為NULL)。
返回值
OT_ERROR_NONE
已讀取服務實例信息。 aServiceInfo已更新。
OT_ERROR_NOT_FOUND
aResponse找不到匹配的SRV記錄。
OT_ERROR_NO_BUFS
主機名和/或TXT數據無法容納在給定的緩衝區中。
OT_ERROR_PARSE
在無法解析記錄aResponse

otDnsServiceResponseGetServiceName

otError otDnsServiceResponseGetServiceName(
  const otDnsServiceResponse *aResponse,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

此函數獲取與DNS服務實例解析響應關聯的服務實例名稱。

此函數只能從otDnsServiceCallback

細節
參數
[in] aResponse
指向響應的指針。
[out] aLabelBuffer
char數組的緩衝區,用於輸出服務實例標籤(不得為NULL)。
[in] aLabelBufferSize
aLabelBuffer的大小。
[out] aNameBuffer
char數組的緩衝區,用於輸出其餘​​的服務名稱(如果用戶對獲取名稱不感興趣,則可以為NULL。
[in] aNameBufferSize
aNameBuffer的大小。
返回值
OT_ERROR_NONE
服務名稱已成功讀取。
OT_ERROR_NO_BUFS
標籤或名稱都不適合給定的緩衝區。