dnsmasq: prefer localuse over resolvfile guesswork
authorYousong Zhou <yszhou4tech@gmail.com>
Wed, 20 Feb 2019 06:58:51 +0000 (06:58 +0000)
committerYousong Zhou <yszhou4tech@gmail.com>
Sun, 24 Feb 2019 01:57:31 +0000 (01:57 +0000)
This makes it clear that localuse when explicitly specified in the
config will have its final say on whether or not the initscript should
touch /etc/resolv.conf, no matter whatever the result of previous
guesswork would be

(cherry picked from c17a68cc61a0f8a28e19c7f60b24beaf1a1a402d)
Tested-by: Paul Oranje <por@oranjevos.nl>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Acked-by: Hans Dedecker <dedeckeh@gmail.com>
Acked-by: Paul Oranje <por@oranjevos.nl>
package/network/services/dnsmasq/Makefile
package/network/services/dnsmasq/files/dnsmasq.init

index c50717d09113648e58cc41bc2578e440f9f9e9ac..eff9cfea244f2663e24b412ac4755128089779df 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
 PKG_VERSION:=2.80
-PKG_RELEASE:=1.3
+PKG_RELEASE:=1.4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
index b119981cb806bf4fdac4727228e631400125678b..33ef98ce56c06e260b5d482badd0a279d515253f 100644 (file)
@@ -733,7 +733,7 @@ dnsmasq_start()
 {
        local cfg="$1"
        local disabled user_dhcpscript
-       local resolvfile localuse
+       local resolvfile localuse=0
 
        config_get_bool disabled "$cfg" disabled 0
        [ "$disabled" -gt 0 ] && return 0
@@ -883,13 +883,13 @@ dnsmasq_start()
        config_get_bool cachelocal "$cfg" cachelocal 1
 
        config_get_bool noresolv "$cfg" noresolv 0
-       config_get_bool localuse "$cfg" localuse 0
        if [ "$noresolv" != "1" ]; then
                config_get resolvfile "$cfg" resolvfile /tmp/resolv.conf.auto
                [ -n "$resolvfile" -a ! -e "$resolvfile" ] && touch "$resolvfile"
                xappend "--resolv-file=$resolvfile"
                [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && localuse=1
        fi
+       config_get_bool localuse "$cfg" localuse "$localuse"
 
        config_get hostsfile "$cfg" dhcphostsfile
        [ -e "$hostsfile" ] && xappend "--dhcp-hostsfile=$hostsfile"
@@ -1039,13 +1039,13 @@ dnsmasq_start()
 dnsmasq_stop()
 {
        local cfg="$1"
-       local noresolv resolvfile localuse
+       local noresolv resolvfile localuse=0
 
        config_get_bool noresolv "$cfg" noresolv 0
-       config_get_bool localuse "$cfg" localuse 0
        config_get resolvfile "$cfg" "resolvfile"
 
        [ "$noresolv" = 0 -a "$resolvfile" = "/tmp/resolv.conf.auto" ] && localuse=1
+       config_get_bool localuse "$cfg" localuse "$localuse"
        [ "$localuse" -gt 0 ] && ln -sf "/tmp/resolv.conf.auto" /tmp/resolv.conf
 
        rm -f ${BASEDHCPSTAMPFILE}.${cfg}.*.dhcp