забрел глубоко внутрь
internal unsafe NetworkAddressChangePolled()
{
Socket.InitializeSockets();
int blocking;
if (Socket.SupportsIPv4)
{
blocking = -1;
ipv4Socket = SafeCloseSocketAndEvent.CreateWSASocketWithEvent(AddressFamily.InterNetwork, SocketType.Dgram, (ProtocolType)0, true, false);
UnsafeNclNativeMethods.OSSOCK.ioctlsocket(ipv4Socket, IoctlSocketConstants.FIONBIO, ref blocking);
}
if(Socket.OSSupportsIPv6){
blocking = -1;
ipv6Socket = SafeCloseSocketAndEvent.CreateWSASocketWithEvent(AddressFamily.InterNetworkV6, SocketType.Dgram, (ProtocolType)0, true, false);
UnsafeNclNativeMethods.OSSOCK.ioctlsocket(ipv6Socket,IoctlSocketConstants.FIONBIO,ref blocking);
}
Setup(StartIPOptions.Both);
}
после вызова
Socket.InitializeSockets();
следующее:
Socket.SupportsIPv4 = true
Socket.SupportsIPv6 = false
и
Socket.OSSupportsIPv6 = true
падение на строке
ipv6Socket = SafeCloseSocketAndEvent.CreateWSASocketWithEvent(AddressFamily.InterNetworkV6, SocketType.Dgram, (ProtocolType)0, true, false);
теперь то, что то проясняется, протокол конечно ни разу не настроен, но зачем создавать сокет если
Socket.SupportsIPv6 = false, даже если и
Socket.OSSupportsIPv6 = true
главное как с этим жить дальше?