From 33b64b2199cd4912fcdae0ba113df33461102468 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 1 Apr 2026 08:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9B=85=20Sync=202026-04-01=2008:55:04?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-passwall/Makefile | 2 +- .../passwall/node_config/link_share_man.htm | 36 ++++++++++++++----- .../root/usr/share/passwall/subscribe.lua | 15 ++++---- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index 437d53ea..55ce50e8 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.3.6 +PKG_VERSION:=26.4.1 PKG_RELEASE:=1 PKG_PO_VERSION:=$(PKG_VERSION) diff --git a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm index b5e9a99d..133b72f9 100644 --- a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm +++ b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm @@ -1063,7 +1063,10 @@ local current_node = map:get(section) opt.set(dom_prefix + 'reality', false); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); - opt.set(dom_prefix + 'tls_allowInsecure', !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0')); + opt.set( + dom_prefix + 'tls_allowInsecure', + !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.allowInsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0') + ); if (queryParam.fp && queryParam.fp.trim() != "") { opt.set(dom_prefix + 'utls', true); opt.set(dom_prefix + 'fingerprint', queryParam.fp); @@ -1234,7 +1237,7 @@ local current_node = map:get(section) var params; for (var i = 0; i < queryArray.length; i++) { params = queryArray[i].split('='); - queryParam[decodeURIComponent(params[0]).toLowerCase()] = decodeURIComponent(params[1] || ''); + queryParam[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || ''); } } opt.set(dom_prefix + 'address', unbracketIP(m.hostname)); @@ -1314,7 +1317,10 @@ local current_node = map:get(section) opt.set(dom_prefix + 'tls_CertSha', queryParam.pcs || ''); opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || ''); } - opt.set(dom_prefix + 'tls_allowInsecure', !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0')); + opt.set( + dom_prefix + 'tls_allowInsecure', + !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.allowInsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0') + ); opt.set(dom_prefix + 'tcp_fast_open', queryParam.tfo); opt.set(dom_prefix + 'use_finalmask', !!queryParam.fm); opt.set(dom_prefix + 'finalmask', queryParam.fm || ""); @@ -1347,7 +1353,10 @@ local current_node = map:get(section) opt.set(dom_prefix + 'tls', ssm.tls === "tls"); if (ssm.tls === "tls") { opt.set(dom_prefix + 'tls_serverName', ssm.sni || ssm.host); - opt.set(dom_prefix + 'tls_allowInsecure', !((ssm.allowinsecure ?? '0') === '0' && (ssm.insecure ?? '0') === '0')); + opt.set( + dom_prefix + 'tls_allowInsecure', + !((ssm.allowinsecure ?? '0') === '0' && (ssm.allowInsecure ?? '0') === '0' && (ssm.insecure ?? '0') === '0') + ); } ssm.net = ssm.net.toLowerCase(); if (ssm.net === "kcp" || ssm.net === "mkcp") @@ -1459,7 +1468,10 @@ local current_node = map:get(section) opt.set(dom_prefix + 'reality', false); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); - opt.set(dom_prefix + 'tls_allowInsecure', !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0')); + opt.set( + dom_prefix + 'tls_allowInsecure', + !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.allowInsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0') + ); if (queryParam.fp && queryParam.fp.trim() != "") { opt.set(dom_prefix + 'utls', true); opt.set(dom_prefix + 'fingerprint', queryParam.fp); @@ -1617,7 +1629,10 @@ local current_node = map:get(section) opt.set(dom_prefix + 'port', m.port || "443"); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ""); - opt.set(dom_prefix + 'tls_allowInsecure', !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0')); + opt.set( + dom_prefix + 'tls_allowInsecure', + !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.allowInsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0') + ); opt.set(dom_prefix + 'tls_CertSha', queryParam.pcs || ''); opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || ''); if (m.hash) { @@ -1657,7 +1672,7 @@ local current_node = map:get(section) var params; for (i = 0; i < queryArray.length; i++) { params = queryArray[i].split('='); - queryParam[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || ''); + queryParam[decodeURIComponent(params[0]).toLowerCase()] = decodeURIComponent(params[1] || ''); } } opt.set(dom_prefix + 'tuic_congestion_control', queryParam.congestion_control || 'cubic'); @@ -1665,7 +1680,10 @@ local current_node = map:get(section) opt.set(dom_prefix + 'tuic_alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); opt.set(dom_prefix + 'tls_disable_sni', queryParam.disable_sni === "1"); - opt.set(dom_prefix + 'tls_allowInsecure', !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0' && (queryParam.allow_insecure ?? '0') === '0')); + opt.set( + dom_prefix + 'tls_allowInsecure', + !((queryParam.allowinsecure ?? '0') === '0' && (queryParam.insecure ?? '0') === '0' && (queryParam.allow_insecure ?? '0') === '0') + ); if (hash) { opt.set('remarks', decodeURIComponent(hash.substr(1))); } @@ -1693,7 +1711,7 @@ local current_node = map:get(section) var params; for (i = 0; i < queryArray.length; i++) { params = queryArray[i].split('='); - queryParam[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || ''); + queryParam[decodeURIComponent(params[0]).toLowerCase()] = decodeURIComponent(params[1] || ''); } } if ((!queryParam.security || queryParam.security == "") && queryParam.sni && queryParam.sni != "") { diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index baa75bcb..09cd5564 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -604,7 +604,7 @@ local function processData(szType, content, add_mode, group) result.tls_serverName = (info.sni and info.sni ~= "") and info.sni or info.host result.tls_CertSha = info.pcs result.tls_CertByName = info.vcn - local insecure = info.allowinsecure or info.insecure + local insecure = info.allowinsecure or info.allowInsecure or info.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (allowInsecure_default and "1" or "0") else result.tls = "0" @@ -890,7 +890,7 @@ local function processData(szType, content, add_mode, group) result.reality_mldsa65Verify = params.pqv or nil end end - local insecure = params.allowinsecure or params.insecure + local insecure = params.allowinsecure or params.allowInsecure or params.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (allowInsecure_default and "1" or "0") result.uot = params.udp elseif (params.type ~= "tcp" and params.type ~= "raw") and (params.headerType and params.headerType ~= "none") then @@ -995,7 +995,7 @@ local function processData(szType, content, add_mode, group) result.tls_serverName = params.peer or params.sni or "" result.tls_CertSha = params.pcs result.tls_CertByName = params.vcn - local insecure = params.allowinsecure or params.insecure + local insecure = params.allowinsecure or params.allowInsecure or params.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (allowInsecure_default and "1" or "0") if not params.type then params.type = "tcp" end @@ -1064,8 +1064,7 @@ local function processData(szType, content, add_mode, group) result.quic_security = params.quicSecurity or "none" end if params.type == 'grpc' then - if params.path then result.grpc_serviceName = params.path end - if params.serviceName then result.grpc_serviceName = params.serviceName end + result.grpc_serviceName = params.serviceName or params.path result.grpc_mode = params.mode or "gun" end if params.type == 'xhttp' then @@ -1262,7 +1261,7 @@ local function processData(szType, content, add_mode, group) result.use_mldsa65Verify = (params.pqv and params.pqv ~= "") and "1" or nil result.reality_mldsa65Verify = params.pqv or nil end - local insecure = params.allowinsecure or params.insecure + local insecure = params.allowinsecure or params.allowInsecure or params.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (allowInsecure_default and "1" or "0") end @@ -1319,7 +1318,7 @@ local function processData(szType, content, add_mode, group) result.hysteria_auth_type = "string" result.hysteria_auth_password = params.auth result.tls_serverName = params.peer or params.sni or "" - local insecure = params.allowinsecure or params.insecure + local insecure = params.allowinsecure or params.allowInsecure or params.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (allowInsecure_default and "1" or "0") result.alpn = params.alpn result.hysteria_up_mbps = params.upmbps @@ -1474,7 +1473,7 @@ local function processData(szType, content, add_mode, group) for _, v in pairs(split(query[2], '&')) do local s = v:find("=", 1, true) if s and s > 1 then - params[v:sub(1, s - 1)] = UrlDecode(v:sub(s + 1)) + params[v:sub(1, s - 1):lower()] = UrlDecode(v:sub(s + 1)) end end -- [2001:4860:4860::8888]:443