Skip to content

Commit eaebdc1

Browse files
committed
Fixed server shutdown crash.
Tweaked status messages from ASE master servers.
1 parent fde4755 commit eaebdc1

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

MTA10_Server/mods/deathmatch/logic/CGame.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,10 @@ CGame::~CGame ( void )
255255
{
256256
m_bBeingDeleted = true;
257257

258+
// Stop the web server first to avoid threading issues
259+
if ( m_pHTTPD )
260+
m_pHTTPD->StopHTTPD ();
261+
258262
// Stop the performance stats modules
259263
if ( CPerfStatManager::GetSingleton () != NULL )
260264
CPerfStatManager::GetSingleton ()->Stop ();
@@ -270,10 +274,6 @@ CGame::~CGame ( void )
270274
// Stop networking
271275
Stop ();
272276

273-
// Stop the web server
274-
if ( m_pHTTPD )
275-
m_pHTTPD->StopHTTPD ();
276-
277277
// Destroy our stuff
278278
SAFE_DELETE( m_pResourceManager );
279279

MTA10_Server/mods/deathmatch/utils/CHqComms.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class CHqComms : public CRefCountable
4545
m_Stage = HQCOMMS_STAGE_QUERY;
4646

4747
CBitStream bitStream;
48-
bitStream->Write( (char)2 ); // Data version
48+
bitStream->Write( (char)3 ); // Data version
4949
bitStream->WriteStr( g_pGame->GetConfig()->GetServerIP() );
5050
bitStream->Write( g_pGame->GetConfig()->GetServerPort() );
5151
bitStream->WriteStr( CStaticFunctionDefinitions::GetVersionSortable() );
@@ -211,17 +211,18 @@ class CHqComms : public CRefCountable
211211
bitStream->Read( uiNumServers );
212212
for( uint i = 0 ; i < uiNumServers ; i++ )
213213
{
214-
char bAcceptsPush, bDoReminders, bHideProblems;
214+
char bAcceptsPush, bDoReminders, bHideProblems, bHideSuccess;
215215
uint uiReminderIntervalMins;
216216
SString strDesc, strUrl;
217217
bitStream->Read( bAcceptsPush );
218218
bitStream->Read( bDoReminders );
219219
bitStream->Read( bHideProblems );
220+
bitStream->Read( bHideSuccess );
220221
bitStream->Read( uiReminderIntervalMins );
221222
bitStream->ReadStr( strDesc );
222223
if ( !bitStream->ReadStr( strUrl ) )
223224
break;
224-
g_pGame->GetMasterServerAnnouncer()->AddServer( bAcceptsPush != 0, bDoReminders != 0, bHideProblems != 0, Max( 5U, uiReminderIntervalMins ), strDesc, strUrl );
225+
g_pGame->GetMasterServerAnnouncer()->AddServer( bAcceptsPush != 0, bDoReminders != 0, bHideProblems != 0, bHideSuccess != 0, Max( 5U, uiReminderIntervalMins ), strDesc, strUrl );
225226
}
226227
}
227228

MTA10_Server/mods/deathmatch/utils/CMasterServerAnnouncer.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ struct SMasterServerDefinition
1313
bool bAcceptsPush;
1414
bool bDoReminders;
1515
bool bHideProblems;
16+
bool bHideSuccess;
1617
uint uiReminderIntervalMins;
1718
SString strDesc;
1819
SString strURL;
@@ -125,7 +126,7 @@ class CMasterServer : public CRefCountable
125126
if ( m_Stage < ANNOUNCE_STAGE_REMINDER )
126127
{
127128
m_Stage = ANNOUNCE_STAGE_REMINDER;
128-
if ( !m_Definition.bHideProblems || iError == 200 )
129+
if ( !m_Definition.bHideSuccess )
129130
{
130131
CArgMap argMap;
131132
argMap.SetFromString( data );
@@ -223,10 +224,10 @@ class CMasterServerAnnouncer
223224
void InitServerList( void )
224225
{
225226
assert( m_MasterServerList.empty() );
226-
AddServer( true, true, false, 60 * 24, "Querying MTA master server...", QUERY_URL_MTA_MASTER_SERVER );
227+
AddServer( true, true, false, false, 60 * 24, "Querying MTA master server...", QUERY_URL_MTA_MASTER_SERVER );
227228
}
228229

229-
void AddServer( bool bAcceptsPush, bool bDoReminders, bool bHideProblems, uint uiReminderIntervalMins, const SString& strDesc, const SString& strInUrl )
230+
void AddServer( bool bAcceptsPush, bool bDoReminders, bool bHideProblems, bool bHideSuccess, uint uiReminderIntervalMins, const SString& strDesc, const SString& strInUrl )
230231
{
231232
// Check if server is already present
232233
for( auto pMasterServer : m_MasterServerList )
@@ -255,7 +256,7 @@ class CMasterServerAnnouncer
255256
strUrl = strUrl.Replace( "%EXTRA%", strExtra );
256257
strUrl = strUrl.Replace( "%IP%", strServerIP );
257258

258-
SMasterServerDefinition masterServerDefinition = { bAcceptsPush, bDoReminders, bHideProblems, uiReminderIntervalMins, strDesc, strUrl };
259+
SMasterServerDefinition masterServerDefinition = { bAcceptsPush, bDoReminders, bHideProblems, bHideSuccess, uiReminderIntervalMins, strDesc, strUrl };
259260
m_MasterServerList.push_back( new CMasterServer( masterServerDefinition ) );
260261
}
261262

0 commit comments

Comments
 (0)