dnsmasq: load instance-specific conf-file if exists
[openwrt/openwrt.git] / package / network / services / dnsmasq / files / dnsmasq.init
index 1ecbb3c689365b33c71c8110fb512a43e3febdb6..34c35c2dc65afc3abe170aca25ad259815fd1ed7 100644 (file)
@@ -559,9 +559,14 @@ dnsmasq_start()
        echo "# auto-generated config file from /etc/config/dhcp" > $CONFIGFILE_TMP
        echo "# auto-generated config file from /etc/config/dhcp" > $HOSTFILE
 
+       local dnsmasqconffile="/etc/dnsmasq.${cfg}.conf"
+       if [ ! -r "$dnsmasqconffile" ]; then
+               dnsmasqconffile=/etc/dnsmasq.conf
+       fi
+
        # if we did this last, we could override auto-generated config
-       [ -f /etc/dnsmasq.conf ] && {
-               xappend "--conf-file=/etc/dnsmasq.conf"
+       [ -f "${dnsmasqconffile}" ] && {
+               xappend "--conf-file=${dnsmasqconffile}"
        }
 
        $PROG --version | grep -osqE "^Compile time options:.* DHCPv6( |$)" && DHCPv6CAPABLE=1 || DHCPv6CAPABLE=0
@@ -775,11 +780,6 @@ dnsmasq_start()
        procd_set_param file $CONFIGFILE
        procd_set_param respawn
 
-       local dnsmasqconffile="/etc/dnsmasq.${cfg}.conf"
-       if [ ! -r "$dnsmasqconffile" ]; then
-               dnsmasqconffile=/etc/dnsmasq.conf
-       fi
-
        procd_add_jail dnsmasq ubus log
        procd_add_jail_mount $CONFIGFILE $TRUSTANCHORSFILE $HOSTFILE /etc/passwd /etc/group /etc/TZ /dev/null /dev/urandom $dnsmasqconffile $dnsmasqconfdir $resolvfile $dhcpscript /etc/hosts /etc/ethers $EXTRA_MOUNT
        procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile