diff options
author | Xanadu <none@none> | 2010-05-29 03:16:39 +0200 |
---|---|---|
committer | Xanadu <none@none> | 2010-05-29 03:16:39 +0200 |
commit | d104f19469f9a63636f16e0d0765cd6798bccf4b (patch) | |
tree | 200c4bb985b503d082a889722bafc3733776e831 | |
parent | de97bd4f00df0265d1c352611d40d82ffacf45d4 (diff) |
*Properly initialize members to prevent DB logging before the DB is started. Fixes a rarely seen startup crash.
*Code cleanup.
--HG--
branch : trunk
-rw-r--r-- | src/game/World.cpp | 4 | ||||
-rw-r--r-- | src/shared/Database/Database.cpp | 2 | ||||
-rw-r--r-- | src/shared/Log.cpp | 5 | ||||
-rw-r--r-- | src/trinitycore/Master.cpp | 16 | ||||
-rw-r--r-- | src/trinityrealm/Main.cpp | 22 |
5 files changed, 12 insertions, 37 deletions
diff --git a/src/game/World.cpp b/src/game/World.cpp index ded635cbf87..9b2c61b6b7d 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1720,10 +1720,8 @@ void World::SetInitialWorldSettings() sLog.SetLogDB(true); } else - { sLog.SetLogDB(false); - sLog.SetLogDBLater(false); - } + sScriptMgr.OnServerStartup(); sLog.outString("WORLD: World initialized"); } diff --git a/src/shared/Database/Database.cpp b/src/shared/Database/Database.cpp index 73924b485ce..379388d7997 100644 --- a/src/shared/Database/Database.cpp +++ b/src/shared/Database/Database.cpp @@ -39,7 +39,7 @@ size_t Database::db_count = 0; -Database::Database() +Database::Database() : mMysql(NULL) { // before first connection if (db_count++ == 0) diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp index d35b25a9069..187b9eaa79b 100644 --- a/src/shared/Log.cpp +++ b/src/shared/Log.cpp @@ -31,8 +31,9 @@ INSTANTIATE_SINGLETON_1( Log ); Log::Log() : raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL), - dberLogfile(NULL), chatLogfile(NULL), m_gmlog_per_account(false), m_colored(false) - , arenaLogFile(NULL) + dberLogfile(NULL), chatLogfile(NULL), m_gmlog_per_account(false), + m_enableLogDBLater(false), m_enableLogDB(false), m_colored(false), + arenaLogFile(NULL) { Initialize(); } diff --git a/src/trinitycore/Master.cpp b/src/trinitycore/Master.cpp index a4618e01562..adc3e144c68 100644 --- a/src/trinitycore/Master.cpp +++ b/src/trinitycore/Master.cpp @@ -499,19 +499,9 @@ bool Master::_StartDB() sLog.outString("Realm running as realm ID %d", realmID); ///- Initialize the DB logging system - if(sConfig.GetBoolDefault("EnableLogDB", false)) - { - // everything successful - set var to enable DB logging once startup finished. - sLog.SetLogDBLater(true); - sLog.SetLogDB(false); - sLog.SetRealmID(realmID); - } - else - { - sLog.SetLogDBLater(false); - sLog.SetLogDB(false); - sLog.SetRealmID(realmID); - } + sLog.SetLogDBLater(sConfig.GetBoolDefault("EnableLogDB", false)); // set var to enable DB logging once startup finished. + sLog.SetLogDB(false); + sLog.SetRealmID(realmID); ///- Clean the database before starting clearOnlineAccounts(); diff --git a/src/trinityrealm/Main.cpp b/src/trinityrealm/Main.cpp index f926aebf616..c642f57bd7e 100644 --- a/src/trinityrealm/Main.cpp +++ b/src/trinityrealm/Main.cpp @@ -199,21 +199,10 @@ extern int main(int argc, char **argv) return 1; ///- Initialize the log database - if (sConfig.GetBoolDefault("EnableLogDB", false)) - { - // everything successful - set var to enable DB logging once startup finished. - sLog.SetLogDBLater(true); - sLog.SetLogDB(false); - // ensure we've set realm to 0 (realmd realmid) - sLog.SetRealmID(0); - } - else - { - sLog.SetLogDBLater(false); - sLog.SetLogDB(false); - sLog.SetRealmID(0); - } - + sLog.SetLogDBLater(sConfig.GetBoolDefault("EnableLogDB", false)); // set var to enable DB logging once startup finished. + sLog.SetLogDB(false); + sLog.SetRealmID(0); // ensure we've set realm to 0 (realmd realmid) + ///- Get the list of realms for the server sRealmList->Initialize(sConfig.GetIntDefault("RealmsStateUpdateDelay", 20)); if (sRealmList->size() == 0) @@ -306,10 +295,7 @@ extern int main(int argc, char **argv) sLog.SetLogDB(true); } else - { sLog.SetLogDB(false); - sLog.SetLogDBLater(false); - } ///- Wait for termination signal while (!stopEvent) |