DNS - Platform#
This module includes the platform abstraction for sending recursive DNS query to upstream DNS servers.
Typedefs#
This opaque type represents an upstream DNS query transaction.
Functions#
Starts an upstream query transaction.
Cancels a transaction of upstream query.
The platform calls this function to finish DNS query.
Typedef Documentation#
otPlatDnsUpstreamQuery#
typedef struct otPlatDnsUpstreamQuery otPlatDnsUpstreamQuery
This opaque type represents an upstream DNS query transaction.
Function Documentation#
otPlatDnsStartUpstreamQuery#
void otPlatDnsStartUpstreamQuery (otInstance * aInstance, otPlatDnsUpstreamQuery * aTxn, const otMessage * aQuery)
Starts an upstream query transaction.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | The OpenThread instance structure. |
otPlatDnsUpstreamQuery * | [in] | aTxn | A pointer to the opaque DNS query transaction object. |
const otMessage * | [in] | aQuery | A message buffer of the DNS payload that should be sent to upstream DNS server. |
In success case (and errors represented by DNS protocol messages), the platform is expected to call
otPlatDnsUpstreamQueryDone
.The OpenThread core may cancel a (possibly timeout) query transaction by calling
otPlatDnsCancelUpstreamQuery
, the platform must not callotPlatDnsUpstreamQueryDone
on a cancelled transaction.
otPlatDnsCancelUpstreamQuery#
void otPlatDnsCancelUpstreamQuery (otInstance * aInstance, otPlatDnsUpstreamQuery * aTxn)
Cancels a transaction of upstream query.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | The OpenThread instance structure. |
otPlatDnsUpstreamQuery * | [in] | aTxn | A pointer to the opaque DNS query transaction object. |
The platform must call otPlatDnsUpstreamQueryDone
to release the resources.
otPlatDnsUpstreamQueryDone#
void otPlatDnsUpstreamQueryDone (otInstance * aInstance, otPlatDnsUpstreamQuery * aTxn, otMessage * aResponse)
The platform calls this function to finish DNS query.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | The OpenThread instance structure. |
otPlatDnsUpstreamQuery * | [in] | aTxn | A pointer to the opaque DNS query transaction object. |
otMessage * | [in] | aResponse | A message buffer of the DNS response payload or NULL to close a transaction without a response. |
The transaction will be released, so the platform must not call on the same transaction twice. This function passes the ownership of aResponse
to OpenThread stack.
Platform can pass NULL to close a transaction without a response.