diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua index d508d7155..9cc5cbdb1 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua @@ -364,7 +364,7 @@ o.default = 0 o:depends({ [_n("fallback")] = true }) ]]-- -o = s:option(DynamicList, _n("fallback_list"), "Fallback", translate("dest,path")) +o = s:option(DynamicList, _n("fallback_list"), "Fallback", translate("format: dest,path,xver")) o:depends({ [_n("fallback")] = true }) o = s:option(Flag, _n("bind_local"), translate("Bind Local"), translate("When selected, it can only be accessed localhost.")) diff --git a/luci-app-passwall2/luasrc/passwall2/util_xray.lua b/luci-app-passwall2/luasrc/passwall2/util_xray.lua index 59f101a9b..000205b13 100644 --- a/luci-app-passwall2/luasrc/passwall2/util_xray.lua +++ b/luci-app-passwall2/luasrc/passwall2/util_xray.lua @@ -369,19 +369,19 @@ function gen_config_server(node) local fallbackStr = node.fallback_list[i] if fallbackStr then local tmp = {} - string.gsub(fallbackStr, '[^' .. "," .. ']+', function(w) + string.gsub(fallbackStr, '[^,]+', function(w) table.insert(tmp, w) end) local dest = tmp[1] or "" local path = tmp[2] - if dest:find("%.") then - else + local xver = tonumber(tmp[3]) + if not dest:find("%.") then dest = tonumber(dest) end fallbacks[i] = { path = path, dest = dest, - xver = 1 + xver = xver } end end diff --git a/luci-app-passwall2/root/usr/share/passwall2/iptables.sh b/luci-app-passwall2/root/usr/share/passwall2/iptables.sh index 9a5bd82d0..12d6e3186 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/iptables.sh +++ b/luci-app-passwall2/root/usr/share/passwall2/iptables.sh @@ -468,7 +468,7 @@ load_acl() { $ip6t_m -A PSW2 $(comment "$remarks") ${_ipt_source} -p udp -j RETURN 2>/dev/null unset ipt_tmp ipt_j _ipt_source msg msg2 done - unset enabled sid remarks sources tcp_no_redir_ports udp_no_redir_ports tcp_redir_ports udp_redir_ports node interface + unset enabled sid remarks sources tcp_no_redir_ports udp_no_redir_ports tcp_redir_ports udp_redir_ports node interface write_ipset_direct unset node_remark _acl_list done } diff --git a/luci-app-passwall2/root/usr/share/passwall2/nftables.sh b/luci-app-passwall2/root/usr/share/passwall2/nftables.sh index d90f4207f..a28a73043 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/nftables.sh +++ b/luci-app-passwall2/root/usr/share/passwall2/nftables.sh @@ -519,7 +519,7 @@ load_acl() { nft "add rule $NFTABLE_NAME PSW2_MANGLE_V6 meta l4proto udp ${_ipt_source} counter return comment \"$remarks\"" 2>/dev/null unset nft_chain nft_j _ipt_source msg msg2 done - unset enabled sid remarks sources tcp_proxy_mode udp_proxy_mode tcp_no_redir_ports udp_no_redir_ports tcp_redir_ports udp_redir_ports node interface + unset enabled sid remarks sources tcp_proxy_mode udp_proxy_mode tcp_no_redir_ports udp_no_redir_ports tcp_redir_ports udp_redir_ports node interface write_ipset_direct unset redir_port node_remark _acl_list done }