diff --git a/Lidgren.Network/NetConnection.Handshake.cs b/Lidgren.Network/NetConnection.Handshake.cs index b571eba..1bd2010 100644 --- a/Lidgren.Network/NetConnection.Handshake.cs +++ b/Lidgren.Network/NetConnection.Handshake.cs @@ -8,8 +8,9 @@ namespace Lidgren.Network { internal bool m_connectRequested; internal bool m_disconnectRequested; - internal bool m_connectionInitiator; + internal bool m_disconnectReqSendBye; internal string m_disconnectMessage; + internal bool m_connectionInitiator; internal NetIncomingMessage m_remoteHailMessage; internal float m_lastHandshakeSendTime; internal int m_handshakeAttempts; @@ -486,6 +487,7 @@ namespace Lidgren.Network m_handshakeAttempts = 0; m_disconnectRequested = true; + m_disconnectReqSendBye = true; } } } diff --git a/Lidgren.Network/NetConnection.cs b/Lidgren.Network/NetConnection.cs index 2a46903..3c64ff8 100644 --- a/Lidgren.Network/NetConnection.cs +++ b/Lidgren.Network/NetConnection.cs @@ -165,7 +165,7 @@ namespace Lidgren.Network if (m_disconnectRequested) { - ExecuteDisconnect(m_disconnectMessage, true); + ExecuteDisconnect(m_disconnectMessage, m_disconnectReqSendBye); return; } } @@ -414,7 +414,11 @@ namespace Lidgren.Network case NetMessageType.Disconnect: NetIncomingMessage msg = m_peer.SetupReadHelperMessage(ptr, payloadLength); - ExecuteDisconnect(msg.ReadString(), false); + + m_disconnectRequested = true; + m_disconnectMessage = msg.ReadString(); + m_disconnectReqSendBye = false; + //ExecuteDisconnect(msg.ReadString(), false); break; case NetMessageType.Acknowledge: for (int i = 0; i < payloadLength; i+=3)