From 81b444053b1ac77fbb466d226590eeb8cdf2ee87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Mon, 17 May 2021 10:24:59 +0800 Subject: [PATCH] Fix route --- .github/workflows/debug.yml | 1 + .../nekohasekai/sagernet/fmt/ConfigBuilder.kt | 17 +++++++++++++++++ bin/init/action/naive.sh | 4 ++++ 3 files changed, 22 insertions(+) create mode 100755 bin/init/action/naive.sh diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index ce81d518..da44b543 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -164,6 +164,7 @@ jobs: run: | echo "sdk.dir=${ANDROID_HOME}" > local.properties echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties + ./run init action naive ./run libs naive ./gradlew naive-plugin:assembleDebug shadowsocks: 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 bf27d3b1..8035ec74 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt @@ -299,6 +299,14 @@ fun buildV2RayConfig(proxy: ProxyEntity): V2rayBuildResult { outbounds.add(outbound) } + if (!bean.serverAddress.isIpAddress()) { + routing.rules.add(RoutingObject.RuleObject().apply { + type = "field" + domain = listOf(bean.serverAddress) + outboundTag = TAG_DIRECT + }) + } + pastExternal = true return@forEachIndexed } else { @@ -816,6 +824,15 @@ fun buildV2RayConfig(proxy: ProxyEntity): V2rayBuildResult { bypassIP.addAll(bypassRule.ip.split("\n")) } } + + (proxies + extraProxies.values.flatten()).forEach { + it.requireBean().apply { + if (!serverAddress.isIpAddress()) { + bypassDomain.add(serverAddress) + } + } + } + if (bypassIP.isNotEmpty() || bypassDomain.isNotEmpty()) { dns.servers.add(DnsObject.StringOrServerObject().apply { valueY = DnsObject.ServerObject().apply { diff --git a/bin/init/action/naive.sh b/bin/init/action/naive.sh new file mode 100755 index 00000000..49da9567 --- /dev/null +++ b/bin/init/action/naive.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +sudo apt install ninja-build pkg-config qemu-user ccache +sudo apt remove libc6-i386 --autoremove \ No newline at end of file