|
@@ -1097,7 +1097,7 @@ void CGameHandler::handleConnection(std::set<PlayerColor> players, CConnection &
|
|
|
{
|
|
{
|
|
|
assert(!c.connected); //make sure that connection has been marked as broken
|
|
assert(!c.connected); //make sure that connection has been marked as broken
|
|
|
logGlobal->error(e.what());
|
|
logGlobal->error(e.what());
|
|
|
- end2 = true;
|
|
|
|
|
|
|
+ conns -= &c;
|
|
|
}
|
|
}
|
|
|
catch(...)
|
|
catch(...)
|
|
|
{
|
|
{
|
|
@@ -2631,6 +2631,9 @@ void CGameHandler::sendToAllClients(CPackForClient * info)
|
|
|
logNetwork->trace("Sending to all clients a package of type %s", typeid(*info).name());
|
|
logNetwork->trace("Sending to all clients a package of type %s", typeid(*info).name());
|
|
|
for (auto & elem : conns)
|
|
for (auto & elem : conns)
|
|
|
{
|
|
{
|
|
|
|
|
+ if(!elem->isOpen())
|
|
|
|
|
+ continue;
|
|
|
|
|
+
|
|
|
boost::unique_lock<boost::mutex> lock(*(elem)->wmx);
|
|
boost::unique_lock<boost::mutex> lock(*(elem)->wmx);
|
|
|
*elem << info;
|
|
*elem << info;
|
|
|
}
|
|
}
|
|
@@ -2703,6 +2706,7 @@ void CGameHandler::close()
|
|
|
{
|
|
{
|
|
|
exit(0);
|
|
exit(0);
|
|
|
}
|
|
}
|
|
|
|
|
+ end2 = true;
|
|
|
|
|
|
|
|
//for (CConnection *cc : conns)
|
|
//for (CConnection *cc : conns)
|
|
|
// if (cc && cc->socket && cc->socket->is_open())
|
|
// if (cc && cc->socket && cc->socket->is_open())
|