diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua index e92b2e8e9..f861f6608 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -570,9 +570,21 @@ o.description = translate("Support Domain / Dnsmasq / AdGuardHome / Hosts format o:depends("adblock",1) o = s:taboption("DNS", DynamicList, "white_list", translate("Adblock white list")) -o.datatype = "host" o.rmempty = true o:depends("adblock",1) +function o.validate(self, value) + local vlist = (type(value) == "table") and value or { value } + + for _, v in ipairs(vlist) do + if v and v ~= "" and not ( + #v < 254 and v:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") and v:match("%.") + ) then + return nil, translate("Invalid domain name") .. ": " .. v + end + end + + return value +end s:tab("Proxy", translate("Mode")) diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po index 16a818e82..8342d28b0 100644 --- a/luci-app-passwall/po/zh-cn/passwall.po +++ b/luci-app-passwall/po/zh-cn/passwall.po @@ -40,6 +40,9 @@ msgstr "广告过滤列表URL" msgid "Adblock white list" msgstr "广告过滤白名单" +msgid "Invalid domain name" +msgstr "无效域名" + msgid "Auto" msgstr "自动"