Skip to content

Commit ea7a0af

Browse files
committed
Add option for custom port
1 parent 123440d commit ea7a0af

8 files changed

Lines changed: 67 additions & 24 deletions

File tree

Source/NETworkManager/Models/Network/DNSLookup.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,12 @@ public void LookupAsync(List<string> hosts, DNSLookupOptions dnsLookupOptions)
8484
if (dnsLookupOptions.Type == QType.NAPTR)
8585
name = Resolver.GetArpaFromEnum(name);
8686

87+
int port = dnsLookupOptions.UseCustomDNSServer ? dnsLookupOptions.Port : Resolver.DefaultPort;
88+
8789
Parallel.ForEach(dnsServers, dnsServer =>
8890
{
8991
// Create a new for each request
90-
Resolver resolver = new Resolver(dnsServer)
92+
Resolver resolver = new Resolver(dnsServer, port)
9193
{
9294
Recursion = dnsLookupOptions.Recursion,
9395
TransportType = dnsLookupOptions.TransportType,
@@ -127,7 +129,6 @@ public void LookupAsync(List<string> hosts, DNSLookupOptions dnsLookupOptions)
127129
}
128130

129131
OnLookupComplete();
130-
//OnLookupComplete(new DNSLookupCompleteArgs(dnsResponse.Server.ToString(), dnsResponse.Questions.Count, dnsResponse.Answers.Count, dnsResponse.Authorities.Count, dnsResponse.Additionals.Count, dnsResponse.MessageSize));
131132
});
132133
}
133134

Source/NETworkManager/Models/Network/DNSLookupOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public class DNSLookupOptions
77
{
88
public bool UseCustomDNSServer { get; set; }
99
public List<string> CustomDNSServers { get; set; }
10+
public int Port { get; set; }
1011
public bool AddDNSSuffix { get; set; }
1112
public bool UseCustomDNSSuffix { get; set; }
1213
public string CustomDNSSuffix { get; set; }

Source/NETworkManager/Models/Settings/SettingsInfo.cs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -903,16 +903,30 @@ public bool DNSLookup_UseCustomDNSServer
903903
}
904904
}
905905

906-
private List<string> _dnsLookup_CustomDNSServers;
907-
public List<string> DNSLookup_CustomDNSServers
906+
private List<string> _dnsLookup_CustomDNSServer;
907+
public List<string> DNSLookup_CustomDNSServer
908908
{
909-
get { return _dnsLookup_CustomDNSServers; }
909+
get { return _dnsLookup_CustomDNSServer; }
910910
set
911911
{
912-
if (value == _dnsLookup_CustomDNSServers)
912+
if (value == _dnsLookup_CustomDNSServer)
913913
return;
914914

915-
_dnsLookup_CustomDNSServers = value;
915+
_dnsLookup_CustomDNSServer = value;
916+
SettingsChanged = true;
917+
}
918+
}
919+
920+
private int _dnsLookup_Port = 53;
921+
public int DNSLookup_Port
922+
{
923+
get { return _dnsLookup_Port; }
924+
set
925+
{
926+
if (value == _dnsLookup_Port)
927+
return;
928+
929+
_dnsLookup_Port = value;
916930
SettingsChanged = true;
917931
}
918932
}

