luci-app-mosdns: tidy up code
This commit is contained in:
parent
d2a8635961
commit
47d0aae310
@ -1,7 +1,7 @@
|
|||||||
if nixio.fs.access("/usr/bin/mosdns") then
|
if nixio.fs.access("/usr/bin/mosdns") then
|
||||||
mosdns_version=luci.sys.exec("/usr/share/mosdns/mosdns.sh version")
|
mosdns_version = luci.sys.exec("/usr/share/mosdns/mosdns.sh version")
|
||||||
else
|
else
|
||||||
mosdns_version="Unknown Version"
|
mosdns_version = "Unknown Version"
|
||||||
end
|
end
|
||||||
m = Map("mosdns")
|
m = Map("mosdns")
|
||||||
m.title = translate("MosDNS") .. " " .. mosdns_version
|
m.title = translate("MosDNS") .. " " .. mosdns_version
|
||||||
@ -24,7 +24,7 @@ configfile.default = "/etc/mosdns/config.yaml"
|
|||||||
listenport = s:option(Value, "listen_port", translate("Listen port"))
|
listenport = s:option(Value, "listen_port", translate("Listen port"))
|
||||||
listenport.datatype = "and(port,min(1))"
|
listenport.datatype = "and(port,min(1))"
|
||||||
listenport.default = 5335
|
listenport.default = 5335
|
||||||
listenport:depends( "configfile", "/etc/mosdns/config.yaml")
|
listenport:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
loglevel = s:option(ListValue, "log_level", translate("Log Level"))
|
loglevel = s:option(ListValue, "log_level", translate("Log Level"))
|
||||||
loglevel:value("debug", translate("Debug"))
|
loglevel:value("debug", translate("Debug"))
|
||||||
@ -32,12 +32,12 @@ loglevel:value("info", translate("Info"))
|
|||||||
loglevel:value("warn", translate("Warning"))
|
loglevel:value("warn", translate("Warning"))
|
||||||
loglevel:value("error", translate("Error"))
|
loglevel:value("error", translate("Error"))
|
||||||
loglevel.default = "info"
|
loglevel.default = "info"
|
||||||
loglevel:depends( "configfile", "/etc/mosdns/config.yaml")
|
loglevel:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
logfile = s:option(Value, "logfile", translate("Log File"))
|
logfile = s:option(Value, "logfile", translate("Log File"))
|
||||||
logfile.placeholder = "/tmp/mosdns.log"
|
logfile.placeholder = "/tmp/mosdns.log"
|
||||||
logfile.default = "/tmp/mosdns.log"
|
logfile.default = "/tmp/mosdns.log"
|
||||||
logfile:depends( "configfile", "/etc/mosdns/config.yaml")
|
logfile:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
redirect = s:option(Flag, "redirect", translate("DNS Forward"), translate("Forward Dnsmasq Domain Name resolution requests to MosDNS"))
|
redirect = s:option(Flag, "redirect", translate("DNS Forward"), translate("Forward Dnsmasq Domain Name resolution requests to MosDNS"))
|
||||||
redirect.default = true
|
redirect.default = true
|
||||||
@ -65,7 +65,7 @@ remote_dns:value("tls://149.112.112.112", "149.112.112.112 (Quad9 DNS)")
|
|||||||
remote_dns:value("tls://45.11.45.11", "45.11.45.11 (DNS.SB)")
|
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.222.222", "208.67.222.222 (Open DNS)")
|
||||||
remote_dns:value("tls://208.67.220.220", "208.67.220.220 (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:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
bootstrap_dns = s:option(ListValue, "bootstrap_dns", translate("Bootstrap DNS servers"), translate("Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT resolvers you specify as upstreams"))
|
bootstrap_dns = s:option(ListValue, "bootstrap_dns", translate("Bootstrap DNS servers"), translate("Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT resolvers you specify as upstreams"))
|
||||||
bootstrap_dns:value("119.29.29.29", "119.29.29.29 (DNSPod Primary)")
|
bootstrap_dns:value("119.29.29.29", "119.29.29.29 (DNSPod Primary)")
|
||||||
@ -76,27 +76,27 @@ bootstrap_dns:value("114.114.114.114", "114.114.114.114 (114DNS Primary)")
|
|||||||
bootstrap_dns:value("114.114.115.115", "114.114.115.115 (114DNS Secondary)")
|
bootstrap_dns:value("114.114.115.115", "114.114.115.115 (114DNS Secondary)")
|
||||||
bootstrap_dns:value("180.76.76.76", "180.76.76.76 (Baidu DNS)")
|
bootstrap_dns:value("180.76.76.76", "180.76.76.76 (Baidu DNS)")
|
||||||
bootstrap_dns.default = "119.29.29.29"
|
bootstrap_dns.default = "119.29.29.29"
|
||||||
bootstrap_dns:depends( "configfile", "/etc/mosdns/config.yaml")
|
bootstrap_dns:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
remote_dns_pipeline = s:option(Flag, "enable_pipeline", translate("TCP/DoT Connection Multiplexing"), translate("Enable TCP/DoT RFC 7766 new Query Pipelining connection multiplexing mode"))
|
remote_dns_pipeline = s:option(Flag, "enable_pipeline", translate("TCP/DoT Connection Multiplexing"), translate("Enable TCP/DoT RFC 7766 new Query Pipelining connection multiplexing mode"))
|
||||||
remote_dns_pipeline.rmempty = false
|
remote_dns_pipeline.rmempty = false
|
||||||
remote_dns_pipeline.default = false
|
remote_dns_pipeline.default = false
|
||||||
remote_dns_pipeline:depends( "configfile", "/etc/mosdns/config.yaml")
|
remote_dns_pipeline:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
cache_size = s:option(Value, "cache_size", translate("DNS Cache Size"))
|
cache_size = s:option(Value, "cache_size", translate("DNS Cache Size"))
|
||||||
cache_size.datatype = "and(uinteger,min(0))"
|
cache_size.datatype = "and(uinteger,min(0))"
|
||||||
cache_size.default = "20000"
|
cache_size.default = "20000"
|
||||||
cache_size:depends( "configfile", "/etc/mosdns/config.yaml")
|
cache_size:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
cache_size = s:option(Value, "cache_survival_time", translate("Cache Survival Time"))
|
cache_size = s:option(Value, "cache_survival_time", translate("Cache Survival Time"))
|
||||||
cache_size.datatype = "and(uinteger,min(0))"
|
cache_size.datatype = "and(uinteger,min(0))"
|
||||||
cache_size.default = "86400"
|
cache_size.default = "86400"
|
||||||
cache_size:depends( "configfile", "/etc/mosdns/config.yaml")
|
cache_size:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
cache_dump = s:option(Flag, "dump_file", translate("Cache Dump"), translate("Save the cache locally and reload the cache dump on the next startup"))
|
cache_dump = s:option(Flag, "dump_file", translate("Cache Dump"), translate("Save the cache locally and reload the cache dump on the next startup"))
|
||||||
cache_dump.rmempty = false
|
cache_dump.rmempty = false
|
||||||
cache_dump.default = false
|
cache_dump.default = false
|
||||||
cache_dump:depends( "configfile", "/etc/mosdns/config.yaml")
|
cache_dump:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
cache_dump = s:option(Value, "dump_interval", translate("Auto Save Cache Interval"))
|
cache_dump = s:option(Value, "dump_interval", translate("Auto Save Cache Interval"))
|
||||||
cache_dump.datatype = "and(uinteger,min(0))"
|
cache_dump.datatype = "and(uinteger,min(0))"
|
||||||
@ -107,15 +107,15 @@ minimal_ttl = s:option(Value, "minimal_ttl", translate("Minimum TTL"))
|
|||||||
minimal_ttl.datatype = "and(uinteger,min(0))"
|
minimal_ttl.datatype = "and(uinteger,min(0))"
|
||||||
minimal_ttl.datatype = "and(uinteger,max(3600))"
|
minimal_ttl.datatype = "and(uinteger,max(3600))"
|
||||||
minimal_ttl.default = "0"
|
minimal_ttl.default = "0"
|
||||||
minimal_ttl:depends( "configfile", "/etc/mosdns/config.yaml")
|
minimal_ttl:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
maximum_ttl = s:option(Value, "maximum_ttl", translate("Maximum TTL"))
|
maximum_ttl = s:option(Value, "maximum_ttl", translate("Maximum TTL"))
|
||||||
maximum_ttl.datatype = "and(uinteger,min(0))"
|
maximum_ttl.datatype = "and(uinteger,min(0))"
|
||||||
maximum_ttl.default = "0"
|
maximum_ttl.default = "0"
|
||||||
maximum_ttl:depends( "configfile", "/etc/mosdns/config.yaml")
|
maximum_ttl:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
|
|
||||||
adblock = s:option(Flag, "adblock", translate("Enable DNS ADblock"))
|
adblock = s:option(Flag, "adblock", translate("Enable DNS ADblock"))
|
||||||
adblock:depends( "configfile", "/etc/mosdns/config.yaml")
|
adblock:depends("configfile", "/etc/mosdns/config.yaml")
|
||||||
adblock.default = false
|
adblock.default = false
|
||||||
|
|
||||||
adblock = s:option(Value, "ad_source", translate("ADblock Source"))
|
adblock = s:option(Value, "ad_source", translate("ADblock Source"))
|
||||||
@ -131,13 +131,13 @@ reload_service = s:option( Button, "_reload", translate("Reload Service"), trans
|
|||||||
reload_service.write = function()
|
reload_service.write = function()
|
||||||
luci.sys.exec("/etc/init.d/mosdns reload")
|
luci.sys.exec("/etc/init.d/mosdns reload")
|
||||||
end
|
end
|
||||||
reload_service:depends( "configfile", "/etc/mosdns/config_custom.yaml")
|
reload_service:depends("configfile", "/etc/mosdns/config_custom.yaml")
|
||||||
|
|
||||||
config = s:option(TextValue, "manual-config")
|
config = s:option(TextValue, "manual-config")
|
||||||
config.description = translate("<font color=\"ff0000\"><strong>View the Custom YAML Configuration file used by this MosDNS. You can edit it as you own need.</strong></font>")
|
config.description = translate("<font color=\"ff0000\"><strong>View the Custom YAML Configuration file used by this MosDNS. You can edit it as you own need.</strong></font>")
|
||||||
config.template = "cbi/tvalue"
|
config.template = "cbi/tvalue"
|
||||||
config.rows = 25
|
config.rows = 25
|
||||||
config:depends( "configfile", "/etc/mosdns/config_custom.yaml")
|
config:depends("configfile", "/etc/mosdns/config_custom.yaml")
|
||||||
|
|
||||||
function config.cfgvalue(self, section)
|
function config.cfgvalue(self, section)
|
||||||
return nixio.fs.readfile("/etc/mosdns/config_custom.yaml")
|
return nixio.fs.readfile("/etc/mosdns/config_custom.yaml")
|
||||||
|
@ -56,9 +56,9 @@ get_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init_yaml() {
|
init_yaml() {
|
||||||
tmpdir=$(mktemp -d) || exit 1
|
TMPDIR=$(mktemp -d) || exit 1
|
||||||
adlist=$($MOSDNS_SCRIPT ad)
|
adlist=$($MOSDNS_SCRIPT ad)
|
||||||
[ $enable_pipeline = 1 ] && enable_pipeline=true || enable_pipeline=false
|
[ $enable_pipeline -eq 1 ] && enable_pipeline=true || enable_pipeline=false
|
||||||
[ "$custom_local_dns" -eq 1 ] && \
|
[ "$custom_local_dns" -eq 1 ] && \
|
||||||
local_dns=$($MOSDNS_SCRIPT dns | awk '{for(i=1;i<=NF;i++)printf "%s- addr: %s\n%s bootstrap: '${bootstrap_dns}'\n%s enable_pipeline: '${enable_pipeline}'\n",s,$i,s,s}' s=' ') || \
|
local_dns=$($MOSDNS_SCRIPT dns | awk '{for(i=1;i<=NF;i++)printf "%s- addr: %s\n%s bootstrap: '${bootstrap_dns}'\n%s enable_pipeline: '${enable_pipeline}'\n",s,$i,s,s}' s=' ') || \
|
||||||
local_dns=$($MOSDNS_SCRIPT dns | awk '{for(i=1;i<=NF;i++)printf "%s- addr: %s\n",s,$i,s}' s=' ')
|
local_dns=$($MOSDNS_SCRIPT dns | awk '{for(i=1;i<=NF;i++)printf "%s- addr: %s\n",s,$i,s}' s=' ')
|
||||||
@ -69,13 +69,13 @@ init_yaml() {
|
|||||||
s,minimal_ttl_custom,$minimal_ttl_custom,g; \
|
s,minimal_ttl_custom,$minimal_ttl_custom,g; \
|
||||||
s,maximum_ttl_custom,$maximum_ttl_custom,g; \
|
s,maximum_ttl_custom,$maximum_ttl_custom,g; \
|
||||||
s,adblock,$adlist,g;s,remote_dns_pipeline,$enable_pipeline,g" $DEFAULT_CONF > $CONF
|
s,adblock,$adlist,g;s,remote_dns_pipeline,$enable_pipeline,g" $DEFAULT_CONF > $CONF
|
||||||
echo "${local_dns}" > $tmpdir/local_dns.txt
|
echo "${local_dns}" > $TMPDIR/local_dns.txt
|
||||||
echo "${remote_dns}" > $tmpdir/remote_dns.txt
|
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
|
sed -i -e '/- addr: local_dns/{r '$TMPDIR/local_dns.txt -e';d};/- addr: remote_dns/{r '$TMPDIR/remote_dns.txt -e';d}' $CONF
|
||||||
[ "$dump_file" -eq 1 ] && sed -i "/lazy_cache_ttl/a\ dump_file: $DUMP_FILE\n dump_interval: $dump_interval" $CONF
|
[ "$dump_file" -eq 1 ] && sed -i "/lazy_cache_ttl/a\ dump_file: $DUMP_FILE\n dump_interval: $dump_interval" $CONF
|
||||||
[ "$dump_file" -eq 1 ] && [ ! -f $DUMP_FILE ] && cp -a $DUMP_FILE_DEFAULT $DUMP_FILE
|
[ "$dump_file" -eq 1 ] && [ ! -f $DUMP_FILE ] && cp -a $DUMP_FILE_DEFAULT $DUMP_FILE
|
||||||
[ "$dump_file" -eq 0 ] && \cp -a $DUMP_FILE_DEFAULT $DUMP_FILE
|
[ "$dump_file" -eq 0 ] && \cp -a $DUMP_FILE_DEFAULT $DUMP_FILE
|
||||||
rm -rf $tmpdir
|
rm -rf $TMPDIR
|
||||||
}
|
}
|
||||||
|
|
||||||
service_triggers() {
|
service_triggers() {
|
||||||
@ -100,7 +100,7 @@ redirect_setting() {
|
|||||||
uci commit dhcp
|
uci commit dhcp
|
||||||
else
|
else
|
||||||
sed -i "/list server/d" /etc/config/dhcp
|
sed -i "/list server/d" /etc/config/dhcp
|
||||||
uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#$(cat /etc/mosdns/config_custom.yaml | awk -F'[:" ]+' '/^\s+listen:/{for(i=1;i<=NF;i++){if($i~/^[0-9]+$/){print $i;exit}}}')"
|
uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#$(awk -F'[:" ]+' '/^\s+listen:/{for(i=1;i<=NF;i++){if($i~/^[0-9]+$/){print $i;exit}}}' $CONF)"
|
||||||
uci set dhcp.@dnsmasq[0].rebind_protection='0'
|
uci set dhcp.@dnsmasq[0].rebind_protection='0'
|
||||||
uci set dhcp.@dnsmasq[0].noresolv="1"
|
uci set dhcp.@dnsmasq[0].noresolv="1"
|
||||||
uci set dhcp.@dnsmasq[0].cachesize='0'
|
uci set dhcp.@dnsmasq[0].cachesize='0'
|
||||||
@ -109,8 +109,7 @@ redirect_setting() {
|
|||||||
touch /etc/mosdns/redirect.lock
|
touch /etc/mosdns/redirect.lock
|
||||||
}
|
}
|
||||||
|
|
||||||
reload_others() {
|
reload_dnsmasq() {
|
||||||
/etc/init.d/network reload
|
|
||||||
/etc/init.d/dnsmasq reload
|
/etc/init.d/dnsmasq reload
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +121,7 @@ reload_service() {
|
|||||||
|
|
||||||
setcron() {
|
setcron() {
|
||||||
sed -i '/mosdns.sh/d' $CRON_FILE 2>/dev/null
|
sed -i '/mosdns.sh/d' $CRON_FILE 2>/dev/null
|
||||||
[ "$geo_auto_update" -eq 1 ] && echo "0 $geo_update_day_time * * $geo_update_week_time $MOSDNS_SCRIPT geodata" >>$CRON_FILE
|
[ "$geo_auto_update" -eq 1 ] && echo "0 $geo_update_day_time * * $geo_update_week_time $MOSDNS_SCRIPT geodata" >> $CRON_FILE
|
||||||
crontab $CRON_FILE
|
crontab $CRON_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +141,7 @@ v2dat_dump() {
|
|||||||
start_service() {
|
start_service() {
|
||||||
config_load "mosdns"
|
config_load "mosdns"
|
||||||
config_foreach get_config "mosdns"
|
config_foreach get_config "mosdns"
|
||||||
[ $enabled != 1 ] && return 1
|
[ $enabled -ne 1 ] && return 1
|
||||||
delcron ; setcron
|
delcron ; setcron
|
||||||
[ "${CONF}" = "/etc/mosdns/config.yaml" ] && init_yaml
|
[ "${CONF}" = "/etc/mosdns/config.yaml" ] && init_yaml
|
||||||
:> $($MOSDNS_SCRIPT logfile)
|
:> $($MOSDNS_SCRIPT logfile)
|
||||||
@ -156,7 +155,7 @@ start_service() {
|
|||||||
procd_close_instance mosdns
|
procd_close_instance mosdns
|
||||||
[ "$redirect" -ne 1 ] && [ -f "/etc/mosdns/redirect.lock" ] && restore_setting
|
[ "$redirect" -ne 1 ] && [ -f "/etc/mosdns/redirect.lock" ] && restore_setting
|
||||||
[ "$redirect" -eq 1 ] && redirect_setting
|
[ "$redirect" -eq 1 ] && redirect_setting
|
||||||
reload_others
|
reload_dnsmasq
|
||||||
update_list=0
|
update_list=0
|
||||||
[ "$adblock" -eq 1 ] && [ "$ad_source" != "geosite.dat" ] && {
|
[ "$adblock" -eq 1 ] && [ "$ad_source" != "geosite.dat" ] && {
|
||||||
[ -s "/etc/mosdns/rule/adlist.txt" ] && [ -f "/etc/mosdns/rule/.ad_source" ] && url_adlist=$(cat /etc/mosdns/rule/.ad_source) || update_list=1
|
[ -s "/etc/mosdns/rule/adlist.txt" ] && [ -f "/etc/mosdns/rule/.ad_source" ] && url_adlist=$(cat /etc/mosdns/rule/.ad_source) || update_list=1
|
||||||
@ -168,7 +167,7 @@ start_service() {
|
|||||||
stop_service() {
|
stop_service() {
|
||||||
config_load "mosdns"
|
config_load "mosdns"
|
||||||
config_foreach get_config "mosdns"
|
config_foreach get_config "mosdns"
|
||||||
[ "$enabled" = "0" ] && [ -f "/etc/mosdns/redirect.lock" ] && restore_setting
|
[ "$enabled" -eq "0" ] && [ -f "/etc/mosdns/redirect.lock" ] && restore_setting
|
||||||
reload_others
|
reload_dnsmasq
|
||||||
delcron
|
delcron
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user