From 478f826c6f97ea6ae87202fd54c92334f6b7dd25 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Sun, 4 Jun 2023 09:25:31 +0900 Subject: [PATCH] fix: v2rayfmt --- .../nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt index 29f6aef..0a2a431 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt @@ -155,6 +155,9 @@ fun StandardV2RayBean.parseDuckSoft(url: HttpUrl) { url.queryParameter("sni")?.let { sni = it } + url.queryParameter("host")?.let { + if (sni.isNullOrBlank()) sni = it + } url.queryParameter("alpn")?.let { alpn = it.replace(",", "\n") } @@ -169,6 +172,7 @@ fun StandardV2RayBean.parseDuckSoft(url: HttpUrl) { } } } + when (type) { "tcp" -> { // v2rayNG @@ -307,6 +311,7 @@ fun parseV2RayN(link: String): VMessBean { throw Exception("invalid VmessQRCode") } + bean.name = vmessQRCode.ps bean.serverAddress = vmessQRCode.add bean.serverPort = vmessQRCode.port.toIntOrNull() bean.encryption = vmessQRCode.scy @@ -325,14 +330,15 @@ fun parseV2RayN(link: String): VMessBean { } } when (vmessQRCode.tls) { - "tls", "reality" -> bean.security = "tls" + "tls", "reality" -> { + bean.security = "tls" + bean.sni = vmessQRCode.sni + if (bean.sni.isNullOrBlank()) bean.sni = bean.host + bean.alpn = vmessQRCode.alpn.replace(",", "\n") + bean.utlsFingerprint = vmessQRCode.fp + } } - bean.name = vmessQRCode.ps - bean.sni = vmessQRCode.sni - bean.alpn = vmessQRCode.alpn.replace(",", "\n") - bean.utlsFingerprint = vmessQRCode.fp - return bean }