Source/NETworkManager/Resources/Localization/Resources.de-DE.xaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
<system:String x:Key="String_Yes">Ja</system:String>
151151
<system:String x:Key="String_No">Nein</system:String>
152152
<system:String x:Key="String_DNSSuffix">DNS-Suffix</system:String>
153-
<system:String x:Key="String_DNSServers">DNS-Servers</system:String>
153+
<system:String x:Key="String_DNSServers">DNS-Server(s)</system:String>
154154
<system:String x:Key="String_DynamicIPv4Address">Dynamische IPv4-Adresse</system:String>
155155
<system:String x:Key="String_StaticIPv4Address">Statische IPv4-Address</system:String>
156156
<system:String x:Key="String_StaticIPv4DNSServer">Statischer IPv4-DNS-Server</system:String>
@@ -437,6 +437,7 @@
437437
<system:String x:Key="String_Watermark_ExampleHostname">SERVER-01</system:String>
438438
<system:String x:Key="String_Watermark_ExampleIPv4Broadcast">192.168.178.255</system:String>
439439
<system:String x:Key="String_Watermark_ExamplePort7">7</system:String>
440+
<system:String x:Key="String_Watermark_ExamplePort53">53</system:String>
440441
<system:String x:Key="String_Watermark_ExamplePort161">161</system:String>
441442
<system:String x:Key="String_Watermark_ExampleIPv4Address">192.168.178.55</system:String>
442443
<system:String x:Key="String_Watermark_ExampleSubnetmask">255.255.255.0</system:String>
@@ -449,6 +450,7 @@
449450
<system:String x:Key="String_Watermark_ExampleSubnetmaskOrCIDR">/24 oder 255.255.255.0</system:String>
450451
<system:String x:Key="String_Watermark_ExampleIPv4Gateway">192.168.178.1</system:String>
451452
<system:String x:Key="String_Watermark_ExampleIPv4DNSServer">8.8.8.8</system:String>
453+
<system:String x:Key="String_Watermark_ExampleIPv4DNSServers">192.168.178.1; 8.8.8.8; 8.8.4.4</system:String>
452454
<system:String x:Key="String_Watermark_ExamplePortPortRangeOrService">22; 80; https; ldaps; 777 - 999; 8080</system:String>
453455
<system:String x:Key="String_Watermark_ExampleSubnet">192.168.178.133/22 oder 192.168.178.133/255.255.252.0</system:String>
454456
<system:String x:Key="String_Watermark_Filter">Filter...</system:String>

Source/NETworkManager/Resources/Localization/Resources.en-US.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
<system:String x:Key="String_Yes">Yes</system:String>
151151
<system:String x:Key="String_No">No</system:String>
152152
<system:String x:Key="String_DNSSuffix">DNS Suffix</system:String>
153-
<system:String x:Key="String_DNSServers">DNS Servers</system:String>
153+
<system:String x:Key="String_DNSServers">DNS Server(s)</system:String>
154154
<system:String x:Key="String_DynamicIPv4Address">Dynamic IPv4 Address</system:String>
155155
<system:String x:Key="String_StaticIPv4Address">Static IPv4 Address</system:String>
156156
<system:String x:Key="String_StaticIPv4DNSServer">Static IPv4 DNS Server</system:String>
@@ -437,6 +437,7 @@
437437
<system:String x:Key="String_Watermark_ExampleHostname">SERVER-01</system:String>
438438
<system:String x:Key="String_Watermark_ExampleIPv4Broadcast">192.168.178.255</system:String>
439439
<system:String x:Key="String_Watermark_ExamplePort7">7</system:String>
440+
<system:String x:Key="String_Watermark_ExamplePort53">53</system:String>
440441
<system:String x:Key="String_Watermark_ExamplePort161">161</system:String>
441442
<system:String x:Key="String_Watermark_ExampleIPv4Address">192.168.178.55</system:String>
442443
<system:String x:Key="String_Watermark_ExampleSubnetmask">255.255.255.0</system:String>
@@ -449,6 +450,7 @@
449450
<system:String x:Key="String_Watermark_ExampleSubnetmaskOrCIDR">/24 or 255.255.255.0</system:String>
450451
<system:String x:Key="String_Watermark_ExampleIPv4Gateway">192.168.178.1</system:String>
451452
<system:String x:Key="String_Watermark_ExampleIPv4DNSServer">8.8.8.8</system:String>
453+
<system:String x:Key="String_Watermark_ExampleIPv4DNSServers">192.168.178.1; 8.8.8.8; 8.8.4.4</system:String>
452454
<system:String x:Key="String_Watermark_ExamplePortPortRangeOrService">22; 80; https; ldaps; 777 - 999; 8080</system:String>
453455
<system:String x:Key="String_Watermark_ExampleSubnet">192.168.178.133/22 or 192.168.178.133/255.255.252.0</system:String>
454456
<system:String x:Key="String_Watermark_Filter">Filter...</system:String>
@@ -468,7 +470,7 @@
468470
<system:String x:Key="String_Watermark_NotChanged">(not changed)</system:String>
469471
<system:String x:Key="String_Watermark_ExampleSNMPOID">1.3.6.1.2.1.1</system:String>
470472
<system:String x:Key="String_Watermark_ExampleSNMPCommunity">Public</system:String>
471-
<system:String x:Key="String_Watermark_ExampleSNMPUsername">snmp-user</system:String>
473+
<system:String x:Key="String_Watermark_ExampleSNMPUsername">snmp-user</system:String>
472474

