diff --git a/ReadMe.md b/ReadMe.md index 53f6a81..b7e4f03 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -586,11 +586,11 @@ rtt min/avg/max/mdev = 5.954/6.133/6.313/0.195 ms | `force-AAAA-SOA` | 强制 AAAA 地址返回 SOA | `no` | [`yes`\|`no`] | `force-AAAA-SOA yes` | | `force-qtype-SOA` | 强制指定 qtype 返回 SOA | qtype id | [`` \| ...] | `force-qtype-SOA 65 28` | `prefetch-domain` | 域名预先获取功能 | `no` | [`yes`\|`no`] | `prefetch-domain yes` | -| `serve-expired` | 过期缓存服务功能 | `no` | [`yes`\|`no`],开启此功能后,如果有请求时尝试回应 TTL 为 0 的过期记录,并发查询记录,以避免查询等待 | +| `serve-expired` | 过期缓存服务功能 | `yes` | [`yes`\|`no`],开启此功能后,如果有请求时尝试回应 TTL 为 0 的过期记录,并发查询记录,以避免查询等待 | | `serve-expired-ttl` | 过期缓存服务最长超时时间 | `0` | 秒,`0` 表示停用超时,大于 `0` 表示指定的超时的秒数 | `serve-expired-ttl 0` | | `serve-expired-reply-ttl` | 回应的过期缓存 TTL | `5` | 秒,`0` 表示停用超时,大于 `0` 表示指定的超时的秒数 | `serve-expired-reply-ttl 30` | -| `dualstack-ip-selection` | 双栈 IP 优选 | `no` | [`yes`\|`no`] | `dualstack-ip-selection yes` | -| `dualstack-ip-selection-threshold` | 双栈 IP 优选阈值 | `30ms` | 单位为毫秒(`ms`) | `dualstack-ip-selection-threshold [0-1000]` | +| `dualstack-ip-selection` | 双栈 IP 优选 | `yes` | [`yes`\|`no`] | `dualstack-ip-selection yes` | +| `dualstack-ip-selection-threshold` | 双栈 IP 优选阈值 | `15ms` | 单位为毫秒(`ms`) | `dualstack-ip-selection-threshold [0-1000]` | | `ca-file` | 证书文件 | `/etc/ssl/certs/ca-certificates.crt` | 合法路径字符串 | `ca-file /etc/ssl/certs/ca-certificates.crt` | | `ca-path` | 证书文件路径 | `/etc/ssl/certs` | 合法路径字符串 | `ca-path /etc/ssl/certs` | diff --git a/ReadMe_en.md b/ReadMe_en.md index 8e01529..405be08 100755 --- a/ReadMe_en.md +++ b/ReadMe_en.md @@ -530,11 +530,11 @@ Note: Merlin firmware is derived from ASUS firmware and can theoretically be use |force-AAAA-SOA|force AAAA query return SOA|no|[yes\|no]|force-AAAA-SOA yes |force-qtype-SOA|force specific qtype return SOA|qtype id|[qtypeid | ...]|force-qtype-SOA 65 28 |prefetch-domain|domain prefetch feature|no|[yes\|no]|prefetch-domain yes -|serve-expired|Cache serve expired feature|no|[yes\|no], Attempts to serve old responses from cache with a TTL of 0 in the response without waiting for the actual resolution to finish.|serve-expired yes +|serve-expired|Cache serve expired feature|yes|[yes\|no], Attempts to serve old responses from cache with a TTL of 0 in the response without waiting for the actual resolution to finish.|serve-expired yes |serve-expired-ttl|Cache serve expired limite TTL|0|second,0:disable,> 0 seconds after expiration|serve-expired-ttl 0 |serve-expired-reply-ttl|TTL value to use when replying with expired data|5|second,0:disable,> 0 seconds after expiration|serve-expired-reply-ttl 30 -|dualstack-ip-selection|Dualstack ip selection|no|[yes\|no]|dualstack-ip-selection yes -|dualstack-ip-selection-threshold|Dualstack ip select threadhold|30ms|millisecond|dualstack-ip-selection-threshold [0-1000] +|dualstack-ip-selection|Dualstack ip selection|yes|[yes\|no]|dualstack-ip-selection yes +|dualstack-ip-selection-threshold|Dualstack ip select threadhold|15ms|millisecond|dualstack-ip-selection-threshold [0-1000] |ca-file|certificate file|/etc/ssl/certs/ca-certificates.crt|path|ca-file /etc/ssl/certs/ca-certificates.crt |ca-path|certificates path|/etc/ssl/certs|path|ca-path /etc/ssl/certs diff --git a/package/luci-compat/files/luci/model/cbi/smartdns/smartdns.lua b/package/luci-compat/files/luci/model/cbi/smartdns/smartdns.lua index b9ba907..4bcaf88 100644 --- a/package/luci-compat/files/luci/model/cbi/smartdns/smartdns.lua +++ b/package/luci-compat/files/luci/model/cbi/smartdns/smartdns.lua @@ -70,7 +70,7 @@ end ---- Support DualStack ip selection o = s:taboption("settings", Flag, "dualstack_ip_selection", translate("Dual-stack IP Selection"), translate("Enable IP selection between IPV4 and IPV6")) o.rmempty = false -o.default = o.disabled +o.default = o.enabled o.cfgvalue = function(...) return Flag.cfgvalue(...) or "0" end @@ -87,7 +87,7 @@ end o = s:taboption("settings", Flag, "serve_expired", translate("Serve expired"), translate("Attempts to serve old responses from cache with a TTL of 0 in the response without waiting for the actual resolution to finish.")) o.rmempty = false -o.default = o.disabled +o.default = o.enabled o.cfgvalue = function(...) return Flag.cfgvalue(...) or "0" end @@ -112,8 +112,8 @@ o.rempty = true ---- rr-ttl-min o = s:taboption("settings", Value, "rr_ttl_min", translate("Domain TTL Min"), translate("Minimum TTL for all domain result.")) o.rempty = true -o.placeholder = "300" -o.default = 300 +o.placeholder = "600" +o.default = 600 o.optional = true ---- second dns server 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 4d13775..b385115 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 @@ -188,7 +188,7 @@ return L.view.extend({ o = s.taboption("settings", form.Flag, "dualstack_ip_selection", _("Dual-stack IP Selection"), _("Enable IP selection between IPV4 and IPV6")); o.rmempty = false; - o.default = o.disabled; + o.default = o.enabled; // Domain prefetch load ; o = s.taboption("settings", form.Flag, "prefetch_domain", _("Domain prefetch"), @@ -200,7 +200,7 @@ return L.view.extend({ o = s.taboption("settings", form.Flag, "serve_expired", _("Serve expired"), _("Attempts to serve old responses from cache with a TTL of 0 in the response without waiting for the actual resolution to finish.")); o.rmempty = false; - o.default = o.disabled; + o.default = o.enabled; // Redirect; o = s.taboption("settings", form.ListValue, "redirect", _("Redirect"), _("SmartDNS redirect mode")); @@ -223,8 +223,8 @@ return L.view.extend({ o = s.taboption("settings", form.Value, "rr_ttl_min", _("Domain TTL Min"), _("Minimum TTL for all domain result.")); o.rempty = true; - o.placeholder = "300"; - o.default = 300; + o.placeholder = "600"; + o.default = 600; o.optional = true; // second dns server; diff --git a/src/dns_conf.c b/src/dns_conf.c index 7b08f20..ca72b63 100644 --- a/src/dns_conf.c +++ b/src/dns_conf.c @@ -50,7 +50,7 @@ int dns_conf_tcp_idle_time = 120; /* cache */ int dns_conf_cachesize = DEFAULT_DNS_CACHE_SIZE; int dns_conf_prefetch = 0; -int dns_conf_serve_expired = 0; +int dns_conf_serve_expired = 1; int dns_conf_serve_expired_ttl = 0; int dns_conf_serve_expired_reply_ttl = 5; @@ -90,12 +90,12 @@ art_tree dns_conf_domain_rule; struct dns_conf_address_rule dns_conf_address_rule; /* dual-stack selection */ -int dns_conf_dualstack_ip_selection; -int dns_conf_dualstack_ip_selection_threshold = 30; +int dns_conf_dualstack_ip_selection = 1; +int dns_conf_dualstack_ip_selection_threshold = 15; /* TTL */ int dns_conf_rr_ttl; -int dns_conf_rr_ttl_min; +int dns_conf_rr_ttl_min = 600; int dns_conf_rr_ttl_max; int dns_conf_force_AAAA_SOA;