Network/ENetPeer: Fix DisconnectLater not waiting for pending commands
This commit is contained in:
parent
3ff483d2f6
commit
4f1df53f07
|
|
@ -83,7 +83,7 @@ namespace Nz
|
||||||
|
|
||||||
void ENetPeer::DisconnectLater(UInt32 data)
|
void ENetPeer::DisconnectLater(UInt32 data)
|
||||||
{
|
{
|
||||||
if (IsConnected() && !m_outgoingReliableCommands.empty() && !m_outgoingUnreliableCommands.empty() && !m_sentReliableCommands.empty())
|
if (IsConnected() && HasPendingCommands())
|
||||||
{
|
{
|
||||||
m_state = ENetPeerState::DisconnectLater;
|
m_state = ENetPeerState::DisconnectLater;
|
||||||
m_eventData = data;
|
m_eventData = data;
|
||||||
|
|
@ -596,11 +596,13 @@ namespace Nz
|
||||||
Reset();
|
Reset();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
if (command->header.command & ENetProtocolFlag_Acknowledge)
|
if (command->header.command & ENetProtocolFlag_Acknowledge)
|
||||||
ChangeState(ENetPeerState::AcknowledgingDisconnect);
|
ChangeState(ENetPeerState::AcknowledgingDisconnect);
|
||||||
else
|
else
|
||||||
DispatchState(ENetPeerState::Zombie);
|
DispatchState(ENetPeerState::Zombie);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (m_state != ENetPeerState::Disconnected)
|
if (m_state != ENetPeerState::Disconnected)
|
||||||
m_eventData = NetToHost(command->disconnect.data);
|
m_eventData = NetToHost(command->disconnect.data);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue