diff options
Diffstat (limited to 'protocol.c')
-rw-r--r-- | protocol.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -396,17 +396,19 @@ enet_protocol_handle_send_fragment (ENetHost * host, ENetPeer * peer, const ENet fragmentCount != startCommand -> fragmentCount) return; - if ((startCommand -> fragments [fragmentNumber / 32] & (1 << fragmentNumber)) == 0) - -- startCommand -> fragmentsRemaining; + if ((startCommand -> fragments [fragmentNumber / 32] & (1 << (fragmentNumber & 32))) == 0) + { + -- startCommand -> fragmentsRemaining; - startCommand -> fragments [fragmentNumber / 32] |= (1 << fragmentNumber); + startCommand -> fragments [fragmentNumber / 32] |= (1 << (fragmentNumber & 32)); - if (fragmentOffset + fragmentLength > startCommand -> packet -> dataLength) - fragmentLength = startCommand -> packet -> dataLength - fragmentOffset; + if (fragmentOffset + fragmentLength > startCommand -> packet -> dataLength) + fragmentLength = startCommand -> packet -> dataLength - fragmentOffset; - memcpy (startCommand -> packet -> data + fragmentOffset, - (enet_uint8 *) command + sizeof (ENetProtocolSendFragment), - fragmentLength); + memcpy (startCommand -> packet -> data + fragmentOffset, + (enet_uint8 *) command + sizeof (ENetProtocolSendFragment), + fragmentLength); + } } static void |