diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile
index 9b6570b1..56d551d0 100644
--- a/luci-app-passwall/Makefile
+++ b/luci-app-passwall/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.5.3
-PKG_RELEASE:=111
+PKG_RELEASE:=112
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
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 f548f5f2..02dd00c1 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
@@ -406,16 +406,19 @@ local current_node = map:get(section)
} else if (v_transport === "grpc") {
info.path = opt.get(dom_prefix + "grpc_serviceName").value;
}
- if (info.path && info.path != "") {
- info.path = encodeURI(info.path);
- }
info.net = v_transport;
info.security = opt.get(dom_prefix + "security").value || "auto";
+ info.scy = info.security;
if (opt.get(dom_prefix + "tls").checked) {
var v_security = "tls";
info.tls = "tls";
info.sni = opt.get(dom_prefix + "tls_serverName").value;
+ info.alpn = opt.get(dom_prefix + "alpn")?.value;
+ if (info.alpn === "default") info.alpn = undefined;
+ info.fp = opt.get(dom_prefix + "fingerprint")?.value;
+ info.pcs = opt.get(dom_prefix + "tls_pinSHA256")?.value;
+ opt.get(dom_prefix + "tls_allowInsecure")?.checked && (info.insecure = "1");
}
opt.get(dom_prefix + "tcp_fast_open")?.checked && (info.tfo = "1");
@@ -1350,9 +1353,16 @@ local current_node = map:get(section)
opt.set(dom_prefix + 'address', unbracketIP(ssm.add));
opt.set(dom_prefix + 'port', ssm.port);
opt.set(dom_prefix + 'uuid', ssm.id);
+ opt.set(dom_prefix + 'security', ssm.security || ssm.scy || "auto");
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 + 'alpn', ssm.alpn || "default");
+ if (ssm.fp && ssm.fp !== "") {
+ opt.set(dom_prefix + 'utls', true);
+ opt.set(dom_prefix + 'fingerprint', ssm.fp);
+ }
+ opt.set(dom_prefix + 'tls_pinSHA256', ssm.pcs || "");
opt.set(
dom_prefix + 'tls_allowInsecure',
!((ssm.allowinsecure ?? '0') === '0' && (ssm.allowInsecure ?? '0') === '0' && (ssm.insecure ?? '0') === '0')
@@ -1798,7 +1808,8 @@ local current_node = map:get(section)
opt.get(dom_prefix + 'port').blur();
}
} else {
- s.innerHTML = "<%:Invalid Share URL Format%>: " + ssu[0];
+ s.innerHTML = "<%:Invalid Share URL Format%>";
+ sessionStorage.removeItem("fromUrl");
return false;
}
s.innerHTML = "<%:Import Finished %>";
diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua
index 85ba61e4..c418e21e 100755
--- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua
+++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua
@@ -663,9 +663,14 @@ local function processData(szType, content, add_mode, group, sub_cfg)
result.httpupgrade_host = info.host
result.httpupgrade_path = info.path
end
- if not info.security then result.security = "auto" end
+ result.security = info.security or info.scy or "auto"
if info.tls == "tls" or info.tls == "1" then
result.tls = "1"
+ result.alpn = info.alpn
+ if info.fp and info.fp ~= "" then
+ result.utls = "1"
+ result.fingerprint = info.fp
+ end
result.tls_serverName = (info.sni and info.sni ~= "") and info.sni or info.host
result.tls_pinSHA256 = info.pcs
result.tls_CertByName = info.vcn