// \r
\r
using System;\r
-using System.Collections;\r
+using System.Linq;\r
using System.Net;\r
using System.Net.Sockets;\r
using System.Threading;\r
IAsyncResult async = Dns.BeginResolve (site1Dot, null, null);\r
IPHostEntry entry = Dns.EndResolve (async);\r
SubTestValidIPHostEntry (entry);
- var ip = GetNonIPv6Address (entry);\r
+ var ip = GetIPv4Address (entry);\r
Assert.AreEqual (site1Dot, ip.ToString ());\r
}\r
\r
}\r
}\r
\r
- static IPAddress GetNonIPv6Address (IPHostEntry h)\r
+ static IPAddress GetIPv4Address (IPHostEntry h)\r
{\r
- var al0 = h.AddressList [0];\r
- if (al0.AddressFamily == AddressFamily.InterNetworkV6)\r
- Assert.Ignore ("Resolve address is incompatible, e.g. running on an IPv6 only network");\r
- return al0;\r
+ var al = h.AddressList.FirstOrDefault (x => x.AddressFamily == AddressFamily.InterNetwork);\r
+ if (al == null)\r
+ Assert.Ignore ("Could not resolve an IPv4 address as required by this test case, e.g. running on an IPv6 only network");\r
+ return al;\r
}\r
\r
void SubTestGetHostByName (string siteName, string siteDot)\r
IPHostEntry h = Dns.GetHostByName (siteName);\r
SubTestValidIPHostEntry (h);\r
Assert.AreEqual (siteName, h.HostName, "siteName");\r
- var ip = GetNonIPv6Address (h);\r
+ var ip = GetIPv4Address (h);\r
Assert.AreEqual (siteDot, ip.ToString (), "siteDot");\r
}\r
\r
IPAddress addr = new IPAddress (IPAddress.NetworkToHostOrder ((int) site1IP));\r
IPHostEntry h = Dns.GetHostByAddress (addr);\r
SubTestValidIPHostEntry (h);\r
- var ip = GetNonIPv6Address (h);\r
+ var ip = GetIPv4Address (h);\r
Assert.AreEqual (addr.ToString (), ip.ToString ());\r
}\r
\r
IPAddress addr = new IPAddress (IPAddress.NetworkToHostOrder ((int) site2IP));\r
IPHostEntry h = Dns.GetHostByAddress (addr);\r
SubTestValidIPHostEntry (h);
- var ip = GetNonIPv6Address (h);\r
+ var ip = GetIPv4Address (h);\r
Assert.AreEqual (addr.ToString (), ip.ToString ());\r
}\r
\r