dnsmasq: configure dynamic dhcp6 and dhcp4 independently
authorIan Dall <ian@beware.dropbear.id.au>
Fri, 10 Mar 2023 06:32:34 +0000 (17:02 +1030)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 1 Apr 2023 20:35:13 +0000 (22:35 +0200)
Given ipv6 has SLAAC it is quite plausible to wish to use dynamic
dhcp4 but static dhcp6. This patch keeps dynamicdhcp as the default
option for both, but is overridden by dynamicdhcpv6 or dynamicdhcpv4

Signed-off-by: Ian Dall <ian@beware.dropbear.id.au>
package/network/services/dnsmasq/files/dnsmasq.init

index 608ef013f102c61c3c5e3a0f0715e19c235c3643..2a3327b0c6f2638f7d092d5b3b3d6e48a2a5472f 100755 (executable)
@@ -557,6 +557,8 @@ dhcp_add() {
        config_get leasetime "$cfg" leasetime 12h
        config_get options "$cfg" options
        config_get_bool dynamicdhcp "$cfg" dynamicdhcp 1
+       config_get_bool dynamicdhcpv4 "$cfg" dynamicdhcpv4 $dynamicdhcp
+       config_get_bool dynamicdhcpv6 "$cfg" dynamicdhcpv6 $dynamicdhcp
 
        config_get dhcpv4 "$cfg" dhcpv4
        config_get dhcpv6 "$cfg" dhcpv6
@@ -586,12 +588,12 @@ dhcp_add() {
 
        # make sure the DHCP range is not empty
        if [ "$dhcpv4" != "disabled" ] && eval "$(ipcalc.sh "${subnet%%/*}" "$netmask" "$start" "$limit")" ; then
-               [ "$dynamicdhcp" = "0" ] && END="static"
+               [ "$dynamicdhcpv4" = "0" ] && END="static"
 
                xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}"
        fi
 
-       if [ "$dynamicdhcp" = "0" ] ; then
+       if [ "$dynamicdhcpv6" = "0" ] ; then
                dhcp6range="::,static"
        else
                dhcp6range="::1000,::ffff"