dnsmasq: abort when dnssec requested but not available

Before this commit, if uci option "dnssec" was set, we pass "--dnssec"
and friends to dnsmasq, let it start and decide whether to quit and
whether to emit message for diagnosis

  # dnsmasq --dnssec; echo $?
  dnsmasq: DNSSEC not available: set HAVE_DNSSEC in src/config.h
  1

DNSSEC as a feature is different from others like dhcp, tftp in that
it's a security feature.  Better be explicit.  With this change
committed, we make it so by not allowing it in the first in the
initscript, should dnsmasq later decides to not quit (not likely) or
quit without above explicit error (unlikely but less so ;)

So this is just being proactive.  on/off choices with uci option
"dnssec" are still available like before

Link: https://github.com/openwrt/openwrt/pull/3265#issuecomment-667795302
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
Yousong Zhou 2020-08-04 12:00:22 +08:00 committed by CN_SZTL
parent 208fd5d90a
commit 0fd214533d
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
2 changed files with 7 additions and 3 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_VERSION:=2.82
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq

View File

@ -42,9 +42,13 @@ dnsmasq_ignore_opt() {
bootp-*|\
pxe-*)
[ -z "$dnsmasq_has_dhcp" ] ;;
dnssec-*|\
dnssec*|\
trust-anchor)
[ -z "$dnsmasq_has_dnssec" ] ;;
if [ -z "$dnsmasq_has_dnssec" ]; then
echo "dnsmasq: \"$opt\" requested, but dnssec support is not available" >&2
exit 1
fi
;;
tftp-*)
[ -z "$dnsmasq_has_tftp" ] ;;
ipset)