diff --git a/server/imserver/playermgr.cc b/server/imserver/playermgr.cc index 5730b9f..b72bebd 100644 --- a/server/imserver/playermgr.cc +++ b/server/imserver/playermgr.cc @@ -467,11 +467,17 @@ void PlayerMgr::AsyncLoginOnOk(const std::string& account_id, if (hdr) { Player* hum = GetPlayerByAccountId(account_id); if (hum) { - abort(); + pending_socket_hash_.erase(hdr->socket_handle); + pending_account_hash_.erase(account_id); + f8::MsgHdr::Destroy(hdr); + return; } hum = GetPlayerBySocket(hdr->socket_handle); if (hum) { - abort(); + pending_socket_hash_.erase(hdr->socket_handle); + pending_account_hash_.erase(account_id); + f8::MsgHdr::Destroy(hdr); + return; } { hum = new Player();