|
|
@@ -22,10 +22,42 @@ DHCPSCRIPT="/usr/lib/dnsmasq/dhcp-script.sh"
|
|
|
|
|
|
DNSMASQ_DHCP_VER=4
|
|
|
|
|
|
+dnsmasq_features="$(dnsmasq --version | grep -m1 'Compile time options:' | cut -d: -f2) "
|
|
|
+[ "${dnsmasq_features#* DHCP }" = "$dnsmasq_features" ] || dnsmasq_has_dhcp=1
|
|
|
+[ "${dnsmasq_features#* DHCPv6 }" = "$dnsmasq_features" ] || dnsmasq_has_dhcp6=1
|
|
|
+[ "${dnsmasq_features#* DNSSEC }" = "$dnsmasq_features" ] || dnsmasq_has_dnssec=1
|
|
|
+[ "${dnsmasq_features#* TFTP }" = "$dnsmasq_features" ] || dnsmasq_has_tftp=1
|
|
|
+[ "${dnsmasq_features#* ipset }" = "$dnsmasq_features" ] || dnsmasq_has_ipset=1
|
|
|
+dnsmasq_ignore_opt() {
|
|
|
+ local opt="$1"
|
|
|
+
|
|
|
+ case "$opt" in
|
|
|
+ dhcp-duid|\
|
|
|
+ ra-param)
|
|
|
+ [ -z "$dnsmasq_has_dhcp6" ] ;;
|
|
|
+ dhcp-*|\
|
|
|
+ bootp-*|\
|
|
|
+ pxe-*)
|
|
|
+ [ -z "$dnsmasq_has_dhcp" ] ;;
|
|
|
+ dnssec-*|\
|
|
|
+ trust-anchor)
|
|
|
+ [ -z "$dnsmasq_has_dnssec" ] ;;
|
|
|
+ tftp-*)
|
|
|
+ [ -z "$dnsmasq_has_tftp" ] ;;
|
|
|
+ ipset)
|
|
|
+ [ -z "$dnsmasq_has_ipset" ] ;;
|
|
|
+ *)
|
|
|
+ return 1
|
|
|
+ esac
|
|
|
+}
|
|
|
+
|
|
|
xappend() {
|
|
|
- local value="$1"
|
|
|
+ local value="${1#--}"
|
|
|
+ local opt="${value%%=*}"
|
|
|
|
|
|
- echo "${value#--}" >> $CONFIGFILE_TMP
|
|
|
+ if ! dnsmasq_ignore_opt "$opt"; then
|
|
|
+ echo "$value" >>$CONFIGFILE_TMP
|
|
|
+ fi
|
|
|
}
|
|
|
|
|
|
hex_to_hostid() {
|