dnsmasq: fix start if dhcp-range is not correct
If the uci 'dhcp' configuration for the dhcp leases is incorrect then the call to 'ipclac' fails. However, the problem is that the dnsmasq configuration option 'dhcp-range' is still written for this uci section even though the information generated by ipcalc is incorrect or not set. Due to the incorrectly generated configuration for dnsmasq, the service cannot start. To prevent an incorrect configuration from being written to the configuration, a check is now made beforehand to ensure that the required variables are present and valid. If the configuration is incorrect, a message is emitted to the log that this configuration section is incorrect and this uci configuration section is omitted. Signed-off-by: Florian Eckert <fe@dev.tdt.de> Link: https://github.com/openwrt/openwrt/pull/18641 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
b90feed6ba
commit
ae198c6ba0
2 changed files with 14 additions and 4 deletions
|
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
|||
PKG_NAME:=dnsmasq
|
||||
PKG_UPSTREAM_VERSION:=2.91
|
||||
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://thekelleys.org.uk/dnsmasq/
|
||||
|
|
|
@ -597,10 +597,20 @@ dhcp_add() {
|
|||
nettag="${networkid:+set:${networkid},}"
|
||||
|
||||
# make sure the DHCP range is not empty
|
||||
if [ "$dhcpv4" != "disabled" ] && ipcalc "$ipaddr/$prefix_or_netmask" "$start" "$limit" ; then
|
||||
[ "$dynamicdhcpv4" = "0" ] && END="static"
|
||||
if [ "$dhcpv4" != "disabled" ]; then
|
||||
unset START
|
||||
unset END
|
||||
unset NETMASK
|
||||
ipcalc "$ipaddr/$prefix_or_netmask" "$start" "$limit"
|
||||
|
||||
xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}"
|
||||
if [ -z "$START" ] || [ -z "$END" ] || [ -z "$NETMASK" ]; then
|
||||
logger -t dnsmasq \
|
||||
"unable to set dhcp-range for dhcp uci config section '$cfg'" \
|
||||
"on interface '$ifname', please check your config"
|
||||
else
|
||||
[ "$dynamicdhcpv4" = "0" ] && END="static"
|
||||
xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$dynamicdhcpv6" = "0" ] ; then
|
||||
|
|
Loading…
Reference in a new issue