diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index 5ea0e1fc..59fb7c16 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:=26.8.12 +PKG_VERSION:=26.8.19 PKG_RELEASE:=1 PKG_PO_VERSION:=$(PKG_VERSION) diff --git a/luci-app-passwall/luasrc/controller/passwall.lua b/luci-app-passwall/luasrc/controller/passwall.lua index 20c0d311..7d1272da 100644 --- a/luci-app-passwall/luasrc/controller/passwall.lua +++ b/luci-app-passwall/luasrc/controller/passwall.lua @@ -389,12 +389,12 @@ function socks_status() local index = http.formvalue("index") local id = http.formvalue("id") e.index = index - e.socks_status = luci.sys.call(string.format("/bin/busybox top -bn1 | grep -v -E 'grep|acl/|acl_' | grep '%s/bin/' | grep '%s' > /dev/null", appname, id)) == 0 + e.socks_status = luci.sys.call(string.format("/bin/busybox top -bn1 | grep -v -E 'grep|acl/|acl_' | grep '%s/bin/' | grep '/%s' > /dev/null", appname, id)) == 0 local use_http = uci_get(id, "http_port") or 0 e.use_http = 0 if tonumber(use_http) > 0 then e.use_http = 1 - e.http_status = luci.sys.call(string.format("/bin/busybox top -bn1 | grep -v -E 'grep|acl/|acl_' | grep '%s/bin/' | grep '%s' | grep -E '\\+http|_http' > /dev/null", appname, id)) == 0 + e.http_status = luci.sys.call(string.format("/bin/busybox top -bn1 | grep -v -E 'grep|acl/|acl_' | grep '%s/bin/' | grep '/%s' | grep -E '\\+http|_http' > /dev/null", appname, id)) == 0 end http_write_json(e) end diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua index 01186b1c..2e1b90bc 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua @@ -63,15 +63,9 @@ o:value("shadowsocks", "Shadowsocks") o:value("trojan", "Trojan") o:value("hysteria2", "Hysteria2") o:value("wireguard", "WireGuard") -o:value("dokodemo-door", "dokodemo-door") +o:value("tunnel", "Tunnel") o:depends({ custom = false }) -o = s:option(DummyValue, "is_endpoint", "") -o.not_rewrite = true -o.template = m:template_path("/cbi/hidevalue") -o.value = "1" -o:depends({ custom = false, protocol = "wireguard" }) - o = s:option(Value, "port", translate("Listen Port")) o.datatype = "port" o:depends({ custom = false }) @@ -93,14 +87,14 @@ o = s:option(ListValue, "d_protocol", translate("Destination protocol")) o:value("tcp", "TCP") o:value("udp", "UDP") o:value("tcp,udp", "TCP,UDP") -o:depends({ protocol = "dokodemo-door" }) +o:depends({ protocol = "tunnel" }) o = s:option(Value, "d_address", translate("Destination address")) -o:depends({ protocol = "dokodemo-door" }) +o:depends({ protocol = "tunnel" }) o = s:option(Value, "d_port", translate("Destination port")) o.datatype = "port" -o:depends({ protocol = "dokodemo-door" }) +o:depends({ protocol = "tunnel" }) o = s:option(Value, "decryption", translate("Encrypt Method") .. " (decryption)") o.default = "none" @@ -411,7 +405,8 @@ end --[[acceptProxyProtocol]] o = s:option(Flag, "acceptProxyProtocol", translate("acceptProxyProtocol"), translate("Whether to receive PROXY protocol, when this node want to be fallback or forwarded by proxy, it must be enable, otherwise it cannot be used.")) o.default = "0" -o:depends({ custom = false, is_endpoint = "" }) +o:depends({ transport = "raw" }) +o:depends({ transport = "ws" }) --[[Fast Open]] o = s:option(Flag, "tcp_fast_open", "TCP " .. translate("Fast Open")) diff --git a/luci-app-passwall/luasrc/passwall/api.lua b/luci-app-passwall/luasrc/passwall/api.lua index d77c229f..5ab686ce 100644 --- a/luci-app-passwall/luasrc/passwall/api.lua +++ b/luci-app-passwall/luasrc/passwall/api.lua @@ -1748,6 +1748,7 @@ function apply_redirect(m) end end else + uci:revert(c_config .. "_redirect") sys.call("/bin/rm -f " .. tmp_uci_file) end end diff --git a/luci-app-passwall/luasrc/passwall/util_xray.lua b/luci-app-passwall/luasrc/passwall/util_xray.lua index 790ded8d..b3b0793b 100644 --- a/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -567,11 +567,11 @@ function gen_config_server(node) version = 2, users = users } - elseif node.protocol == "dokodemo-door" then + elseif node.protocol == "tunnel" then settings = { - network = node.d_protocol, - address = node.d_address, - port = tonumber(node.d_port) + allowedNetwork = node.d_protocol, + rewriteAddress = node.d_address, + rewritePort = tonumber(node.d_port) } elseif node.protocol == "wireguard" then settings = { @@ -1231,8 +1231,8 @@ function gen_config(var) tag = in_tag, listen = "127.0.0.1", port = new_port, - protocol = "dokodemo-door", - settings = {network = "tcp,udp", address = to_node.address, port = tonumber(to_node.port)} + protocol = "tunnel", + settings = {allowedNetwork = "tcp,udp", rewriteAddress = to_node.address, rewritePort = tonumber(to_node.port)} }) if to_node.tls_serverName == nil then to_node.tls_serverName = to_node.address @@ -1587,8 +1587,8 @@ function gen_config(var) if tcp_redir_port or udp_redir_port then local inbound = { - protocol = "dokodemo-door", - settings = {network = "tcp,udp", followRedirect = true}, + protocol = "tunnel", + settings = {allowedNetwork = "tcp,udp", followRedirect = true}, streamSettings = {sockopt = {tproxy = "tproxy"}}, sniffing = { enabled = (xray_settings.sniffing_override_dest == "1") or (node and node.protocol == "_shunt") or false @@ -1614,7 +1614,7 @@ function gen_config(var) if tcp_redir_port then local tcp_inbound = api.clone(inbound) tcp_inbound.tag = "tcp_redir" - tcp_inbound.settings.network = "tcp" + tcp_inbound.settings.allowedNetwork = "tcp" tcp_inbound.port = tonumber(tcp_redir_port) tcp_inbound.streamSettings.sockopt.tproxy = tcp_proxy_way table.insert(inbounds, tcp_inbound) @@ -1623,7 +1623,7 @@ function gen_config(var) if udp_redir_port then local udp_inbound = api.clone(inbound) udp_inbound.tag = "udp_redir" - udp_inbound.settings.network = "udp" + udp_inbound.settings.allowedNetwork = "udp" udp_inbound.port = tonumber(udp_redir_port) table.insert(inbounds, udp_inbound) end @@ -1790,11 +1790,10 @@ function gen_config(var) table.insert(inbounds, { listen = "127.0.0.1", port = tonumber(dns_listen_port), - protocol = "dokodemo-door", + protocol = "tunnel", tag = "dns-in", settings = { - address = "0.0.0.0", - network = "tcp,udp" + allowedNetwork = "tcp,udp" } }) diff --git a/luci-app-passwall/luasrc/view/passwall/cbi/nodes_listvalue.htm b/luci-app-passwall/luasrc/view/passwall/cbi/nodes_listvalue.htm index fe15cf6e..dca74aee 100644 --- a/luci-app-passwall/luasrc/view/passwall/cbi/nodes_listvalue.htm +++ b/luci-app-passwall/luasrc/view/passwall/cbi/nodes_listvalue.htm @@ -96,7 +96,7 @@ window.lv_dropdown_data["<%=cbid%>"] = <%=json.stringify(dropdown_data)%>;
- <%=pcdata("("..translate("Not set")..")")%> + <%=pcdata("( "..translate("Not Set").." )")%>
@@ -139,7 +139,7 @@ window.lv_dropdown_data["<%=cbid%>"] = <%=json.stringify(dropdown_data)%>; }); lv_registerAdaptive(cbid); setTimeout(() => { - labelSpan.textContent = lv_ellipsisByWidth(cbid, '<%=pcdata(current_label ~= "" and current_label or ("("..translate("Not set")..")"))%>'); + labelSpan.textContent = lv_ellipsisByWidth(cbid, '<%=pcdata(current_label ~= "" and current_label or ("( "..translate("Not Set").." )"))%>'); }, 100); })(); //]]> diff --git a/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server b/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server index f6d9f7ee..7636a1ba 100755 --- a/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server +++ b/luci-app-passwall/root/etc/uci-defaults/luci-app-passwall_server @@ -31,6 +31,10 @@ for sid in $(uci -q show passwall_server | sed -n 's/^passwall_server\.\([^.=]*\ uci -q set "passwall_server.${sid}=server" fi done +for sid in $(uci -q show passwall_server | sed -n 's/^passwall_server\.\([^.=]*\)\.protocol=dokodemo-door$/\1/p'); do + uci -q set "passwall_server.${sid}.protocol=tunnel" +done + uci -q commit passwall_server rm -f /tmp/luci-indexcache /tmp/luci-indexcache.* diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index 20b0504a..2133d663 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -145,13 +145,14 @@ do CONFIG[#CONFIG + 1] = { log = true, remarks = name .. "节点", - currentNode = node_id and (function() - local section = uci_get(node_id) or {} + currentNode = (function(id) + local section = id and uci_get(id) or nil + if not section then return nil end if section[".type"] == "socks" then - return { Socks = node_id } + return { Socks = id } end return section - end)() or nil, + end)(node_id), set = function(o, server) uci_set(szType, option, server) o.newNodeId = server @@ -264,13 +265,14 @@ do log = true, id = t[".name"], remarks = "访问控制列表[" .. i .. "]", - currentNode = node_id and (function() - local section = uci_get(node_id) or {} + currentNode = (function(id) + local section = id and uci_get(id) or nil + if not section then return nil end if section[".type"] == "socks" then - return { Socks = node_id } + return { Socks = id } end return section - end)() or nil, + end)(node_id), set = function(o, server) uci_set(t[".name"], option, server) o.newNodeId = server diff --git a/luci-app-store/root/bin/is-opkg b/luci-app-store/root/bin/is-opkg index 338493c5..49ab4ec0 100755 --- a/luci-app-store/root/bin/is-opkg +++ b/luci-app-store/root/bin/is-opkg @@ -556,7 +556,7 @@ case $action in ;; "link_meta") [[ -d "$META_DIR/meta" ]] || mkdir -p "$META_DIR/meta" - ln -sf "$META_DIR" /tmp/run/istore-meta + [ -e /tmp/run/istore-meta ] || ln -sf "$META_DIR" /tmp/run/istore-meta ;; *) usage