From 4593dceb105d85e966df8bb8359f32ebc999ff27 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Sat, 20 Aug 2022 10:06:17 +0800 Subject: [PATCH] chore: enable quic sniffing --- .../nekohasekai/sagernet/fmt/ConfigBuilder.kt | 8 +++--- libcore/tun.go | 27 ++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt index f92109a14..1b791f834 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt @@ -211,8 +211,8 @@ fun buildV2RayConfig( enabled = true destOverride = when { useFakeDns && !trafficSniffing -> listOf("fakedns") - useFakeDns -> listOf("fakedns", "http", "tls") - else -> listOf("http", "tls") + useFakeDns -> listOf("fakedns", "http", "tls", "quic") + else -> listOf("http", "tls", "quic") } metadataOnly = useFakeDns && !trafficSniffing routeOnly = true @@ -261,8 +261,8 @@ fun buildV2RayConfig( enabled = true destOverride = when { useFakeDns && !trafficSniffing -> listOf("fakedns") - useFakeDns -> listOf("fakedns", "http", "tls") - else -> listOf("http", "tls") + useFakeDns -> listOf("fakedns", "http", "tls", "quic") + else -> listOf("http", "tls", "quic") } metadataOnly = useFakeDns && !trafficSniffing routeOnly = true diff --git a/libcore/tun.go b/libcore/tun.go index ede11d9bf..194c3e486 100644 --- a/libcore/tun.go +++ b/libcore/tun.go @@ -397,15 +397,24 @@ func (t *Tun2ray) NewPacket(source v2rayNet.Destination, destination v2rayNet.De ctx := session.ContextWithInbound(context.Background(), inbound) - if !isDns && t.fakedns { - ctx = session.ContextWithContent(ctx, &session.Content{ - SniffingRequest: session.SniffingRequest{ - Enabled: true, - MetadataOnly: t.fakedns && !t.sniffing, - OverrideDestinationForProtocol: []string{"fakedns"}, - RouteOnly: true, - }, - }) + if !isDns { + override := []string{} + if t.fakedns { + override = append(override, "fakedns") + } + if t.sniffing { + override = append(override, "quic") + } + if len(override) != 0 { + ctx = session.ContextWithContent(ctx, &session.Content{ + SniffingRequest: session.SniffingRequest{ + Enabled: true, + MetadataOnly: t.fakedns && !t.sniffing, + OverrideDestinationForProtocol: override, + RouteOnly: true, + }, + }) + } } workerN := 1