diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 5fbc7c0..7f221ae 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -408,6 +408,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
408 | ServerIncoming = new IPEndPoint(listenIP, (int)newPort); | 408 | ServerIncoming = new IPEndPoint(listenIP, (int)newPort); |
409 | m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); | 409 | m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); |
410 | m_socket.Bind(ServerIncoming); | 410 | m_socket.Bind(ServerIncoming); |
411 | // Add flags to the UDP socket to prevent "Socket forcibly closed by host" | ||
412 | uint IOC_IN = 0x80000000; | ||
413 | uint IOC_VENDOR = 0x18000000; | ||
414 | uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12; | ||
415 | m_socket.IOControl((int)SIO_UDP_CONNRESET, new byte[] { Convert.ToByte(false) }, null); | ||
416 | |||
411 | listenPort = newPort; | 417 | listenPort = newPort; |
412 | 418 | ||
413 | m_log.Info("[SERVER]: UDP socket bound, getting ready to listen"); | 419 | m_log.Info("[SERVER]: UDP socket bound, getting ready to listen"); |