mirror of
https://github.com/espressif/openthread.git
synced 2026-07-30 15:47:46 +00:00
[config] dns client (#4020)
This commit is contained in:
+2
-3
@@ -66,13 +66,13 @@ python --version || die
|
||||
-DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1 \
|
||||
-DOPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE=1 \
|
||||
-DOPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE=1 \
|
||||
-DOPENTHREAD_CONFIG_DIAG_ENABLE=1"
|
||||
-DOPENTHREAD_CONFIG_DIAG_ENABLE=1 \
|
||||
-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1"
|
||||
|
||||
scan-build ./configure \
|
||||
--enable-builtin-mbedtls=no \
|
||||
--enable-cert-log \
|
||||
--enable-cli \
|
||||
--enable-dns-client \
|
||||
--enable-ecdsa \
|
||||
--enable-executable=no \
|
||||
--enable-ftd \
|
||||
@@ -98,7 +98,6 @@ python --version || die
|
||||
--enable-builtin-mbedtls=no \
|
||||
--enable-cert-log \
|
||||
--enable-cli \
|
||||
--enable-dns-client \
|
||||
--enable-ecdsa \
|
||||
--enable-executable=no \
|
||||
--enable-ftd \
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ OPENTHREAD_COMMON_FLAGS += \
|
||||
-DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1 \
|
||||
-DOPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE=1 \
|
||||
-DOPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE=1 \
|
||||
-DOPENTHREAD_ENABLE_DNS_CLIENT=1 \
|
||||
-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1 \
|
||||
-DOPENTHREAD_ENABLE_MTD_NETWORK_DIAGNOSTIC=1 \
|
||||
-DOPENTHREAD_ENABLE_REFERENCE_DEVICE=0 \
|
||||
$(NULL)
|
||||
|
||||
@@ -34,7 +34,6 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-address-sanitizer \
|
||||
--enable-cert-log \
|
||||
--enable-cli \
|
||||
--enable-dns-client \
|
||||
--enable-ftd \
|
||||
--enable-joiner \
|
||||
--enable-mac-filter \
|
||||
|
||||
@@ -1111,36 +1111,6 @@ AC_SUBST(OPENTHREAD_NCP_SPINEL_ENCRYPTER_LIBS)
|
||||
AC_DEFINE_UNQUOTED([OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER],[${OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER}],[Define to 1 if using NCP Spinel Encrypter])
|
||||
AM_CONDITIONAL([OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER], [test "${OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER}" = "1"])
|
||||
|
||||
#
|
||||
# DNS Client
|
||||
#
|
||||
|
||||
AC_ARG_ENABLE(dns_client,
|
||||
[AS_HELP_STRING([--enable-dns-client],[Enable DNS client support @<:@default=no@:>@.])],
|
||||
[
|
||||
case "${enableval}" in
|
||||
|
||||
no|yes)
|
||||
enable_dns_client=${enableval}
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid value ${enable_dns_client} for --enable-dns-client])
|
||||
;;
|
||||
esac
|
||||
],
|
||||
[enable_dns_client=no])
|
||||
|
||||
if test "$enable_dns_client" = "yes"; then
|
||||
OPENTHREAD_ENABLE_DNS_CLIENT=1
|
||||
else
|
||||
OPENTHREAD_ENABLE_DNS_CLIENT=0
|
||||
fi
|
||||
|
||||
AC_SUBST(OPENTHREAD_ENABLE_DNS_CLIENT)
|
||||
AM_CONDITIONAL([OPENTHREAD_ENABLE_DNS_CLIENT], [test "${enable_dns_client}" = "yes"])
|
||||
AC_DEFINE_UNQUOTED([OPENTHREAD_ENABLE_DNS_CLIENT],[${OPENTHREAD_ENABLE_DNS_CLIENT}],[Define to 1 if you want to enable DNS Client])
|
||||
|
||||
#
|
||||
# SNTP Client
|
||||
#
|
||||
@@ -1694,7 +1664,6 @@ AC_MSG_NOTICE([
|
||||
OpenThread Jam Detection support : ${enable_jam_detection}
|
||||
OpenThread MAC Filter support : ${enable_mac_filter}
|
||||
OpenThread Legacy network support : ${enable_legacy}
|
||||
OpenThread DNS Client support : ${enable_dns_client}
|
||||
OpenThread SNTP Client support : ${enable_sntp_client}
|
||||
OpenThread Raw Link-Layer support : ${enable_raw_link_api}
|
||||
OpenThread Service support : ${enable_service}
|
||||
|
||||
@@ -123,7 +123,7 @@ configure_OPTIONS += --disable-docs
|
||||
endif
|
||||
|
||||
ifeq ($(DNS_CLIENT),1)
|
||||
configure_OPTIONS += --enable-dns-client
|
||||
COMMONCFLAGS += -DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1
|
||||
endif
|
||||
|
||||
ifeq ($(ECDSA),1)
|
||||
|
||||
@@ -94,7 +94,7 @@ typedef void (*otDnsResponseHandler)(void * aContext,
|
||||
/**
|
||||
* This function sends a DNS query for AAAA (IPv6) record.
|
||||
*
|
||||
* This function is available only if feature `OPENTHREAD_ENABLE_DNS_CLIENT` is enabled.
|
||||
* This function is available only if feature `OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE` is enabled.
|
||||
*
|
||||
* @param[in] aInstance A pointer to an OpenThread instance.
|
||||
* @param[in] aQuery A pointer to specify DNS query parameters.
|
||||
|
||||
+5
-5
@@ -121,7 +121,7 @@ const struct Command Interpreter::sCommands[] = {
|
||||
{"diag", &Interpreter::ProcessDiag},
|
||||
#endif
|
||||
{"discover", &Interpreter::ProcessDiscover},
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
{"dns", &Interpreter::ProcessDns},
|
||||
#endif
|
||||
#if OPENTHREAD_FTD
|
||||
@@ -226,7 +226,7 @@ Interpreter::Interpreter(Instance *aInstance)
|
||||
, mCount(1)
|
||||
, mInterval(1000)
|
||||
, mPingTimer(*aInstance, &Interpreter::HandlePingTimer, this)
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
, mResolvingInProgress(0)
|
||||
#endif
|
||||
, mUdp(*this)
|
||||
@@ -253,9 +253,9 @@ Interpreter::Interpreter(Instance *aInstance)
|
||||
mIcmpHandler.mContext = this;
|
||||
otIcmp6RegisterHandler(mInstance, &mIcmpHandler);
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
memset(mResolvingHostname, 0, sizeof(mResolvingHostname));
|
||||
#endif // OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#endif // OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
}
|
||||
|
||||
int Interpreter::Hex2Bin(const char *aHex, uint8_t *aBin, uint16_t aBinLength)
|
||||
@@ -928,7 +928,7 @@ exit:
|
||||
AppendResult(error);
|
||||
}
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
void Interpreter::ProcessDns(int argc, char *argv[])
|
||||
{
|
||||
otError error = OT_ERROR_NONE;
|
||||
|
||||
+4
-4
@@ -222,7 +222,7 @@ private:
|
||||
void ProcessDiag(int argc, char *argv[]);
|
||||
#endif // OPENTHREAD_CONFIG_DIAG_ENABLE
|
||||
void ProcessDiscover(int argc, char *argv[]);
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
void ProcessDns(int argc, char *argv[]);
|
||||
#endif
|
||||
#if OPENTHREAD_FTD
|
||||
@@ -341,7 +341,7 @@ private:
|
||||
static void HandleLinkPcapReceive(const otRadioFrame *aFrame, bool aIsTx, void *aContext);
|
||||
static void HandleDiagnosticGetResponse(otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext);
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
static void HandleDnsResponse(void * aContext,
|
||||
const char * aHostname,
|
||||
otIp6Address *aAddress,
|
||||
@@ -359,7 +359,7 @@ private:
|
||||
void HandleEnergyScanResult(otEnergyScanResult *aResult);
|
||||
void HandleLinkPcapReceive(const otRadioFrame *aFrame, bool aIsTx);
|
||||
void HandleDiagnosticGetResponse(Message &aMessage, const Ip6::MessageInfo &aMessageInfo);
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
void HandleDnsResponse(const char *aHostname, Ip6::Address &aAddress, uint32_t aTtl, otError aResult);
|
||||
#endif
|
||||
#if OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
@@ -377,7 +377,7 @@ private:
|
||||
uint32_t mInterval;
|
||||
TimerMilli mPingTimer;
|
||||
otIcmp6Handler mIcmpHandler;
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
bool mResolvingInProgress;
|
||||
char mResolvingHostname[OT_DNS_MAX_HOSTNAME_LENGTH];
|
||||
#endif
|
||||
|
||||
@@ -328,6 +328,7 @@ HEADERS_COMMON = \
|
||||
config/dhcp6_client.h \
|
||||
config/dhcp6_server.h \
|
||||
config/diag.h \
|
||||
config/dns_client.h \
|
||||
config/openthread-core-config-check.h \
|
||||
config/openthread-core-default-config.h \
|
||||
crypto/aes_ccm.hpp \
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
using namespace ot;
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
otError otDnsClientQuery(otInstance *aInstance, const otDnsQuery *aQuery, otDnsResponseHandler aHandler, void *aContext)
|
||||
{
|
||||
Instance &instance = *static_cast<Instance *>(aInstance);
|
||||
|
||||
@@ -584,7 +584,7 @@ template <> inline MeshCoP::Joiner &Instance::Get(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
template <> inline Dns::Client &Instance::Get(void)
|
||||
{
|
||||
return mThreadNetif.mDnsClient;
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (c) 2019, The OpenThread Authors.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* This file includes compile-time configurations for the DNS Client.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_DNS_CLIENT_H_
|
||||
#define CONFIG_DNS_CLIENT_H_
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
*
|
||||
* Define to 1 to enable DNS Client support.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
#define OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT
|
||||
*
|
||||
* Maximum time that DNS Client waits for response in milliseconds.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT
|
||||
#define OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT 3000
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_DNS_MAX_RETRANSMIT
|
||||
*
|
||||
* Maximum number of retransmissions for DNS client.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_DNS_MAX_RETRANSMIT
|
||||
#define OPENTHREAD_CONFIG_DNS_MAX_RETRANSMIT 2
|
||||
#endif
|
||||
|
||||
#endif // CONFIG_DNS_CLIENT_H_
|
||||
@@ -419,26 +419,6 @@
|
||||
#define OPENTHREAD_CONFIG_MAX_STATECHANGE_HANDLERS 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT
|
||||
*
|
||||
* Maximum time that DNS Client waits for response in milliseconds.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT
|
||||
#define OPENTHREAD_CONFIG_DNS_RESPONSE_TIMEOUT 3000
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_DNS_MAX_RETRANSMIT
|
||||
*
|
||||
* Maximum number of retransmissions for DNS client.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_DNS_MAX_RETRANSMIT
|
||||
#define OPENTHREAD_CONFIG_DNS_MAX_RETRANSMIT 2
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_SNTP_RESPONSE_TIMEOUT
|
||||
*
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "net/udp6.hpp"
|
||||
#include "thread/thread_netif.hpp"
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
|
||||
/**
|
||||
* @file
|
||||
@@ -526,4 +526,4 @@ exit:
|
||||
} // namespace Dns
|
||||
} // namespace ot
|
||||
|
||||
#endif // OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#endif // OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
#include "config/dhcp6_client.h"
|
||||
#include "config/dhcp6_server.h"
|
||||
#include "config/diag.h"
|
||||
#include "config/dns_client.h"
|
||||
|
||||
#if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE || OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE || \
|
||||
OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || OPENTHREAD_ENABLE_JOINER
|
||||
|
||||
@@ -59,9 +59,9 @@ ThreadNetif::ThreadNetif(Instance &aInstance)
|
||||
#if OPENTHREAD_CONFIG_ENABLE_SLAAC
|
||||
, mSlaac(aInstance)
|
||||
#endif
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
, mDnsClient(Get<ThreadNetif>())
|
||||
#endif // OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#endif // OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
#if OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
, mSntpClient(Get<ThreadNetif>())
|
||||
#endif // OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
@@ -128,7 +128,7 @@ void ThreadNetif::Up(void)
|
||||
SubscribeAllNodesMulticast();
|
||||
Get<Mle::MleRouter>().Enable();
|
||||
Get<Coap::Coap>().Start(kCoapUdpPort);
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
Get<Dns::Client>().Start();
|
||||
#endif
|
||||
#if OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
@@ -144,7 +144,7 @@ void ThreadNetif::Down(void)
|
||||
{
|
||||
VerifyOrExit(mIsUp);
|
||||
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
Get<Dns::Client>().Stop();
|
||||
#endif
|
||||
#if OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
|
||||
@@ -173,9 +173,9 @@ private:
|
||||
#if OPENTHREAD_CONFIG_ENABLE_SLAAC
|
||||
Utils::Slaac mSlaac;
|
||||
#endif
|
||||
#if OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
Dns::Client mDnsClient;
|
||||
#endif // OPENTHREAD_ENABLE_DNS_CLIENT
|
||||
#endif // OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
|
||||
#if OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
Sntp::Client mSntpClient;
|
||||
#endif // OPENTHREAD_ENABLE_SNTP_CLIENT
|
||||
|
||||
Reference in New Issue
Block a user