@@ -731,81 +731,46 @@ fun buildConfig(
731731 return DNSRule_DefaultOptions ().apply {
732732 if (uidList.isNotEmpty()) user_id = uidList
733733 domainList?.let { makeSingBoxRule(it) }
734+
735+ val nonIpRulesets = mutableListOf<String >()
736+ if (rule_set != null && rulesetTags.isNotEmpty()) {
737+ for (tag in rule_set) {
738+ val tagInfo = rulesetTags.find { it.first == tag }
739+ if (tag.startsWith(" ruleset-" ) && tagInfo != null && ! tagInfo.second) {
740+ nonIpRulesets.add(tag)
741+ }
742+ }
743+ }
744+ if (nonIpRulesets.isNotEmpty()) {
745+ rule_set = nonIpRulesets
746+ }
734747 }
735748 }
736749
737- when (rule.outbound) {
738- - 1L -> {
739- userDNSRuleList + = makeDnsRuleObj().apply { server = " dns-direct" }
740-
741- if (rule_set != null && rulesetTags.isNotEmpty()) {
742- for (tag in rule_set) {
743- // 只处理ruleset标签,且必须是非IP类型
744- val tagInfo = rulesetTags.find { it.first == tag }
745- if (tag.startsWith(" ruleset-" ) && tagInfo != null && ! tagInfo.second) {
746- userDNSRuleList + = DNSRule_DefaultOptions ().apply {
747- rule_set = mutableListOf (tag)
748- server = " dns-direct"
749- }
750- }
751- }
752- }
753- }
754-
755- - 2L -> {
756- userDNSRuleList + = makeDnsRuleObj().apply {
757- server = " dns-block"
758- disable_cache = true
759- }
760-
761- if (rule_set != null && rulesetTags.isNotEmpty()) {
762- for (tag in rule_set) {
763- val tagInfo = rulesetTags.find { it.first == tag }
764- if (tag.startsWith(" ruleset-" ) && tagInfo != null && ! tagInfo.second) {
765- userDNSRuleList + = DNSRule_DefaultOptions ().apply {
766- rule_set = mutableListOf (tag)
767- server = " dns-block"
768- disable_cache = true
769- }
770- }
771- }
772- }
773- }
774-
775- else -> {
776- if (useFakeDns) userDNSRuleList + = makeDnsRuleObj().apply {
777- server = " dns-fake"
778- inbound = listOf (" tun-in" )
779- query_type = listOf (" A" , " AAAA" )
780- } else {
781- userDNSRuleList + = makeDnsRuleObj().apply {
782- server = " dns-remote"
783- }
784- }
785-
786- if (rule_set != null && rulesetTags.isNotEmpty()) {
787- for (tag in rule_set) {
788- val tagInfo = rulesetTags.find { it.first == tag }
789- if (tag.startsWith(" ruleset-" ) && tagInfo != null && ! tagInfo.second) {
790- if (useFakeDns) {
791- userDNSRuleList + = DNSRule_DefaultOptions ().apply {
792- rule_set = mutableListOf (tag)
793- server = " dns-fake"
794- inbound = listOf (" tun-in" )
795- query_type = listOf (" A" , " AAAA" )
796- }
797- } else {
798- userDNSRuleList + = DNSRule_DefaultOptions ().apply {
799- rule_set = mutableListOf (tag)
800- server = " dns-remote"
801- }
802- }
803- }
804- }
805- }
806- }
807- }
750+ when (rule.outbound) {
751+ - 1L -> {
752+ userDNSRuleList + = makeDnsRuleObj().apply { server = " dns-direct" }
753+ }
754+
755+ - 2L -> {
756+ userDNSRuleList + = makeDnsRuleObj().apply {
757+ server = " dns-block"
758+ disable_cache = true
759+ }
760+ }
808761
762+ else -> {
763+ if (useFakeDns) userDNSRuleList + = makeDnsRuleObj().apply {
764+ server = " dns-fake"
765+ inbound = listOf (" tun-in" )
766+ query_type = listOf (" A" , " AAAA" )
767+ } else {
768+ userDNSRuleList + = makeDnsRuleObj().apply {
769+ server = " dns-remote"
770+ }
771+ }
772+ }
773+ }
809774 outbound = when (val outId = rule.outbound) {
810775 0L -> mainProxyTag
811776 - 1L -> TAG_BYPASS
0 commit comments