diff --git a/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua b/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua index 9cfb73d..06f0e7e 100644 --- a/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua +++ b/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua @@ -34,18 +34,7 @@ logfile.placeholder = "/tmp/mosdns.log" logfile.default = "/tmp/mosdns.log" logfile:depends( "configfile", "/etc/mosdns/config.yaml") -remote_dns = s:option(Value, "remote_dns1", translate("Remote DNS")) -remote_dns.default = "tls://8.8.8.8" -remote_dns:value("tls://1.1.1.1", "1.1.1.1 (CloudFlare DNS)") -remote_dns:value("tls://8.8.8.8", "8.8.8.8 (Google DNS)") -remote_dns:value("tls://8.8.4.4", "8.8.4.4 (Google DNS)") -remote_dns:value("tls://9.9.9.9", "9.9.9.9 (Quad9 DNS)") -remote_dns:value("tls://45.11.45.11", "45.11.45.11 (DNS.SB)") -remote_dns:value("tls://208.67.222.222", "208.67.222.222 (Open DNS)") -remote_dns:value("tls://208.67.220.220", "208.67.220.220 (Open DNS)") -remote_dns:depends( "configfile", "/etc/mosdns/config.yaml") -remote_dns = s:option(Value, "remote_dns2", " ") -remote_dns.default = "tls://1.1.1.1" +remote_dns = s:option(DynamicList, "remote_dns", translate("Remote DNS")) remote_dns:value("tls://1.1.1.1", "1.1.1.1 (CloudFlare DNS)") remote_dns:value("tls://8.8.8.8", "8.8.8.8 (Google DNS)") remote_dns:value("tls://8.8.4.4", "8.8.4.4 (Google DNS)") diff --git a/luci-app-mosdns/root/etc/config/mosdns b/luci-app-mosdns/root/etc/config/mosdns index a4f573b..81e922c 100644 --- a/luci-app-mosdns/root/etc/config/mosdns +++ b/luci-app-mosdns/root/etc/config/mosdns @@ -10,11 +10,11 @@ config mosdns 'config' option configfile '/etc/mosdns/config.yaml' option log_level 'info' option logfile '/tmp/mosdns.log' - option remote_dns1 'tls://8.8.8.8' - option remote_dns2 'tls://1.1.1.1' option cache_size '200000' option cache_survival_time '259200' option minimal_ttl '0' option maximum_ttl '0' option enable_pipeline '0' + list remote_dns 'tls://8.8.8.8' + list remote_dns 'tls://1.1.1.1' diff --git a/luci-app-mosdns/root/etc/init.d/mosdns b/luci-app-mosdns/root/etc/init.d/mosdns index 6c9e27b..08b4cbd 100755 --- a/luci-app-mosdns/root/etc/init.d/mosdns +++ b/luci-app-mosdns/root/etc/init.d/mosdns @@ -40,25 +40,25 @@ get_config() { config_get maximum_ttl_custom $1 maximum_ttl 0 config_get minimal_ttl_custom $1 minimal_ttl 0 config_get redirect $1 redirect 0 - config_get remote_dns1 $1 remote_dns1 "tls://8.8.8.8" - config_get remote_dns2 $1 remote_dns2 "tls://1.1.1.1" + config_get remote_dns $1 remote_dns "tls://8.8.8.8 tls://1.1.1.1" } init_yaml() { tmpdir=$(mktemp -d) || exit 1 adblock=$(/usr/share/mosdns/mosdns.sh ad) - local_dns=$(/usr/share/mosdns/mosdns.sh dns | xargs -n1 echo " - addr:") [ $enable_pipeline = 1 ] && enable_pipeline=true || enable_pipeline=false + local_dns=$(/usr/share/mosdns/mosdns.sh dns | xargs -n1 echo " - addr:") + remote_dns=$(echo $remote_dns | awk '{for(i=1;i<=NF;i++)printf "%s- addr: %s\n%s enable_pipeline: '${enable_pipeline}'\n",s,$i,s}' s=' ') sed "s,log_level,$log_level,g;s,log_file,$log_file,g; \ s,listen_port,$listen_port,g;s,cache_size,$cache_size,g; \ s,cache_survival_time,$cache_survival_time,g; \ s,minimal_ttl_custom,$minimal_ttl_custom,g; \ s,maximum_ttl_custom,$maximum_ttl_custom,g; \ - s,remote_dns1,$remote_dns1,g;s,remote_dns2,$remote_dns2,g; \ s,adblock,$adblock,g;s,remote_dns_pipeline,$enable_pipeline,g" \ /usr/share/mosdns/default.yaml > $CONF echo "${local_dns}" > $tmpdir/local_dns.txt - sed -i -e '/- addr: local_dns/{r '$tmpdir/local_dns.txt -e';d}' \ + echo "${remote_dns}" > $tmpdir/remote_dns.txt + sed -i -e '/- addr: local_dns/{r '$tmpdir/local_dns.txt -e';d};/- addr: remote_dns/{r '$tmpdir/remote_dns.txt -e';d}' \ $CONF rm -rf $tmpdir } diff --git a/luci-app-mosdns/root/usr/share/mosdns/default.yaml b/luci-app-mosdns/root/usr/share/mosdns/default.yaml index be2eae0..88012de 100644 --- a/luci-app-mosdns/root/usr/share/mosdns/default.yaml +++ b/luci-app-mosdns/root/usr/share/mosdns/default.yaml @@ -64,10 +64,7 @@ plugins: type: fast_forward args: upstream: - - addr: remote_dns1 - enable_pipeline: remote_dns_pipeline - - addr: remote_dns2 - enable_pipeline: remote_dns_pipeline + - addr: remote_dns - tag: query_is_whitelist_domain type: query_matcher