|
@@ -162,7 +162,7 @@ end
|
|
|
|
|
|
---- Domain prefetch load
|
|
|
o = s:taboption("advanced", Flag, "prefetch_domain", translate("Domain prefetch"), translate("Enable domain prefetch, accelerate domain response speed."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -183,8 +183,8 @@ o.rempty = true
|
|
|
|
|
|
---- cache-persist;
|
|
|
o = s:taboption("advanced", Flag, "cache_persist", translate("Cache Persist"), translate("Write cache to disk on exit and load on startup."))
|
|
|
-o.rmempty = false;
|
|
|
-o.default = o.enabled;
|
|
|
+o.rmempty = false
|
|
|
+o.default = o.enabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "1"
|
|
|
end
|
|
@@ -199,8 +199,8 @@ end
|
|
|
|
|
|
-- Force AAAA SOA
|
|
|
o = s:taboption("advanced", Flag, "force_aaaa_soa", translate("Force AAAA SOA"), translate("Force AAAA SOA."))
|
|
|
-o.rmempty = false
|
|
|
-o.default = o.enabled
|
|
|
+o.rmempty = true
|
|
|
+o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
|
end
|
|
@@ -268,6 +268,12 @@ uci:foreach("smartdns", "download-file", function(section)
|
|
|
o:value(section.name);
|
|
|
end)
|
|
|
|
|
|
+---- other args
|
|
|
+o = s:taboption("advanced", Value, "server_flags", translate("Additional Server Args"), translate("Additional server args, refer to the help description of the bind option."))
|
|
|
+o.default = ""
|
|
|
+o.rempty = true
|
|
|
+o.optional = true
|
|
|
+
|
|
|
---- second dns server
|
|
|
---- Eanble
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_enabled", translate("Enable"), translate("Enable or disable second DNS server."))
|
|
@@ -297,7 +303,7 @@ o.datatype = "hostname"
|
|
|
o.rempty = true
|
|
|
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_speed_check", translate("Skip Speed Check"), translate("Do not check speed."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -305,7 +311,7 @@ end
|
|
|
|
|
|
---- skip address rules
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_rule_addr", translate("Skip Address Rules"), translate("Skip address rules."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -313,7 +319,7 @@ end
|
|
|
|
|
|
---- skip name server rules
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_rule_nameserver", translate("Skip Nameserver Rule"), translate("Skip nameserver rules."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -321,7 +327,7 @@ end
|
|
|
|
|
|
---- skip ipset rules
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_rule_ipset", translate("Skip Ipset Rule"), translate("Skip ipset rules."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -329,14 +335,14 @@ end
|
|
|
|
|
|
---- skip soa address rule
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_rule_soa", translate("Skip SOA Address Rule"), translate("Skip SOA address rules."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
|
end
|
|
|
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_dualstack_selection", translate("Skip Dualstack Selection"), translate("Skip Dualstack Selection."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -344,7 +350,7 @@ end
|
|
|
|
|
|
---- skip cache
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_no_cache", translate("Skip Cache"), translate("Skip Cache."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -352,7 +358,7 @@ end
|
|
|
|
|
|
---- Force AAAA SOA
|
|
|
o = s:taboption("seconddns", Flag, "seconddns_force_aaaa_soa", translate("Force AAAA SOA"), translate("Force AAAA SOA."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
@@ -379,6 +385,12 @@ function o.validate(self, value)
|
|
|
return nil, translate("NFTset name format error, format: [#[4|6]:[family#table#set]]")
|
|
|
end
|
|
|
|
|
|
+---- other args
|
|
|
+o = s:taboption("seconddns", Value, "seconddns_server_flags", translate("Additional Server Args"), translate("Additional server args, refer to the help description of the bind option."))
|
|
|
+o.default = ""
|
|
|
+o.rempty = true
|
|
|
+o.optional = true
|
|
|
+
|
|
|
----- Proxy server settings
|
|
|
o = s:taboption("proxy", Value, "proxy_server", translate("Proxy Server"), translate("Proxy Server URL, format: [socks5|http]://user:pass@ip:port."));
|
|
|
o.datatype = 'string';
|
|
@@ -418,12 +430,36 @@ function custom.write(self, section, value)
|
|
|
end
|
|
|
|
|
|
o = s:taboption("custom", Flag, "coredump", translate("Generate Coredump"), translate("Generate Coredump file when smartdns crash, coredump file is located at /tmp/smartdns.xxx.core."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.cfgvalue = function(...)
|
|
|
return Flag.cfgvalue(...) or "0"
|
|
|
end
|
|
|
|
|
|
+o = s:taboption("custom", Value, "log_size", translate("Log Size"))
|
|
|
+o.rmempty = true
|
|
|
+o.placeholder = "default"
|
|
|
+
|
|
|
+o = s:taboption("custom", ListValue, "log_level", translate("Log Level"))
|
|
|
+o.rmempty = true
|
|
|
+o.placeholder = "default"
|
|
|
+o:value("", translate("default"))
|
|
|
+o:value("debug")
|
|
|
+o:value("info")
|
|
|
+o:value("notice")
|
|
|
+o:value("warn")
|
|
|
+o:value("error")
|
|
|
+o:value("fatal")
|
|
|
+o:value("off")
|
|
|
+
|
|
|
+o = s:taboption("custom", Value, "log_num", translate("Log Number"))
|
|
|
+o.rmempty = true
|
|
|
+o.placeholder = "default"
|
|
|
+
|
|
|
+o = s:taboption("custom", Value, "log_file", translate("Log File"))
|
|
|
+o.rmempty = true
|
|
|
+o.placeholder = "/var/log/smartdns/smartdns.log"
|
|
|
+
|
|
|
-- Upstream servers
|
|
|
s = m:section(TypedSection, "server", translate("Upstream Servers"), translate("Upstream Servers, support UDP, TCP protocol. " ..
|
|
|
"Please configure multiple DNS servers, including multiple foreign DNS servers."))
|
|
@@ -522,11 +558,11 @@ end
|
|
|
|
|
|
o = s:taboption("forwarding", Flag, "no_speed_check", translate("Skip Speed Check"),
|
|
|
translate("Do not check speed."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
|
|
|
o = s:taboption("forwarding", Flag, "force_aaaa_soa", translate("Force AAAA SOA"), translate("Force AAAA SOA."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
|
|
|
o = s:taboption("forwarding", Value, "ipset_name", translate("IPset Name"), translate("IPset name."))
|
|
@@ -636,7 +672,7 @@ s.anonymous = true
|
|
|
|
|
|
---- download Files Settings
|
|
|
o = s:option(Flag, "enable_auto_update", translate("Enable Auto Update"), translate("Enable daily auto update."))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.default = o.disabled
|
|
|
o.rempty = true
|
|
|
|
|
@@ -670,11 +706,11 @@ s.addremove = true
|
|
|
s.template = "cbi/tblsection"
|
|
|
|
|
|
o = s:option(Value, 'name', translate('File Name'), translate('File Name'))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.datatype = 'string'
|
|
|
|
|
|
o = s:option(Value, 'url', translate('URL'), translate('URL'))
|
|
|
-o.rmempty = false
|
|
|
+o.rmempty = true
|
|
|
o.datatype = 'string'
|
|
|
function o.validate(self, value, section)
|
|
|
if value == "" then
|
|
@@ -736,7 +772,7 @@ o.write = function()
|
|
|
end
|
|
|
|
|
|
o = s:option(Button, "Restart")
|
|
|
-o.title = translate("Restart smartdns")
|
|
|
+o.title = translate("Restart Service")
|
|
|
o.inputtitle = translate("Restart")
|
|
|
o.inputstyle = "apply"
|
|
|
o.write = function()
|