473475
<!-- ShowProgress -->
474476
<system:String x:Key="String_Progress_SetStaticIPAddress">Set static IP address and gateway...</system:String>

Source/NETworkManager/ViewModels/Applications/DNSLookupViewModel.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -396,16 +396,9 @@ private void StartLookup()
396396

397397
if (SettingsManager.Current.DNSLookup_UseCustomDNSServer)
398398
{
399-
if (SettingsManager.Current.DNSLookup_CustomDNSServers != null)
400-
{
401-
dnsLookupOptions.UseCustomDNSServer = SettingsManager.Current.DNSLookup_UseCustomDNSServer;
402-
dnsLookupOptions.CustomDNSServers = SettingsManager.Current.DNSLookup_CustomDNSServers;
403-
}
404-
else
405-
{
406-
StatusMessage = Application.Current.Resources["String_CustomDNSServerIsEmptyCheckYourSettingsUseWindowsOwnDNSServer"] as string;
407-
DisplayStatusMessage = true;
408-
}
399+
dnsLookupOptions.UseCustomDNSServer = SettingsManager.Current.DNSLookup_UseCustomDNSServer;
400+
dnsLookupOptions.CustomDNSServers = SettingsManager.Current.DNSLookup_CustomDNSServer;
401+
dnsLookupOptions.Port = SettingsManager.Current.DNSLookup_Port;
409402
}
410403

411404
dnsLookupOptions.AddDNSSuffix = SettingsManager.Current.DNSLookup_AddDNSSuffix;

Source/NETworkManager/ViewModels/Settings/SettingsApplicationDNSLookupViewModel.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,30 @@ public string CustomDNSServer
3838
return;
3939

4040
if (!_isLoading)
41-
SettingsManager.Current.DNSLookup_CustomDNSServers = value.Split(';').ToList();
41+
SettingsManager.Current.DNSLookup_CustomDNSServer = value.Split(';').ToList();
4242

4343
_customDNSServer = value;
4444
OnPropertyChanged();
4545
}
4646
}
4747

