mirror of https://github.com/2dust/v2rayN
parent
0f4884d9d8
commit
9866d436da
|
@ -176,6 +176,8 @@ namespace v2rayN
|
||||||
public static readonly List<string> AllowInsecure = new() { "true", "false", "" };
|
public static readonly List<string> AllowInsecure = new() { "true", "false", "" };
|
||||||
public static readonly List<string> DomainStrategy4Freedoms = new() { "AsIs", "UseIP", "UseIPv4", "UseIPv6", "" };
|
public static readonly List<string> DomainStrategy4Freedoms = new() { "AsIs", "UseIP", "UseIPv4", "UseIPv6", "" };
|
||||||
public static readonly List<string> SingboxDomainStrategy4Out = new() { "ipv4_only", "prefer_ipv4", "prefer_ipv6", "ipv6_only", "" };
|
public static readonly List<string> SingboxDomainStrategy4Out = new() { "ipv4_only", "prefer_ipv4", "prefer_ipv6", "ipv6_only", "" };
|
||||||
|
public static readonly List<string> DomainDNSAddress = ["223.5.5.5", "223.6.6.6", "localhost"];
|
||||||
|
public static readonly List<string> SingboxDomainDNSAddress = ["223.5.5.5", "223.6.6.6", "dhcp://auto"];
|
||||||
public static readonly List<string> Languages = new() { "zh-Hans", "zh-Hant", "en", "fa-Ir", "ru" };
|
public static readonly List<string> Languages = new() { "zh-Hans", "zh-Hant", "en", "fa-Ir", "ru" };
|
||||||
public static readonly List<string> Alpns = new() { "h3", "h2", "http/1.1", "h3,h2,http/1.1", "h2,h3", "h2,http/1.1", "" };
|
public static readonly List<string> Alpns = new() { "h3", "h2", "http/1.1", "h3,h2,http/1.1", "h2,h3", "h2,http/1.1", "" };
|
||||||
public static readonly List<string> LogLevels = new() { "debug", "info", "warning", "error", "none" };
|
public static readonly List<string> LogLevels = new() { "debug", "info", "warning", "error", "none" };
|
||||||
|
|
|
@ -1180,7 +1180,7 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
}
|
}
|
||||||
singboxConfig.dns = dns4Sbox;
|
singboxConfig.dns = dns4Sbox;
|
||||||
|
|
||||||
GenDnsDomains(node, singboxConfig, item?.domainStrategy4Freedom);
|
GenDnsDomains(node, singboxConfig, item);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -1189,7 +1189,7 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GenDnsDomains(ProfileItem? node, SingboxConfig singboxConfig, string? strategy)
|
private int GenDnsDomains(ProfileItem? node, SingboxConfig singboxConfig, DNSItem? dNSItem)
|
||||||
{
|
{
|
||||||
var dns4Sbox = singboxConfig.dns ?? new();
|
var dns4Sbox = singboxConfig.dns ?? new();
|
||||||
dns4Sbox.servers ??= [];
|
dns4Sbox.servers ??= [];
|
||||||
|
@ -1199,9 +1199,9 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
dns4Sbox.servers.Add(new()
|
dns4Sbox.servers.Add(new()
|
||||||
{
|
{
|
||||||
tag = tag,
|
tag = tag,
|
||||||
address = "223.5.5.5",
|
address = Utils.IsNullOrEmpty(dNSItem?.domainDNSAddress) ? Global.SingboxDomainDNSAddress.FirstOrDefault() : dNSItem?.domainDNSAddress,
|
||||||
detour = Global.DirectTag,
|
detour = Global.DirectTag,
|
||||||
strategy = Utils.IsNullOrEmpty(strategy) ? null : strategy,
|
strategy = Utils.IsNullOrEmpty(dNSItem?.domainStrategy4Freedom) ? null : dNSItem?.domainStrategy4Freedom,
|
||||||
});
|
});
|
||||||
dns4Sbox.rules.Insert(0, new()
|
dns4Sbox.rules.Insert(0, new()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1073,7 +1073,7 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GenDnsDomains(node, obj);
|
GenDnsDomains(node, obj, item);
|
||||||
|
|
||||||
v2rayConfig.dns = obj;
|
v2rayConfig.dns = obj;
|
||||||
}
|
}
|
||||||
|
@ -1084,7 +1084,7 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GenDnsDomains(ProfileItem? node, JsonNode dns)
|
private int GenDnsDomains(ProfileItem? node, JsonNode dns, DNSItem? dNSItem)
|
||||||
{
|
{
|
||||||
if (node == null)
|
if (node == null)
|
||||||
{ return 0; }
|
{ return 0; }
|
||||||
|
@ -1095,7 +1095,7 @@ namespace v2rayN.Handler.CoreConfig
|
||||||
{
|
{
|
||||||
var dnsServer = new DnsServer4Ray()
|
var dnsServer = new DnsServer4Ray()
|
||||||
{
|
{
|
||||||
address = "223.5.5.5",
|
address = Utils.IsNullOrEmpty(dNSItem?.domainDNSAddress) ? Global.DomainDNSAddress.FirstOrDefault() : dNSItem?.domainDNSAddress,
|
||||||
domains = [node.address]
|
domains = [node.address]
|
||||||
};
|
};
|
||||||
servers.AsArray().Insert(0, JsonUtils.SerializeToNode(dnsServer));
|
servers.AsArray().Insert(0, JsonUtils.SerializeToNode(dnsServer));
|
||||||
|
|
|
@ -16,5 +16,6 @@ namespace v2rayN.Models
|
||||||
public string? normalDNS { get; set; }
|
public string? normalDNS { get; set; }
|
||||||
public string? tunDNS { get; set; }
|
public string? tunDNS { get; set; }
|
||||||
public string? domainStrategy4Freedom { get; set; }
|
public string? domainStrategy4Freedom { get; set; }
|
||||||
|
public string? domainDNSAddress { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2662,6 +2662,15 @@ namespace v2rayN.Resx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Outbound DNS address 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
public static string TbSettingsDomainDNSAddress {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TbSettingsDomainDNSAddress", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Outbound Freedom domainStrategy 的本地化字符串。
|
/// 查找类似 Outbound Freedom domainStrategy 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1258,4 +1258,7 @@
|
||||||
<data name="menuSetDefaultLoadBalanceServer" xml:space="preserve">
|
<data name="menuSetDefaultLoadBalanceServer" xml:space="preserve">
|
||||||
<value>Multi-server load balancing</value>
|
<value>Multi-server load balancing</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbSettingsDomainDNSAddress" xml:space="preserve">
|
||||||
|
<value>Outbound DNS address</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1255,4 +1255,7 @@
|
||||||
<data name="menuSetDefaultLoadBalanceServer" xml:space="preserve">
|
<data name="menuSetDefaultLoadBalanceServer" xml:space="preserve">
|
||||||
<value>多服务器负载均衡 (多选)</value>
|
<value>多服务器负载均衡 (多选)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbSettingsDomainDNSAddress" xml:space="preserve">
|
||||||
|
<value>Outbound域名解析地址</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -18,10 +18,13 @@ namespace v2rayN.ViewModels
|
||||||
|
|
||||||
[Reactive] public bool useSystemHosts { get; set; }
|
[Reactive] public bool useSystemHosts { get; set; }
|
||||||
[Reactive] public string domainStrategy4Freedom { get; set; }
|
[Reactive] public string domainStrategy4Freedom { get; set; }
|
||||||
|
[Reactive] public string domainDNSAddress { get; set; }
|
||||||
[Reactive] public string normalDNS { get; set; }
|
[Reactive] public string normalDNS { get; set; }
|
||||||
|
|
||||||
|
[Reactive] public string domainStrategy4Freedom2 { get; set; }
|
||||||
|
[Reactive] public string domainDNSAddress2 { get; set; }
|
||||||
[Reactive] public string normalDNS2 { get; set; }
|
[Reactive] public string normalDNS2 { get; set; }
|
||||||
[Reactive] public string tunDNS2 { get; set; }
|
[Reactive] public string tunDNS2 { get; set; }
|
||||||
[Reactive] public string domainStrategy4Freedom2 { get; set; }
|
|
||||||
|
|
||||||
public ReactiveCommand<Unit, Unit> SaveCmd { get; }
|
public ReactiveCommand<Unit, Unit> SaveCmd { get; }
|
||||||
public ReactiveCommand<Unit, Unit> ImportDefConfig4V2rayCmd { get; }
|
public ReactiveCommand<Unit, Unit> ImportDefConfig4V2rayCmd { get; }
|
||||||
|
@ -36,12 +39,14 @@ namespace v2rayN.ViewModels
|
||||||
var item = LazyConfig.Instance.GetDNSItem(ECoreType.Xray);
|
var item = LazyConfig.Instance.GetDNSItem(ECoreType.Xray);
|
||||||
useSystemHosts = item.useSystemHosts;
|
useSystemHosts = item.useSystemHosts;
|
||||||
domainStrategy4Freedom = item?.domainStrategy4Freedom ?? string.Empty;
|
domainStrategy4Freedom = item?.domainStrategy4Freedom ?? string.Empty;
|
||||||
|
domainDNSAddress = item?.domainDNSAddress ?? string.Empty;
|
||||||
normalDNS = item?.normalDNS ?? string.Empty;
|
normalDNS = item?.normalDNS ?? string.Empty;
|
||||||
|
|
||||||
var item2 = LazyConfig.Instance.GetDNSItem(ECoreType.sing_box);
|
var item2 = LazyConfig.Instance.GetDNSItem(ECoreType.sing_box);
|
||||||
|
domainStrategy4Freedom2 = item2?.domainStrategy4Freedom ?? string.Empty;
|
||||||
|
domainDNSAddress2 = item2?.domainDNSAddress ?? string.Empty;
|
||||||
normalDNS2 = item2?.normalDNS ?? string.Empty;
|
normalDNS2 = item2?.normalDNS ?? string.Empty;
|
||||||
tunDNS2 = item2?.tunDNS ?? string.Empty;
|
tunDNS2 = item2?.tunDNS ?? string.Empty;
|
||||||
domainStrategy4Freedom2 = item2?.domainStrategy4Freedom ?? string.Empty;
|
|
||||||
|
|
||||||
SaveCmd = ReactiveCommand.Create(() =>
|
SaveCmd = ReactiveCommand.Create(() =>
|
||||||
{
|
{
|
||||||
|
@ -100,14 +105,16 @@ namespace v2rayN.ViewModels
|
||||||
|
|
||||||
var item = LazyConfig.Instance.GetDNSItem(ECoreType.Xray);
|
var item = LazyConfig.Instance.GetDNSItem(ECoreType.Xray);
|
||||||
item.domainStrategy4Freedom = domainStrategy4Freedom;
|
item.domainStrategy4Freedom = domainStrategy4Freedom;
|
||||||
|
item.domainDNSAddress = domainDNSAddress;
|
||||||
item.useSystemHosts = useSystemHosts;
|
item.useSystemHosts = useSystemHosts;
|
||||||
item.normalDNS = normalDNS;
|
item.normalDNS = normalDNS;
|
||||||
ConfigHandler.SaveDNSItems(_config, item);
|
ConfigHandler.SaveDNSItems(_config, item);
|
||||||
|
|
||||||
var item2 = LazyConfig.Instance.GetDNSItem(ECoreType.sing_box);
|
var item2 = LazyConfig.Instance.GetDNSItem(ECoreType.sing_box);
|
||||||
item2.normalDNS = JsonUtils.Serialize(JsonUtils.ParseJson(normalDNS2));
|
|
||||||
item2.tunDNS = JsonUtils.Serialize(JsonUtils.ParseJson(tunDNS2));
|
|
||||||
item2.domainStrategy4Freedom = domainStrategy4Freedom2;
|
item2.domainStrategy4Freedom = domainStrategy4Freedom2;
|
||||||
|
item2.domainDNSAddress = domainDNSAddress2;
|
||||||
|
item2.normalDNS = JsonUtils.Serialize(JsonUtils.ParseJson(normalDNS2));
|
||||||
|
item2.tunDNS = JsonUtils.Serialize(JsonUtils.ParseJson(tunDNS2));;
|
||||||
ConfigHandler.SaveDNSItems(_config, item2);
|
ConfigHandler.SaveDNSItems(_config, item2);
|
||||||
|
|
||||||
_noticeHandler?.Enqueue(ResUI.OperationSuccess);
|
_noticeHandler?.Enqueue(ResUI.OperationSuccess);
|
||||||
|
|
|
@ -49,33 +49,6 @@
|
||||||
|
|
||||||
<TabItem Header="{x:Static resx:ResUI.TbSettingsCoreDns}">
|
<TabItem Header="{x:Static resx:ResUI.TbSettingsCoreDns}">
|
||||||
<DockPanel Margin="{StaticResource SettingItemMargin}">
|
<DockPanel Margin="{StaticResource SettingItemMargin}">
|
||||||
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
|
||||||
Text="{x:Static resx:ResUI.TbSettingsDomainStrategy4Freedom}" />
|
|
||||||
<ComboBox
|
|
||||||
x:Name="cmbdomainStrategy4Freedom"
|
|
||||||
Width="200"
|
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
|
||||||
Style="{StaticResource DefComboBox}" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
|
||||||
<TextBlock
|
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
|
||||||
Text="{x:Static resx:ResUI.TbSettingsUseSystemHosts}" />
|
|
||||||
<ToggleButton
|
|
||||||
x:Name="togUseSystemHosts"
|
|
||||||
Grid.Row="5"
|
|
||||||
Grid.Column="1"
|
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
|
||||||
HorizontalAlignment="Left" />
|
|
||||||
</StackPanel>
|
|
||||||
|
|
||||||
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
@ -83,7 +56,7 @@
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
Text="{x:Static resx:ResUI.TbSettingsRemoteDNS}" />
|
Text="{x:Static resx:ResUI.TbSettingsRemoteDNS}" />
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="8,0,0,0"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Style="{StaticResource ToolbarTextBlock}">
|
Style="{StaticResource ToolbarTextBlock}">
|
||||||
<Hyperlink Click="linkDnsObjectDoc_Click">
|
<Hyperlink Click="linkDnsObjectDoc_Click">
|
||||||
|
@ -93,12 +66,53 @@
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<Button
|
<Button
|
||||||
x:Name="btnImportDefConfig4V2ray"
|
x:Name="btnImportDefConfig4V2ray"
|
||||||
Margin="8,0,0,0"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
Content="{x:Static resx:ResUI.TbSettingDnsImportDefConfig}"
|
Content="{x:Static resx:ResUI.TbSettingDnsImportDefConfig}"
|
||||||
Cursor="Hand"
|
Cursor="Hand"
|
||||||
Style="{StaticResource DefButton}" />
|
Style="{StaticResource DefButton}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
<WrapPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbSettingsUseSystemHosts}" />
|
||||||
|
<ToggleButton
|
||||||
|
x:Name="togUseSystemHosts"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
HorizontalAlignment="Left" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbSettingsDomainStrategy4Freedom}" />
|
||||||
|
<ComboBox
|
||||||
|
x:Name="cmbdomainStrategy4Freedom"
|
||||||
|
Width="150"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
Style="{StaticResource DefComboBox}" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbSettingsDomainDNSAddress}" />
|
||||||
|
<ComboBox
|
||||||
|
x:Name="cmbdomainDNSAddress"
|
||||||
|
Width="150"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
IsEditable="True"
|
||||||
|
Style="{StaticResource DefComboBox}" />
|
||||||
|
</StackPanel>
|
||||||
|
</WrapPanel>
|
||||||
|
|
||||||
<TextBox
|
<TextBox
|
||||||
x:Name="txtnormalDNS"
|
x:Name="txtnormalDNS"
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
@ -116,7 +130,7 @@
|
||||||
<DockPanel Margin="{StaticResource SettingItemMargin}">
|
<DockPanel Margin="{StaticResource SettingItemMargin}">
|
||||||
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="8,0,0,0"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Style="{StaticResource ToolbarTextBlock}">
|
Style="{StaticResource ToolbarTextBlock}">
|
||||||
<Hyperlink Click="linkDnsSingboxObjectDoc_Click">
|
<Hyperlink Click="linkDnsSingboxObjectDoc_Click">
|
||||||
|
@ -126,24 +140,40 @@
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<Button
|
<Button
|
||||||
x:Name="btnImportDefConfig4Singbox"
|
x:Name="btnImportDefConfig4Singbox"
|
||||||
Margin="8,0,0,0"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
Content="{x:Static resx:ResUI.TbSettingDnsImportDefConfig}"
|
Content="{x:Static resx:ResUI.TbSettingDnsImportDefConfig}"
|
||||||
Cursor="Hand"
|
Cursor="Hand"
|
||||||
Style="{StaticResource DefButton}" />
|
Style="{StaticResource DefButton}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
<WrapPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
||||||
<TextBlock
|
<StackPanel Orientation="Horizontal">
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
<TextBlock
|
||||||
VerticalAlignment="Center"
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
VerticalAlignment="Center"
|
||||||
Text="{x:Static resx:ResUI.TbSettingsDomainStrategy4Out}" />
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
<ComboBox
|
Text="{x:Static resx:ResUI.TbSettingsDomainStrategy4Out}" />
|
||||||
x:Name="cmbdomainStrategy4Out"
|
<ComboBox
|
||||||
Width="200"
|
x:Name="cmbdomainStrategy4Out"
|
||||||
Margin="{StaticResource SettingItemMargin}"
|
Width="150"
|
||||||
Style="{StaticResource DefComboBox}" />
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
</StackPanel>
|
Style="{StaticResource DefComboBox}" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbSettingsDomainDNSAddress}" />
|
||||||
|
<ComboBox
|
||||||
|
x:Name="cmbdomainDNSAddress2"
|
||||||
|
Width="150"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
IsEditable="True"
|
||||||
|
Style="{StaticResource DefComboBox}" />
|
||||||
|
</StackPanel>
|
||||||
|
</WrapPanel>
|
||||||
|
|
||||||
<Grid Margin="{StaticResource SettingItemMargin}">
|
<Grid Margin="{StaticResource SettingItemMargin}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
|
|
@ -28,13 +28,24 @@ namespace v2rayN.Views
|
||||||
{
|
{
|
||||||
cmbdomainStrategy4Out.Items.Add(it);
|
cmbdomainStrategy4Out.Items.Add(it);
|
||||||
});
|
});
|
||||||
|
Global.DomainDNSAddress.ForEach(it =>
|
||||||
|
{
|
||||||
|
cmbdomainDNSAddress.Items.Add(it);
|
||||||
|
});
|
||||||
|
Global.SingboxDomainDNSAddress.ForEach(it =>
|
||||||
|
{
|
||||||
|
cmbdomainDNSAddress2.Items.Add(it);
|
||||||
|
});
|
||||||
|
|
||||||
this.WhenActivated(disposables =>
|
this.WhenActivated(disposables =>
|
||||||
{
|
{
|
||||||
this.Bind(ViewModel, vm => vm.useSystemHosts, v => v.togUseSystemHosts.IsChecked).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.useSystemHosts, v => v.togUseSystemHosts.IsChecked).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom, v => v.cmbdomainStrategy4Freedom.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom, v => v.cmbdomainStrategy4Freedom.Text).DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.domainDNSAddress, v => v.cmbdomainDNSAddress.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.normalDNS, v => v.txtnormalDNS.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.normalDNS, v => v.txtnormalDNS.Text).DisposeWith(disposables);
|
||||||
|
|
||||||
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom2, v => v.cmbdomainStrategy4Out.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom2, v => v.cmbdomainStrategy4Out.Text).DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.domainDNSAddress2, v => v.cmbdomainDNSAddress2.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.normalDNS2, v => v.txtnormalDNS2.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.normalDNS2, v => v.txtnormalDNS2.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.tunDNS2, v => v.txttunDNS2.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.tunDNS2, v => v.txttunDNS2.Text).DisposeWith(disposables);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue