Fix crash when server's client disconnects.
This commit is contained in:
parent
a3f6cbfe6b
commit
3df51e553f
|
@ -397,7 +397,7 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet)
|
||||||
|
|
||||||
case NP_MSG_DISABLE_GAME:
|
case NP_MSG_DISABLE_GAME:
|
||||||
{
|
{
|
||||||
PanicAlertT("Other client disconnected while game is running!! NetPlay is disabled. You manually stop the game.");
|
PanicAlertT("Other client disconnected while game is running!! NetPlay is disabled. You must manually stop the game.");
|
||||||
std::lock_guard<std::recursive_mutex> lkg(m_crit.game);
|
std::lock_guard<std::recursive_mutex> lkg(m_crit.game);
|
||||||
m_is_running = false;
|
m_is_running = false;
|
||||||
NetPlay_Disable();
|
NetPlay_Disable();
|
||||||
|
|
|
@ -334,7 +334,7 @@ unsigned int NetPlayServer::OnDisconnect(Client& player)
|
||||||
{
|
{
|
||||||
for (PadMapping mapping : m_pad_map)
|
for (PadMapping mapping : m_pad_map)
|
||||||
{
|
{
|
||||||
if (mapping == pid)
|
if (mapping == pid && pid != 1)
|
||||||
{
|
{
|
||||||
PanicAlertT("Client disconnect while game is running!! NetPlay is disabled. You must manually stop the game.");
|
PanicAlertT("Client disconnect while game is running!! NetPlay is disabled. You must manually stop the game.");
|
||||||
std::lock_guard<std::recursive_mutex> lkg(m_crit.game);
|
std::lock_guard<std::recursive_mutex> lkg(m_crit.game);
|
||||||
|
@ -344,7 +344,7 @@ unsigned int NetPlayServer::OnDisconnect(Client& player)
|
||||||
spac << (MessageId)NP_MSG_DISABLE_GAME;
|
spac << (MessageId)NP_MSG_DISABLE_GAME;
|
||||||
// this thread doesn't need players lock
|
// this thread doesn't need players lock
|
||||||
std::lock_guard<std::recursive_mutex> lks(m_crit.send);
|
std::lock_guard<std::recursive_mutex> lks(m_crit.send);
|
||||||
SendToClients(spac);
|
SendToClients(spac, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue