openwrt: support set smartdns as main server when port is 53

This commit is contained in:
Nick Peng
2022-08-30 01:46:11 +08:00
parent 0eef67c119
commit 7b3dcd31f9
2 changed files with 38 additions and 15 deletions

View File

@@ -176,8 +176,8 @@ return L.view.extend({
// Port;
o = s.taboption("settings", form.Value, "port", _("Local Port"), _("Smartdns local server port"));
o.placeholder = 6053;
o.default = 6053;
o.placeholder = 53;
o.default = 53;
o.datatype = "port";
o.rempty = false;

View File

@@ -69,6 +69,20 @@ stop_forward_dnsmasq()
/etc/init.d/dnsmasq restart
}
set_main_dns()
{
uci set dhcp.@dnsmasq[0].port=0
uci commit dhcp
/etc/init.d/dnsmasq restart
}
stop_main_dns()
{
uci delete dhcp.@dnsmasq[0].port
uci commit dhcp
/etc/init.d/dnsmasq restart
}
set_iptable()
{
local ipv6_server=$1
@@ -274,22 +288,10 @@ load_service()
config_get coredump "$section" "coredump" "0"
[ "$coredump" = "1" ] && COREDUMP="1"
config_get port "$section" "port" "6053"
config_get port "$section" "port" "53"
config_get ipv6_server "$section" "ipv6_server" "1"
config_get tcp_server "$section" "tcp_server" "1"
if [ "$ipv6_server" = "1" ]; then
conf_append "bind" "[::]:$port"
else
conf_append "bind" ":$port"
fi
[ "$tcp_server" = "1" ] && {
if [ "$ipv6_server" = "1" ]; then
conf_append "bind-tcp" "[::]:$port"
else
conf_append "bind-tcp" ":$port"
fi
}
config_get dualstack_ip_selection "$section" "dualstack_ip_selection" "0"
[ "$dualstack_ip_selection" = "0" ] && conf_append "dualstack-ip-selection" "no"
@@ -351,6 +353,9 @@ load_service()
}
fi
[ "$enabled" = "0" ] && [ "$SMARTDNS_PORT" = "53" ] && stop_main_dns
[ "$old_port" != "$SMARTDNS_PORT" ] && [ "$old_port" = "53" ] && stop_main_dns
uci delete smartdns.@smartdns[0].old_redirect 2>/dev/null
uci delete smartdns.@smartdns[0].old_port 2>/dev/null
uci delete smartdns.@smartdns[0].old_enabled 2>/dev/null
@@ -367,6 +372,24 @@ load_service()
set_forward_dnsmasq "$SMARTDNS_PORT"
fi
if [ "$SMARTDNS_PORT" = "53" ]; then
set_main_dns
fi
if [ "$ipv6_server" = "1" ]; then
conf_append "bind" "[::]:$SMARTDNS_PORT"
else
conf_append "bind" ":$SMARTDNS_PORT"
fi
[ "$tcp_server" = "1" ] && {
if [ "$ipv6_server" = "1" ]; then
conf_append "bind-tcp" "[::]:$SMARTDNS_PORT"
else
conf_append "bind-tcp" ":$SMARTDNS_PORT"
fi
}
load_second_server $section
config_foreach load_server "server"