From 9f8a95980f1d16a21e1bc6a7f88c40d6ff1dba09 Mon Sep 17 00:00:00 2001 From: sta Date: Sat, 7 May 2016 17:30:01 +0900 Subject: [PATCH] [Fix] Determine that IPAddress.IPv6Any is a local IP address if available Fix for pull request #243. --- websocket-sharp/Ext.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index a9ce853e..4c0c3e88 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -1297,9 +1297,20 @@ namespace WebSocketSharp if (address == null) return false; - if (address.Equals (System.Net.IPAddress.Any) || System.Net.IPAddress.IsLoopback (address)) + if (address.Equals (System.Net.IPAddress.Any)) return true; + if (address.Equals (System.Net.IPAddress.Loopback)) + return true; + + if (Socket.OSSupportsIPv6) { + if (address.Equals (System.Net.IPAddress.IPv6Any)) + return true; + + if (address.Equals (System.Net.IPAddress.IPv6Loopback)) + return true; + } + var host = System.Net.Dns.GetHostName (); var addrs = System.Net.Dns.GetHostAddresses (host); foreach (var addr in addrs)