Enet fixes (#200)
* Network/ENet: Fix UnreliableFragment flag * Network/ENet: Match libenet new behavior on DisconnectLater
This commit is contained in:
@@ -212,7 +212,7 @@ namespace Nz
|
||||
if ((packetRef->flags & (ENetPacketFlag_Reliable | ENetPacketFlag_UnreliableFragment)) == ENetPacketFlag_UnreliableFragment &&
|
||||
channel.outgoingUnreliableSequenceNumber < 0xFFFF)
|
||||
{
|
||||
commandNumber = ENetProtocolCommand_SendUnreliable;
|
||||
commandNumber = ENetProtocolCommand_SendUnreliableFragment;
|
||||
startSequenceNumber = HostToNet<UInt16>(channel.outgoingUnreliableSequenceNumber + 1);
|
||||
}
|
||||
else
|
||||
@@ -770,7 +770,7 @@ namespace Nz
|
||||
break;
|
||||
|
||||
if ((incomingCommand.command.header.command & ENetProtocolCommand_Mask) != ENetProtocolCommand_SendUnreliableFragment ||
|
||||
totalLength != incomingCommand.packet->data.GetDataSize() || fragmentCount != incomingCommand.fragments.GetSize())
|
||||
totalLength != incomingCommand.packet->data.GetDataSize() || fragmentCount != incomingCommand.fragments.GetSize())
|
||||
return false;
|
||||
|
||||
startCommand = &incomingCommand;
|
||||
@@ -778,9 +778,10 @@ namespace Nz
|
||||
}
|
||||
}
|
||||
|
||||
if (startCommand)
|
||||
if (!startCommand)
|
||||
{
|
||||
if (!QueueIncomingCommand(*command, nullptr, totalLength, ENetPacketFlag_UnreliableFragment, fragmentCount))
|
||||
startCommand = QueueIncomingCommand(*command, nullptr, totalLength, ENetPacketFlag_UnreliableFragment, fragmentCount);
|
||||
if (!startCommand)
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1040,7 +1041,13 @@ namespace Nz
|
||||
|
||||
void ENetPeer::RemoveSentUnreliableCommands()
|
||||
{
|
||||
if (m_sentUnreliableCommands.empty())
|
||||
return;
|
||||
|
||||
m_sentUnreliableCommands.clear();
|
||||
|
||||
if (m_state == ENetPeerState::DisconnectLater && !HasPendingCommands())
|
||||
Disconnect(m_eventData);
|
||||
}
|
||||
|
||||
void ENetPeer::ResetQueues()
|
||||
|
||||
Reference in New Issue
Block a user