mirror of
https://github.com/HikikoMarmy/Champions-Reborn-Server.git
synced 2026-04-05 08:59:54 -03:00
Handle Shutdowns
Server Rename
This commit is contained in:
25
main.cpp
25
main.cpp
@@ -1,5 +1,7 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
#include <atomic>
|
||||||
|
#include <csignal>
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
|
||||||
#include "logging.h"
|
#include "logging.h"
|
||||||
@@ -8,14 +10,22 @@
|
|||||||
#include "Lobby Server/LobbyServer.h"
|
#include "Lobby Server/LobbyServer.h"
|
||||||
#include "Discovery Server/DiscoveryServer.h"
|
#include "Discovery Server/DiscoveryServer.h"
|
||||||
|
|
||||||
|
std::atomic< bool > g_isRunning( true );
|
||||||
|
|
||||||
|
static void SignalHandler( int signal )
|
||||||
|
{
|
||||||
|
if( signal == SIGINT || signal == SIGTERM )
|
||||||
|
{
|
||||||
|
g_isRunning = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void ShowStartup()
|
static void ShowStartup()
|
||||||
{
|
{
|
||||||
printf
|
printf
|
||||||
(
|
(
|
||||||
"------------------------------------------------------\n"
|
"------------------------------------------------------\n"
|
||||||
"Norrath Server Build Version %s\n"
|
"Champions Reborn | Server Build Version %s\n"
|
||||||
"------------------------------------------------------\n\n",
|
"------------------------------------------------------\n\n",
|
||||||
__DATE__
|
__DATE__
|
||||||
);
|
);
|
||||||
@@ -39,14 +49,17 @@ int main()
|
|||||||
{
|
{
|
||||||
ShowStartup();
|
ShowStartup();
|
||||||
|
|
||||||
|
std::signal( SIGINT, SignalHandler );
|
||||||
|
std::signal( SIGTERM, SignalHandler );
|
||||||
|
|
||||||
|
Log::Info( "Server Start..." );
|
||||||
|
|
||||||
if( !NetworkStartup() )
|
if( !NetworkStartup() )
|
||||||
{
|
{
|
||||||
Log::Error( "Could not initialize network." );
|
Log::Error( "Could not initialize network." );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::Info( "Server Start..." );
|
|
||||||
|
|
||||||
if( !Config::Load( "config.ini" ) )
|
if( !Config::Load( "config.ini" ) )
|
||||||
{
|
{
|
||||||
Log::Error( "Failed to load configuration file." );
|
Log::Error( "Failed to load configuration file." );
|
||||||
@@ -61,7 +74,7 @@ int main()
|
|||||||
|
|
||||||
auto &database = Database::Get();
|
auto &database = Database::Get();
|
||||||
|
|
||||||
while( true )
|
while( g_isRunning )
|
||||||
{
|
{
|
||||||
if( !lobby_server.isRunning() )
|
if( !lobby_server.isRunning() )
|
||||||
{
|
{
|
||||||
@@ -75,9 +88,13 @@ int main()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
database.Process();
|
||||||
|
|
||||||
std::this_thread::sleep_for( std::chrono::milliseconds( 250 ) );
|
std::this_thread::sleep_for( std::chrono::milliseconds( 250 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log::Info( "Shutting down servers..." );
|
||||||
|
|
||||||
lobby_server.Stop();
|
lobby_server.Stop();
|
||||||
discovery_server.Stop();
|
discovery_server.Stop();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user