diff --git a/peer.c b/peer.c index f9d73fc..c08bd95 100644 --- a/peer.c +++ b/peer.c @@ -422,6 +422,7 @@ enet_peer_disconnect (ENetPeer * peer, enet_uint32 data) if (peer -> state == ENET_PEER_STATE_DISCONNECTING || peer -> state == ENET_PEER_STATE_DISCONNECTED || + peer -> state == ENET_PEER_STATE_ACKNOWLEDING_DISCONNECT || peer -> state == ENET_PEER_STATE_ZOMBIE) return; diff --git a/protocol.c b/protocol.c index af82fd6..47bf844 100644 --- a/protocol.c +++ b/protocol.c @@ -629,6 +629,9 @@ enet_protocol_handle_throttle_configure (ENetHost * host, ENetPeer * peer, const static int enet_protocol_handle_disconnect (ENetHost * host, ENetPeer * peer, const ENetProtocol * command) { + if (peer -> state == ENET_PEER_STATE_ZOMBIE || peer -> state == ENET_PEER_STATE_ACKNOWLEDGING_DISCONNECT) + return 0; + enet_peer_reset_queues (peer); if (peer -> state == ENET_PEER_STATE_CONNECTION_SUCCEEDED)