From 55f3d0c53caf18ca49e91dc07e56631666a95605 Mon Sep 17 00:00:00 2001 From: xiaorouji <60100640+xiaorouji@users.noreply.github.com> Date: Thu, 5 May 2022 22:20:08 +0800 Subject: [PATCH] luci: fix some problems --- luci-app-passwall/Makefile | 2 +- .../model/cbi/passwall/api/gen_v2ray.lua | 31 ++++++---- .../luasrc/model/cbi/passwall/client/acl.lua | 4 +- .../model/cbi/passwall/client/acl_config.lua | 61 ++++++++++--------- .../model/cbi/passwall/client/global.lua | 1 + 5 files changed, 54 insertions(+), 45 deletions(-) diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index fbdb93a83..a1c5ad7dc 100644 --- a/luci-app-passwall/Makefile +++ b/luci-app-passwall/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall PKG_VERSION:=4.54 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_Transparent_Proxy \ diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_v2ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_v2ray.lua index 9ad38aebd..521c2354c 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_v2ray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_v2ray.lua @@ -523,6 +523,7 @@ end if remote_dns_server or remote_dns_doh_url or remote_dns_fake then local rules = {} local _remote_dns_proto = "tcp" + local _remote_dns_host if not routing then routing = { @@ -554,6 +555,7 @@ if remote_dns_server or remote_dns_doh_url or remote_dns_fake then if remote_dns_doh_url and remote_dns_doh_host then if remote_dns_server and remote_dns_doh_host ~= remote_dns_server and not api.is_ip(remote_dns_doh_host) then dns.hosts[remote_dns_doh_host] = remote_dns_server + _remote_dns_host = remote_dns_doh_host end _remote_dns.address = remote_dns_doh_url _remote_dns.port = tonumber(remote_dns_port) @@ -667,20 +669,25 @@ if remote_dns_server or remote_dns_doh_url or remote_dns_fake then end end end - if dns_outboundTag == "direct" then - table.insert(routing.rules, { - type = "field", - ip = { - remote_dns_server - }, - port = tonumber(remote_dns_port), - outboundTag = dns_outboundTag - }) - else + table.insert(rules, { + type = "field", + inboundTag = { + "dns-in1" + }, + ip = { + remote_dns_server + }, + port = tonumber(remote_dns_port), + outboundTag = dns_outboundTag + }) + if _remote_dns_host then table.insert(rules, { type = "field", - ip = { - remote_dns_server + inboundTag = { + "dns-in1" + }, + domain = { + _remote_dns_host }, port = tonumber(remote_dns_port), outboundTag = dns_outboundTag diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua index 661fcbff4..c387a8c29 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua @@ -59,7 +59,7 @@ o.cfgvalue = function(t, n) end ---- TCP Proxy Mode -tcp_proxy_mode = s:option(ListValue, "tcp_proxy_mode", translatef("%s Proxy Mode", "TCP")) +tcp_proxy_mode = s:option(ListValue, "tcp_proxy_mode", "TCP " .. translate("Proxy Mode")) tcp_proxy_mode.default = "default" tcp_proxy_mode.rmempty = false tcp_proxy_mode:value("default", translate("Default")) @@ -74,7 +74,7 @@ end tcp_proxy_mode:value("direct/proxy", translate("Only use direct/proxy list")) ---- UDP Proxy Mode -udp_proxy_mode = s:option(ListValue, "udp_proxy_mode", translatef("%s Proxy Mode", "UDP")) +udp_proxy_mode = s:option(ListValue, "udp_proxy_mode", "UDP " .. translate("Proxy Mode")) udp_proxy_mode.default = "default" udp_proxy_mode.rmempty = false udp_proxy_mode:value("default", translate("Default")) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua index a858d409f..5bac5c5b3 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua @@ -135,36 +135,6 @@ sources.validate = function(self, value, t) end sources.write = dynamicList_write ----- TCP Proxy Mode -tcp_proxy_mode = s:option(ListValue, "tcp_proxy_mode", translatef("%s Proxy Mode", "TCP")) -tcp_proxy_mode.default = "default" -tcp_proxy_mode.rmempty = false -tcp_proxy_mode:value("default", translate("Default")) -tcp_proxy_mode:value("disable", translate("No Proxy")) -tcp_proxy_mode:value("global", translate("Global Proxy")) -if has_chnlist and global_proxy_mode:find("returnhome") then - tcp_proxy_mode:value("returnhome", translate("China List")) -else - tcp_proxy_mode:value("gfwlist", translate("GFW List")) - tcp_proxy_mode:value("chnroute", translate("Not China List")) -end -tcp_proxy_mode:value("direct/proxy", translate("Only use direct/proxy list")) - ----- UDP Proxy Mode -udp_proxy_mode = s:option(ListValue, "udp_proxy_mode", translatef("%s Proxy Mode", "UDP")) -udp_proxy_mode.default = "default" -udp_proxy_mode.rmempty = false -udp_proxy_mode:value("default", translate("Default")) -udp_proxy_mode:value("disable", translate("No Proxy")) -udp_proxy_mode:value("global", translate("Global Proxy")) -if has_chnlist and global_proxy_mode:find("returnhome") then - udp_proxy_mode:value("returnhome", translate("China List")) -else - udp_proxy_mode:value("gfwlist", translate("GFW List")) - udp_proxy_mode:value("chnroute", translate("Not China List")) -end -udp_proxy_mode:value("direct/proxy", translate("Only use direct/proxy list")) - ---- TCP No Redir Ports o = s:option(Value, "tcp_no_redir_ports", translate("TCP No Redir Ports")) o.default = "default" @@ -208,6 +178,36 @@ o:value("default", translate("Default")) o:value("1:65535", translate("All")) o:value("53", "53") +---- TCP Proxy Mode +tcp_proxy_mode = s:option(ListValue, "tcp_proxy_mode", "TCP " .. translate("Proxy Mode")) +tcp_proxy_mode.default = "default" +tcp_proxy_mode.rmempty = false +tcp_proxy_mode:value("default", translate("Default")) +tcp_proxy_mode:value("disable", translate("No Proxy")) +tcp_proxy_mode:value("global", translate("Global Proxy")) +if has_chnlist and global_proxy_mode:find("returnhome") then + tcp_proxy_mode:value("returnhome", translate("China List")) +else + tcp_proxy_mode:value("gfwlist", translate("GFW List")) + tcp_proxy_mode:value("chnroute", translate("Not China List")) +end +tcp_proxy_mode:value("direct/proxy", translate("Only use direct/proxy list")) + +---- UDP Proxy Mode +udp_proxy_mode = s:option(ListValue, "udp_proxy_mode", "UDP " .. translate("Proxy Mode")) +udp_proxy_mode.default = "default" +udp_proxy_mode.rmempty = false +udp_proxy_mode:value("default", translate("Default")) +udp_proxy_mode:value("disable", translate("No Proxy")) +udp_proxy_mode:value("global", translate("Global Proxy")) +if has_chnlist and global_proxy_mode:find("returnhome") then + udp_proxy_mode:value("returnhome", translate("China List")) +else + udp_proxy_mode:value("gfwlist", translate("GFW List")) + udp_proxy_mode:value("chnroute", translate("Not China List")) +end +udp_proxy_mode:value("direct/proxy", translate("Only use direct/proxy list")) + tcp_node = s:option(ListValue, "tcp_node", "" .. translate("TCP Node") .. "") tcp_node.default = "default" tcp_node:value("default", translate("Default")) @@ -268,6 +268,7 @@ if has_v2ray or has_xray then o.default = "https://1.1.1.1/dns-query" o.validate = function(self, value, t) if value ~= "" then + value = api.trim(value) local flag = 0 local util = require "luci.util" local val = util.split(value, ",") 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 9f9da3e81..1ab9a3711 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -37,6 +37,7 @@ end) local doh_validate = function(self, value, t) if value ~= "" then + value = api.trim(value) local flag = 0 local util = require "luci.util" local val = util.split(value, ",")