48+
private int _port;
49+
public int Port
50+
{
51+
get { return _port;}
52+
set
53+
{
54+
if (value == _port)
55+
return;
56+
57+
if (!_isLoading)
58+
SettingsManager.Current.DNSLookup_Port = value;
59+
60+
_port = value;
61+
OnPropertyChanged();
62+
}
63+
}
64+
4865
private bool _addDNSSuffix;
4966
public bool AddDNSSuffix
5067
{
@@ -232,11 +249,12 @@ private void LoadSettings()
232249
{
233250
UseCustomDNSServer = SettingsManager.Current.DNSLookup_UseCustomDNSServer;
234251

235-
if (SettingsManager.Current.DNSLookup_CustomDNSServers != null)
236-
CustomDNSServer = string.Join("; ", SettingsManager.Current.DNSLookup_CustomDNSServers);
252+
if (SettingsManager.Current.DNSLookup_CustomDNSServer != null)
253+
CustomDNSServer = string.Join("; ", SettingsManager.Current.DNSLookup_CustomDNSServer);
237254

238255
AddDNSSuffix = SettingsManager.Current.DNSLookup_AddDNSSuffix;
239256
UseCustomDNSSuffix = SettingsManager.Current.DNSLookup_UseCustomDNSSuffix;
257+
Port = SettingsManager.Current.DNSLookup_Port;
240258
CustomDNSSuffix = SettingsManager.Current.DNSLookup_CustomDNSSuffix;
241259
ResolveCNAME = SettingsManager.Current.DNSLookup_ResolveCNAME;
242260
Recursion = SettingsManager.Current.DNSLookup_Recursion;

Source/NETworkManager/Views/Settings/SettingsApplicationDNSLookupView.xaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
<StackPanel>
1010
<TextBlock Text="{DynamicResource String_Header_DNSLookup}" Style="{StaticResource HeaderTextBlock}" />
1111
<mah:ToggleSwitch Header="{DynamicResource String_UseCustomDNSServer}" OnLabel="{DynamicResource String_ToggleSwitch_On}" OffLabel="{DynamicResource String_ToggleSwitch_Off}" IsChecked="{Binding UseCustomDNSServer}" Margin="0,0,0,10"/>
12-
<TextBox Width="250" HorizontalAlignment="Left" Margin="0,0,0,10" IsEnabled="{Binding UseCustomDNSServer}" mah:TextBoxHelper.Watermark="{DynamicResource String_Watermark_ExampleIPv4DNSServer}" Style="{StaticResource DefaultTextBox}">
12+
<TextBlock Text="{DynamicResource String_DNSServers}" Style="{DynamicResource DefaultTextBlock}" VerticalAlignment="Center" Margin="0,0,0,10" />
13+
<TextBox Width="250" HorizontalAlignment="Left" Margin="0,0,0,10" IsEnabled="{Binding UseCustomDNSServer}" mah:TextBoxHelper.Watermark="{DynamicResource String_Watermark_ExampleIPv4DNSServers}" Style="{StaticResource DefaultTextBox}">
1314
<TextBox.Text>
1415
<Binding Path="CustomDNSServer" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
1516
<Binding.ValidationRules>
@@ -19,6 +20,17 @@
1920
</Binding>
2021
</TextBox.Text>
2122
</TextBox>
23+
<TextBlock Text="{DynamicResource String_Port}" Style="{DynamicResource DefaultTextBlock}" VerticalAlignment="Center" Margin="0,0,0,10" />
24+
<TextBox Width="250" HorizontalAlignment="Left" Margin="0,0,0,10" IsEnabled="{Binding UseCustomDNSServer}" mah:TextBoxHelper.Watermark="{DynamicResource String_Watermark_ExamplePort53}" Style="{StaticResource DefaultTextBox}">
25+
<TextBox.Text>
26+
<Binding Path="Port" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
27+
<Binding.ValidationRules>
28+
<Validator:EmptyValidator ValidatesOnTargetUpdated="True" />
29+
<Validator:PortValidator ValidatesOnTargetUpdated="True" />
30+
</Binding.ValidationRules>
31+
</Binding>
32+
</TextBox.Text>
33+
</TextBox>
2234
<mah:ToggleSwitch Header="{DynamicResource String_AddDNSSuffixToHostname}" OnLabel="{DynamicResource String_ToggleSwitch_On}" OffLabel="{DynamicResource String_ToggleSwitch_Off}" IsChecked="{Binding AddDNSSuffix}" Margin="0,0,0,10"/>
2335
<mah:ToggleSwitch Header="{DynamicResource String_UseCustomDNSSuffix}" IsEnabled="{Binding AddDNSSuffix}" OnLabel="{DynamicResource String_ToggleSwitch_On}" OffLabel="{DynamicResource String_ToggleSwitch_Off}" IsChecked="{Binding UseCustomDNSSuffix}" Margin="0,0,0,10"/>
2436
<TextBox Width="250" HorizontalAlignment="Left" mah:TextBoxHelper.Watermark="{DynamicResource String_Watermark_ExampleSuffix}" Margin="0,0,0,10">

0 commit comments

Comments
 (0)