openwrt: remove deprecated option and restore dnsmasq when stop

This commit is contained in:
Nick Peng
2022-09-29 23:53:51 +08:00
parent ccb47ef327
commit eeaadcf313

View File

@@ -31,6 +31,7 @@ CUSTOM_CONF="$SMARTDNS_CONF_DIR/custom.conf"
SMARTDNS_CONF_TMP="${SMARTDNS_CONF}.tmp" SMARTDNS_CONF_TMP="${SMARTDNS_CONF}.tmp"
COREDUMP="0" COREDUMP="0"
RESPAWN="1" RESPAWN="1"
DO_RELOAD="0"
set_forward_dnsmasq() set_forward_dnsmasq()
{ {
@@ -48,7 +49,7 @@ set_forward_dnsmasq()
uci -q set dhcp.@dnsmasq[0].rebind_protection=0 uci -q set dhcp.@dnsmasq[0].rebind_protection=0
uci -q set dhcp.@dnsmasq[0].domainneeded=0 uci -q set dhcp.@dnsmasq[0].domainneeded=0
uci commit dhcp uci commit dhcp
/etc/init.d/dnsmasq restart /etc/init.d/dnsmasq reload
} }
stop_forward_dnsmasq() stop_forward_dnsmasq()
@@ -66,7 +67,7 @@ stop_forward_dnsmasq()
uci -q set dhcp.@dnsmasq[0].rebind_protection=1 uci -q set dhcp.@dnsmasq[0].rebind_protection=1
uci -q set dhcp.@dnsmasq[0].domainneeded=1 uci -q set dhcp.@dnsmasq[0].domainneeded=1
uci commit dhcp uci commit dhcp
[ "$norestart" != "1" ] && /etc/init.d/dnsmasq restart [ "$norestart" != "1" ] && /etc/init.d/dnsmasq reload
} }
set_main_dns() set_main_dns()
@@ -79,7 +80,7 @@ set_main_dns()
[ -z "$hostip" ] && return [ -z "$hostip" ] && return
[ "$dnsmasq_port" = "53" ] && { [ "$dnsmasq_port" = "53" ] && {
uci -q set dhcp.@dnsmasq[0].port=0 uci -q set dhcp.@dnsmasq[0].port=0
uci -q set dhcp.lan.dhcp_option="6,$hostip" uci -q add_list dhcp.lan.dhcp_option="6,$hostip"
} }
# for some third-party firmware # for some third-party firmware
@@ -90,12 +91,13 @@ set_main_dns()
} }
uci commit dhcp uci commit dhcp
/etc/init.d/dnsmasq restart /etc/init.d/dnsmasq reload
} }
stop_main_dns() stop_main_dns()
{ {
local norestart="$1" local norestart="$1"
hostip="$(uci -q get network.lan.ipaddr)"
dnsmasq_port="$(uci -q get dhcp.@dnsmasq[0].port)" dnsmasq_port="$(uci -q get dhcp.@dnsmasq[0].port)"
redir_dns="$(uci -q get dhcp.@dnsmasq[0].old_dns_redirect)" redir_dns="$(uci -q get dhcp.@dnsmasq[0].old_dns_redirect)"
[ "$dnsmasq_port" != "0" ] && return [ "$dnsmasq_port" != "0" ] && return
@@ -104,9 +106,9 @@ stop_main_dns()
uci -q delete dhcp.@dnsmasq[0].old_dns_redirect uci -q delete dhcp.@dnsmasq[0].old_dns_redirect
} }
uci -q delete dhcp.@dnsmasq[0].port uci -q delete dhcp.@dnsmasq[0].port
uci -q delete dhcp.lan.dhcp_option uci -q del_list dhcp.lan.dhcp_option="6,$hostip"
uci commit dhcp uci commit dhcp
[ "$norestart" != "1" ] && /etc/init.d/dnsmasq restart [ "$norestart" != "1" ] && /etc/init.d/dnsmasq reload
} }
clear_iptable() clear_iptable()
@@ -452,10 +454,16 @@ load_service()
unload_service() unload_service()
{ {
local section="$1" local section="$1"
[ "$DO_RELOAD" = "1" ] && return 0
config_get_bool enabled "$section" "enabled" '0'
dnsmasq_port="$(uci -q get dhcp.@dnsmasq[0].port)" dnsmasq_port="$(uci -q get dhcp.@dnsmasq[0].port)"
config_get port "$section" "port" "53" config_get port "$section" "port" "53"
config_get old_port "$section" "old_port" "0"
config_get auto_set_dnsmasq "$section" "auto_set_dnsmasq" "0" config_get auto_set_dnsmasq "$section" "auto_set_dnsmasq" "0"
config_get old_enabled "$section" "old_enabled" "0"
config_get old_port "$section" "old_port" "0"
config_get old_auto_set_dnsmasq "$section" "old_auto_set_dnsmasq" "0"
[ -z "${dnsmasq_port}" ] && dnsmasq_port="53" [ -z "${dnsmasq_port}" ] && dnsmasq_port="53"
[ "$enabled" = "1" ] && { [ "$enabled" = "1" ] && {
@@ -479,6 +487,8 @@ start_service()
reload_service() reload_service()
{ {
DO_RELOAD="1"
stop stop
start start
DO_RELOAD="0"
} }