diff --git a/package/luci/files/root/www/luci-static/resources/view/smartdns/smartdns.js b/package/luci/files/root/www/luci-static/resources/view/smartdns/smartdns.js index ba0e563..f1894e1 100644 --- a/package/luci/files/root/www/luci-static/resources/view/smartdns/smartdns.js +++ b/package/luci/files/root/www/luci-static/resources/view/smartdns/smartdns.js @@ -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; diff --git a/package/openwrt/files/etc/init.d/smartdns b/package/openwrt/files/etc/init.d/smartdns index 1cf5ece..bbb728d 100644 --- a/package/openwrt/files/etc/init.d/smartdns +++ b/package/openwrt/files/etc/init.d/smartdns @@ -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"