diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreOutboundBuilder.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreOutboundBuilder.kt index fb135e57b..9aa8e46b1 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreOutboundBuilder.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreOutboundBuilder.kt @@ -252,18 +252,21 @@ object CoreOutboundBuilder { ipv4Addresses.ifEmpty { listOf(AppConfig.WIREGUARD_LOCAL_ADDRESS_V4) } } + val defaultDns = AppConfig.WIREGUARD_LOCAL_REMOTE_DNS.split(",").map { it.trim() } + val rawDNS = profileItem.remoteDNS ?.split(",") ?.map { it.trim() } ?.filter { it.isNotEmpty() } ?.ifEmpty { null } - ?: listOf(AppConfig.WIREGUARD_LOCAL_REMOTE_DNS) + ?: defaultDns val remotes = if (MmkvManager.decodeSettingsBool(AppConfig.PREF_IPV6_ENABLED) == true) { rawDNS } else { - val ipv4Dns = rawDNS.filter { !it.contains(":") } - ipv4Dns.ifEmpty { listOf(AppConfig.WIREGUARD_LOCAL_REMOTE_DNS) } + rawDNS.filter { !it.contains(":") } + // falling back to the IPv4 entries of the default list + .ifEmpty { defaultDns.filter { !it.contains(":")} } } outboundBean?.settings?.let { wireguard ->