[config] dns client (#4020)

This commit is contained in:
Jonathan Hui
2019-07-31 14:16:30 -07:00
parent a608896cd3
commit 297ab4742f
17 changed files with 94 additions and 77 deletions
+2 -3
View File
@@ -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
View File
@@ -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)
-1
View File
@@ -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 \
-31
View File
@@ -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}
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
+1
View File
@@ -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 \
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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;
+68
View File
@@ -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
*
+2 -2
View File
@@ -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
+1
View File
@@ -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
+4 -4
View File
@@ -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
+2 -2
View File
@@ -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