From 2ad8b91d7fb6d80cde5976ef9b1963f9ba0d0f65 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Wed, 22 Mar 2023 11:21:32 +0900 Subject: [PATCH] fix dns routing rule --- .../nekohasekai/sagernet/fmt/ConfigBuilder.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 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 a172ce2..8279641 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/ConfigBuilder.kt @@ -691,20 +691,34 @@ fun buildConfig( // dns object user rules if (enableDnsRouting) { - if (domainListDNSRemote.isNotEmpty() || uidListDNSRemote.isNotEmpty()) { + if (uidListDNSRemote.isNotEmpty()) { dns.rules.add( DNSRule_DefaultOptions().apply { - makeSingBoxRule(domainListDNSRemote.toHashSet().toList()) user_id = uidListDNSRemote.toHashSet().toList() server = "dns-remote" } ) } - if (domainListDNSDirect.isNotEmpty() || uidListDNSDirect.isNotEmpty()) { + if (domainListDNSRemote.isNotEmpty()) { + dns.rules.add( + DNSRule_DefaultOptions().apply { + makeSingBoxRule(domainListDNSRemote.toHashSet().toList()) + server = "dns-remote" + } + ) + } + if (uidListDNSDirect.isNotEmpty()) { + dns.rules.add( + DNSRule_DefaultOptions().apply { + user_id = uidListDNSDirect.toHashSet().toList() + server = "dns-direct" + } + ) + } + if (domainListDNSDirect.isNotEmpty()) { dns.rules.add( DNSRule_DefaultOptions().apply { makeSingBoxRule(domainListDNSDirect.toHashSet().toList()) - user_id = uidListDNSDirect.toHashSet().toList() server = "dns-direct" } )