소스 검색

luci: add response mode option

Nick Peng 2 년 전
부모
커밋
8bbbcd5e86

+ 1 - 1
ReadMe_en.md

@@ -749,7 +749,7 @@ Note: Merlin firmware is derived from ASUS firmware and can theoretically be use
     ...
     ````
 
-1. How to use ipset and nftset
+1. How to use ipset and nftset?  
     Similar to Dnsmasq, smartdns supports ipset and nftset, and can transparently forward specific domain names through TPROXY. The comparison of transparent forwarding and tool modes is as follows:
 
     1. Tools: iptable, nftable

+ 20 - 0
package/luci-compat/files/luci/i18n/smartdns.zh-cn.po

@@ -180,6 +180,15 @@ msgstr "文件类型"
 msgid "Filtering IP with blacklist"
 msgstr "使用IP黑名单过滤"
 
+msgid "First Ping"
+msgstr "最快PING"
+
+msgid "Fastest IP"
+msgstr "最快IP"
+
+msgid "Fastest Response"
+msgstr "最快响应"
+
 msgid "Force AAAA SOA"
 msgstr "停用IPV6地址解析"
 
@@ -311,6 +320,9 @@ msgstr "重启"
 msgid "Restart smartdns"
 msgstr "重启服务"
 
+msgid "Response Mode"
+msgstr "响应模式"
+
 msgid "Second Server Settings"
 msgstr "第二DNS服务器"
 
@@ -420,6 +432,14 @@ msgstr "测速模式"
 msgid "Smartdns speed check mode. "
 msgstr "SmartDns测速模式设置。"
 
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, "
+"Fastest IP: return the fastest IP, Fastest Response: return the fastest "
+"DNS response."
+msgstr ""
+"SmartDNS响应模式,最快PING: 返回最早有ping结果的IP,速度适中;最快IP: "
+"返回最快IP,查询请求可能延长; 最快响应:返回最快响应的结果。查询请求时间短。"
+
 msgid ""
 "Specify an IP address to return for any host in the given domains, Queries "
 "in the domains are never forwarded and always replied to with the specified "

+ 10 - 0
package/luci-compat/files/luci/model/cbi/smartdns/smartdns.lua

@@ -102,6 +102,16 @@ function o.validate (section_id, value)
     return value
 end
 
+---- response mode;
+o = s:taboption("advanced", ListValue, "response_mode", translate("Response Mode"), 
+    translate("Smartdns response mode, First Ping: return the first ping IP, Fastest IP: return the fastest IP, Fastest Response: return the fastest DNS response."))
+o.rmempty     = true
+o.placeholder = "default"
+o:value("", translate("default"))
+o:value("first-ping", translate("First Ping"))
+o:value("fastest-ip", translate("Fastest IP"))
+o:value("fastest-response", translate("Fastest Response"))
+
 ---- Enable TCP server
 o = s:taboption("advanced", Flag, "tcp_server", translate("TCP Server"), translate("Enable TCP DNS Server"))
 o.rmempty     = false

+ 20 - 0
package/luci/files/luci/i18n/smartdns.zh-cn.po

@@ -201,6 +201,15 @@ msgstr "文件类型"
 msgid "Filtering IP with blacklist"
 msgstr "使用IP黑名单过滤"
 
+msgid "First Ping"
+msgstr "最快PING"
+
+msgid "Fastest IP"
+msgstr "最快IP"
+
+msgid "Fastest Response"
+msgstr "最快响应"
+
 msgid "Force AAAA SOA"
 msgstr "停用IPV6地址解析"
 
@@ -343,6 +352,9 @@ msgstr "解析本地主机名"
 msgid "Resolve local hostnames by reading Dnsmasq lease file."
 msgstr "读取Dnsmasq的租约文件解析本地主机名。"
 
+msgid "Response Mode"
+msgstr "响应模式"
+
 msgid "Restart"
 msgstr "重启"
 
@@ -455,6 +467,14 @@ msgstr "SmartDNS的服务器名称,默认为smartdns,留空为主机名"
 msgid "Smartdns speed check mode."
 msgstr "SmartDNS测速模式。"
 
+msgid ""
+"Smartdns response mode, First Ping: return the first ping IP, "
+"Fastest IP: return the fastest IP, Fastest Response: return the fastest "
+"DNS response."
+msgstr ""
+"SmartDNS响应模式,最快PING: 返回最早有ping结果的IP,速度适中;最快IP: "
+"返回最快IP,查询请求可能延长; 最快响应:返回最快响应的结果。查询请求时间短。"
+
 msgid "Speed Check Mode"
 msgstr "测速模式"
 

+ 12 - 2
package/luci/files/root/www/luci-static/resources/view/smartdns/smartdns.js

@@ -199,6 +199,16 @@ return view.extend({
 			return true;
 		}
 
+		// response mode;
+		o = s.taboption("advanced", form.ListValue, "response_mode", _("Response Mode"),
+			_("Smartdns response mode, First Ping: return the first ping IP, Fastest IP: return the fastest IP, Fastest Response: return the fastest DNS response."));
+		o.rmempty = true;
+		o.placeholder = "default";
+		o.value("", _("default"));
+		o.value("first-ping", _("First Ping"));
+		o.value("fastest-ip", _("Fastest IP"));
+		o.value("fastest-response", _("Fastest Response"));
+
 		// Enable TCP server;
 		o = s.taboption("advanced", form.Flag, "tcp_server", _("TCP Server"), _("Enable TCP DNS Server"));
 		o.rmempty = false;
@@ -633,7 +643,7 @@ return view.extend({
 		o.modalonly = true;
 		o.optional = true;
 		o.rempty = true;
-		o.validate = function(section_id, value) {
+		o.validate = function (section_id, value) {
 			var flag = this.formvalue(section_id);
 			if (flag == "0") {
 				return true;
@@ -651,7 +661,7 @@ return view.extend({
 
 			return true;
 		}
-		
+
 		// other args
 		o = s.taboption("advanced", form.Value, "addition_arg", _("Additional Server Args"),
 			_("Additional Args for upstream dns servers"))

+ 3 - 0
package/openwrt/files/etc/init.d/smartdns

@@ -530,6 +530,9 @@ load_service()
 	config_get log_file "$section" "log_file" ""
 	[ -z "$log_file" ] || conf_append "log-file" "$log_file"
 
+	config_get response_mode "$section" "response_mode" ""
+	[ -z "$response_mode" ] || conf_append "response-mode" "$response_mode"
+
 	config_get_bool enable_auto_update "$section" "enable_auto_update" "0"
 	[ "$enable_auto_update" = "1" ] && enable_auto_update || disable_auto_update