Skip to content

Commit 0f2453a

Browse files
committed
FIX: dns support
1 parent add432c commit 0f2453a

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

WireGuardNT-PInvoke/Adapter.cs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,30 @@ public bool ParseConfFile(string[] lines, out WgConfig wgConfig)
178178
wgConfig.InterfaceMtu = Convert.ToUInt16(value);
179179
continue;
180180
case "address":
181-
wgConfig.InterfaceNetwork = IPNetwork.Parse(value.Split(',').First());
182-
var ipStr = value.Split('/').First().Trim();
183-
wgConfig.InterfaceAddress = IPAddress.Parse(ipStr);
181+
string address = value.Split(',').First().Trim();
182+
if (ValidateIPv4(address))
183+
{
184+
wgConfig.InterfaceNetwork = IPNetwork.Parse(value.Split(',').First());
185+
}
186+
else
187+
{
188+
var ipEntry = Dns.GetHostEntry(address);
189+
wgConfig.InterfaceNetwork = IPNetwork.Parse(ipEntry.AddressList[0].ToString());
190+
}
191+
184192
continue;
185193
case "dns":
186-
wgConfig.DnsAddresses = value.Split(',').Select(dns => dns.Trim()).Select(dns => IPAddress.Parse(dns)).ToArray();
194+
wgConfig.DnsAddresses = value.Split(',').Select(dns => dns.Trim()).Select(dns => {
195+
if (ValidateIPv4(dns))
196+
{
197+
return IPAddress.Parse(dns);
198+
}
199+
else
200+
{
201+
var ipEntry = Dns.GetHostEntry(dns);
202+
return IPAddress.Parse(ipEntry.AddressList[0].ToString());
203+
}
204+
}).ToArray();
187205
continue;
188206
default:
189207
OnEvent(EventInfoMessage, new WireGuardInfoEventArg(string.Format("ParseConfFile Ignore and Not append {0}:{1} \n line :{2}", key, value, lineNum)));

0 commit comments

Comments
 (0)