From 7caddc573c68193adebf936a3dfd2f99de6c0d53 Mon Sep 17 00:00:00 2001 From: DHR60 Date: Mon, 18 Aug 2025 21:35:24 +0800 Subject: [PATCH] Fix dns --- .../CoreConfig/Singbox/SingboxDnsService.cs | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs b/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs index ef22d926..c317ef53 100644 --- a/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs +++ b/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs @@ -67,26 +67,27 @@ public partial class CoreConfigSingboxService { hostsDns.predefined = Global.PredefinedHosts; } - var userHostsMap = simpleDNSItem.Hosts? - .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) - .Where(line => !string.IsNullOrWhiteSpace(line)) - .Where(line => line.Contains(' ')) - .ToDictionary( - line => - { - var parts = line.Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); - return parts[0]; - }, - line => - { - var parts = line.Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); - var values = parts.Skip(1).ToList(); - return values; - } - ); - if (userHostsMap != null) + if (!simpleDNSItem.Hosts.IsNullOrEmpty()) { + var userHostsMap = simpleDNSItem.Hosts? + .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .Where(line => !string.IsNullOrWhiteSpace(line)) + .Where(line => line.Contains(' ')) + .ToDictionary( + line => + { + var parts = line.Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); + return parts[0]; + }, + line => + { + var parts = line.Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); + var values = parts.Skip(1).ToList(); + return values; + } + ) ?? new Dictionary>(); + foreach (var kvp in userHostsMap) { hostsDns.predefined[kvp.Key] = kvp.Value; @@ -100,11 +101,11 @@ public partial class CoreConfigSingboxService { foreach (var host in systemHosts) { - if (userHostsMap[host.Key] != null) + if (hostsDns.predefined[host.Key] != null) { continue; } - userHostsMap[host.Key] = new List { host.Value }; + hostsDns.predefined[host.Key] = new List { host.Value }; } } }