pub unsafe extern "C" fn otDnsBrowseResponseGetServiceInfo(
aResponse: *const otDnsBrowseResponse,
aInstanceLabel: *const c_char,
aServiceInfo: *mut otDnsServiceInfo,
) -> otError
Expand description
Gets info for a service instance from a DNS browse (service instance enumeration) response.
MUST only be used from otDnsBrowseCallback
.
A browse DNS response can include SRV, TXT, and AAAA records for the service instances that are enumerated. This is a SHOULD and not a MUST requirement, and servers/resolvers are not required to provide this. This function attempts to retrieve this info for a given service instance when available.
- If no matching SRV record is found in @p aResponse,
OT_ERROR_NOT_FOUND
is returned. In this case, no additional records (no TXT and/or AAAA) are read. - If a matching SRV record is found in @p aResponse, @p aServiceInfo is updated and
OT_ERROR_NONE
is returned. - If no matching TXT record is found in @p aResponse,
mTxtDataSize
in @p aServiceInfo is set to zero. - If TXT data length is greater than
mTxtDataSize
, it is read partially andmTxtDataTruncated
is set to true. - If no matching AAAA record is found in @p aResponse, `mHostAddress 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 usingotDnsBrowseResponseGetHostAddress()
.
@param[in] aResponse A pointer to the response.
@param[in] aInstanceLabel The service instance label (MUST NOT be NULL).
@param[out] aServiceInfo A ServiceInfo
to output the service instance information (MUST NOT be NULL).
@retval OT_ERROR_NONE The service instance info was read. @p aServiceInfo is updated. @retval OT_ERROR_NOT_FOUND Could not find a matching SRV record for @p aInstanceLabel. @retval OT_ERROR_NO_BUFS The host name and/or TXT data could not fit in the given buffers. @retval OT_ERROR_PARSE Could not parse the records in the @p aResponse.