From 63ed2311dc54e7b43649b7570f228c9ce1b3ff2a Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:00:37 +0800 Subject: [PATCH] Bug fix --- .../Handler/CoreConfig/CoreConfigV2ray.cs | 25 +++++++++++++++++-- v2rayN/v2rayN/Models/V2rayConfig.cs | 8 +++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigV2ray.cs b/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigV2ray.cs index 0fac445ec8..d720898c62 100644 --- a/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigV2ray.cs +++ b/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigV2ray.cs @@ -1,5 +1,6 @@ using System.Net; using System.Net.NetworkInformation; +using System.Text.Json.Nodes; using v2rayN.Enums; using v2rayN.Models; using v2rayN.Resx; @@ -53,7 +54,7 @@ public int GenerateClientConfigContent(ProfileItem node, out V2rayConfig? v2rayC GenMoreOutbounds(node, v2rayConfig); - GenDns(v2rayConfig); + GenDns(node, v2rayConfig); GenStatistic(v2rayConfig); @@ -748,7 +749,7 @@ private int GenBoundStreamSettings(ProfileItem node, StreamSettings4Ray streamSe return 0; } - private int GenDns(V2rayConfig v2rayConfig) + private int GenDns(ProfileItem node, V2rayConfig v2rayConfig) { try { @@ -800,6 +801,8 @@ private int GenDns(V2rayConfig v2rayConfig) } } + GenDnsDomains(node, obj); + v2rayConfig.dns = obj; } catch (Exception ex) @@ -809,6 +812,24 @@ private int GenDns(V2rayConfig v2rayConfig) return 0; } + private int GenDnsDomains(ProfileItem node, JsonNode dns) + { + var servers = dns["servers"]; + if (servers != null) + { + if (Utils.IsDomain(node.address)) + { + var dnsServer = new DnsServer4Ray() + { + address = "223.5.5.5", + domains = [node.address] + }; + servers.AsArray().Insert(0, JsonUtils.SerializeToNode(dnsServer)); + } + } + return 0; + } + private int GenStatistic(V2rayConfig v2rayConfig) { if (_config.guiItem.enableStatistics) diff --git a/v2rayN/v2rayN/Models/V2rayConfig.cs b/v2rayN/v2rayN/Models/V2rayConfig.cs index 109730b433..750aea84a1 100644 --- a/v2rayN/v2rayN/Models/V2rayConfig.cs +++ b/v2rayN/v2rayN/Models/V2rayConfig.cs @@ -370,6 +370,12 @@ public class Dns4Ray public List servers { get; set; } } + public class DnsServer4Ray + { + public string? address { get; set; } + public List? domains { get; set; } + } + public class Routing4Ray { /// @@ -380,7 +386,7 @@ public class Routing4Ray /// /// /// - public string domainMatcher { get; set; } + public string? domainMatcher { get; set; } /// ///