From e31a4bcaa914447b04b69439216fe6dfa0d24020 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 3 Feb 2023 09:39:39 +0800 Subject: [PATCH] share link to add fingerprint --- v2rayN/v2rayN/Handler/ShareHandler.cs | 9 ++++++++- v2rayN/v2rayN/Mode/VmessQRCode.cs | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Handler/ShareHandler.cs b/v2rayN/v2rayN/Handler/ShareHandler.cs index 064da35b..89f0647c 100644 --- a/v2rayN/v2rayN/Handler/ShareHandler.cs +++ b/v2rayN/v2rayN/Handler/ShareHandler.cs @@ -71,7 +71,8 @@ namespace v2rayN.Handler path = item.path, tls = item.streamSecurity, sni = item.sni, - alpn = item.alpn + alpn = item.alpn, + fp = item.fingerprint }; url = Utils.ToJson(vmessQRCode); @@ -202,6 +203,10 @@ namespace v2rayN.Handler { dicQuery.Add("alpn", Utils.UrlEncode(item.alpn)); } + if (!Utils.IsNullOrEmpty(item.fingerprint)) + { + dicQuery.Add("fp", Utils.UrlEncode(item.fingerprint)); + } dicQuery.Add("type", !Utils.IsNullOrEmpty(item.network) ? item.network : "tcp"); @@ -408,6 +413,7 @@ namespace v2rayN.Handler profileItem.streamSecurity = Utils.ToString(vmessQRCode.tls); profileItem.sni = Utils.ToString(vmessQRCode.sni); profileItem.alpn = Utils.ToString(vmessQRCode.alpn); + profileItem.fingerprint = Utils.ToString(vmessQRCode.fp); return profileItem; } @@ -759,6 +765,7 @@ namespace v2rayN.Handler item.streamSecurity = query["security"] ?? ""; item.sni = query["sni"] ?? ""; item.alpn = Utils.UrlDecode(query["alpn"] ?? ""); + item.fingerprint = Utils.UrlDecode(query["fp"] ?? ""); item.network = query["type"] ?? "tcp"; switch (item.network) { diff --git a/v2rayN/v2rayN/Mode/VmessQRCode.cs b/v2rayN/v2rayN/Mode/VmessQRCode.cs index 5e42ca68..6b6dc082 100644 --- a/v2rayN/v2rayN/Mode/VmessQRCode.cs +++ b/v2rayN/v2rayN/Mode/VmessQRCode.cs @@ -63,5 +63,10 @@ /// TLS alpn /// public string alpn { get; set; } = string.Empty; + /// + /// TLS fingerprint + /// + public string fp { get; set; } = string.Empty; + } }