diff --git a/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder b/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder index 4af897198..6fc34b0b7 100644 --- a/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder +++ b/package/lean/dnsforwarder/files/etc/init.d/dnsforwarder @@ -192,6 +192,12 @@ start() uci commit dhcp /etc/init.d/dnsmasq restart fi + local dnsmasq_server_addr=$(uci get dhcp.@dnsmasq[0].server 2>/dev/null) + if [ -n "${dnsmasq_server_addr}" ]; then + uci set dhcp.@dnsmasq[0].noresolv=1 + uci commit dhcp + /etc/init.d/dnsmasq restart + fi add_cron } @@ -200,8 +206,11 @@ stop() del_cron logger -t stopping dnsforwarder local addr=$(uci get dnsforwarder.@arguments[0].addr 2>/dev/null) + local dnsmasq=$(uci get dnsforwarder.@arguments[0].dnsmasq 2>/dev/null) addr=${addr/:/#} - uci del_list dhcp.@dnsmasq[0].server=$addr 2>/dev/null + if [ "${dnsmasq}" = "1" ]; then + uci del_list dhcp.@dnsmasq[0].server=$addr 2>/dev/null + fi uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.d/resolv.conf.auto 2>/dev/null uci delete dhcp.@dnsmasq[0].noresolv 2>/dev/null uci delete dhcp.@dnsmasq[0].serversfile 2>/dev/null