luci-app-mosdns: add optional prefer_ipv4 for remote dns

Signed-off-by: sbwml <admin@cooluc.com>
This commit is contained in:
sbwml 2023-11-07 13:15:56 +08:00
parent ce08474f7c
commit e79a991d75
5 changed files with 15 additions and 1 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-mosdns
PKG_VERSION:=1.5.16
PKG_VERSION:=1.5.17
PKG_RELEASE:=1
LUCI_TITLE:=LuCI Support for mosdns

View File

@ -47,6 +47,10 @@ o:depends("configfile", "/etc/mosdns/config.yaml")
o = s:taboption("basic", Flag, "redirect", translate("DNS Forward"), translate("Forward Dnsmasq Domain Name resolution requests to MosDNS"))
o.default = true
o = s:taboption("basic", Flag, "prefer_ipv4", translate("Remote DNS prefer IPv4"), translate("IPv4 is preferred for remote DNS resolution of dual-stack addresses, and is not affected when the destination is IPv6 only"))
o:depends( "configfile", "/etc/mosdns/config.yaml")
o.default = true
o = s:taboption("basic", Flag, "custom_local_dns", translate("Custom China DNS"), translate("Follow WAN interface DNS if not enabled"))
o:depends( "configfile", "/etc/mosdns/config.yaml")
o.default = false

View File

@ -160,6 +160,12 @@ msgstr "自定义"
msgid "Log File"
msgstr "日志文件"
msgid "Remote DNS prefer IPv4"
msgstr "远程 DNS 首选 IPv4"
msgid "IPv4 is preferred for remote DNS resolution of dual-stack addresses, and is not affected when the destination is IPv6 only"
msgstr "远程 DNS 解析双栈地址时首选 IPv4目标仅 IPv6 时不受影响"
msgid "Custom China DNS"
msgstr "自定义国内 DNS"

View File

@ -6,6 +6,7 @@ config mosdns 'config'
option geo_update_week_time '*'
option geo_update_day_time '2'
option redirect '1'
option prefer_ipv4 '1'
option adblock '0'
option configfile '/etc/mosdns/config.yaml'
option log_level 'info'

View File

@ -49,6 +49,7 @@ 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 prefer_ipv4 $1 prefer_ipv4 0
config_get remote_dns $1 remote_dns "tls://8.8.8.8 tls://1.1.1.1"
config_get custom_local_dns $1 custom_local_dns 0
config_get apple_optimization $1 apple_optimization 0
@ -111,6 +112,8 @@ init_yaml() {
sed -i -e '/- addr: local_dns/{r '$TMPDIR/local_dns.txt -e';d};/- addr: remote_dns/{r '$TMPDIR/remote_dns.txt -e';d}' $CONF
# Convert HTTP/3 prefix format
sed -i 's/h3:\/\//https:\/\//g' $CONF
# Prefer IPv4
[ $prefer_ipv4 -ne 1 ] && sed -i "/prefer_ipv4/d" $CONF
# Cache dump
[ "$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