[dnssd] add API for getting the upstream query status (#8815)

This commit is contained in:
Song GUO
2023-03-01 22:42:29 -08:00
committed by GitHub
parent 3d8406b31c
commit d93521de06
5 changed files with 59 additions and 13 deletions
+14
View File
@@ -260,6 +260,20 @@ const otDnssdCounters *otDnssdGetCounters(otInstance *aInstance);
*/
void otDnssdUpstreamQuerySetEnabled(otInstance *aInstance, bool aEnabled);
/**
* Returns whether the DNSSD server will forward DNS queries to the platform DNS upstream API.
*
* Available when `OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE` is enabled.
*
* @param[in] aInstance A pointer to an OpenThread instance.
* @retval TRUE If the DNSSD server will forward DNS queries.
* @retval FALSE If the DNSSD server will not forward DNS queries.
*
* @sa otDnssdUpstreamQuerySetEnabled
*
*/
bool otDnssdUpstreamQueryIsEnabled(otInstance *aInstance);
/**
* @}
*
+1 -1
View File
@@ -53,7 +53,7 @@ extern "C" {
* @note This number versions both OpenThread platform and user APIs.
*
*/
#define OPENTHREAD_API_VERSION (292)
#define OPENTHREAD_API_VERSION (293)
/**
* @addtogroup api-instance
+30 -12
View File
@@ -3166,21 +3166,39 @@ template <> otError Interpreter::Process<Cmd("dns")>(Arg aArgs[])
error = OT_ERROR_INVALID_ARGS;
}
#if OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE
/**
* @cli dns server upstream {enable|disable}
* @code
* Done
* @endcode
* @cparam dns server upstream @ca{enable|disable}
* @par api_copy
* #otDnssdUpstreamQuerySetEnabled
*/
else if (aArgs[1] == "upstream")
{
bool enable;
/**
* @cli dns server upstream
* @code
* dns server upstream
* Enabled
* Done
* @endcode
* @par api_copy
* #otDnssdUpstreamQueryIsEnabled
*/
if (aArgs[2].IsEmpty())
{
OutputEnabledDisabledStatus(otDnssdUpstreamQueryIsEnabled(GetInstancePtr()));
}
/**
* @cli dns server upstream {enable|disable}
* @code
* dns server upstream enable
* Done
* @endcode
* @cparam dns server upstream @ca{enable|disable}
* @par api_copy
* #otDnssdUpstreamQuerySetEnabled
*/
else
{
bool enable;
SuccessOrExit(error = ParseEnableOrDisable(aArgs[2], enable));
otDnssdUpstreamQuerySetEnabled(GetInstancePtr(), enable);
SuccessOrExit(error = ParseEnableOrDisable(aArgs[2], enable));
otDnssdUpstreamQuerySetEnabled(GetInstancePtr(), enable);
}
}
#endif // OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE
else
+5
View File
@@ -87,6 +87,11 @@ const otDnssdCounters *otDnssdGetCounters(otInstance *aInstance)
}
#if OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE
bool otDnssdUpstreamQueryIsEnabled(otInstance *aInstance)
{
return AsCoreType(aInstance).Get<Dns::ServiceDiscovery::Server>().IsUpstreamQueryEnabled();
}
void otDnssdUpstreamQuerySetEnabled(otInstance *aInstance, bool aEnabled)
{
return AsCoreType(aInstance).Get<Dns::ServiceDiscovery::Server>().SetUpstreamQueryEnabled(aEnabled);
+9
View File
@@ -206,6 +206,15 @@ public:
*/
void OnUpstreamQueryDone(UpstreamQueryTransaction &aQueryTransaction, Message *aResponseMessage);
/**
* This method indicates whether the server will forward DNS queries to platform DNS upstream API.
*
* @retval TRUE If the server will forward DNS queries.
* @retval FALSE If the server will not forward DNS queries.
*
*/
bool IsUpstreamQueryEnabled(void) const { return mEnableUpstreamQuery; }
/**
* This method enables or disables forwarding DNS queries to platform DNS upstream API.
*