diff --git a/common/database.cpp b/common/database.cpp index c0679cc48..129fa2859 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -4173,7 +4173,7 @@ void Database::LoadLogSysSettings(EQEmuLogSys::LogSettings* log_settings){ auto results = QueryDatabase(query); int log_category = 0; - log_settings.file_logs_enabled = false; + Log.file_logs_enabled = false; for (auto row = results.begin(); row != results.end(); ++row) { log_category = atoi(row[0]); @@ -4186,7 +4186,7 @@ void Database::LoadLogSysSettings(EQEmuLogSys::LogSettings* log_settings){ If we go through this whole loop and nothing is set to any debug level, there is no point to create a file or keep anything open */ if (log_settings[log_category].log_to_file > 0){ - log_settings.file_logs_enabled = true; + Log.file_logs_enabled = true; } } } \ No newline at end of file diff --git a/common/eqemu_logsys.cpp b/common/eqemu_logsys.cpp index a37fc0850..0aadf0cdf 100644 --- a/common/eqemu_logsys.cpp +++ b/common/eqemu_logsys.cpp @@ -265,8 +265,8 @@ void EQEmuLogSys::CloseFileLogs() { if (EQEmuLogSys::log_platform == EQEmuExePlatform::ExePlatformZone){ std::cout << "Closing down zone logs..." << std::endl; - process_log.close(); } + process_log.close(); } void EQEmuLogSys::StartFileLogs(const std::string log_name) @@ -276,4 +276,7 @@ void EQEmuLogSys::StartFileLogs(const std::string log_name) EQEmuLogSys::MakeDirectory("logs/zone"); process_log.open(StringFormat("logs/zone/%s.txt", log_name.c_str()), std::ios_base::app | std::ios_base::out); } + else{ + + } } \ No newline at end of file diff --git a/queryserv/database.cpp b/queryserv/database.cpp index 585417e37..4b517016d 100644 --- a/queryserv/database.cpp +++ b/queryserv/database.cpp @@ -48,7 +48,7 @@ #include "../common/string_util.h" #include "../common/servertalk.h" -Database::Database () +QSDatabase::QSDatabase () { DBInitVars(); } @@ -57,13 +57,13 @@ Database::Database () Establish a connection to a mysql database with the supplied parameters */ -Database::Database(const char* host, const char* user, const char* passwd, const char* database, uint32 port) +QSDatabase::QSDatabase(const char* host, const char* user, const char* passwd, const char* database, uint32 port) { DBInitVars(); Connect(host, user, passwd, database, port); } -bool Database::Connect(const char* host, const char* user, const char* passwd, const char* database, uint32 port) +bool QSDatabase::Connect(const char* host, const char* user, const char* passwd, const char* database, uint32 port) { uint32 errnum= 0; char errbuf[MYSQL_ERRMSG_SIZE]; @@ -81,24 +81,24 @@ bool Database::Connect(const char* host, const char* user, const char* passwd, c } } -void Database::DBInitVars() { +void QSDatabase::DBInitVars() { } -void Database::HandleMysqlError(uint32 errnum) { +void QSDatabase::HandleMysqlError(uint32 errnum) { } /* Close the connection to the database */ -Database::~Database() +QSDatabase::~QSDatabase() { } -void Database::AddSpeech(const char* from, const char* to, const char* message, uint16 minstatus, uint32 guilddbid, uint8 type) { +void QSDatabase::AddSpeech(const char* from, const char* to, const char* message, uint16 minstatus, uint32 guilddbid, uint8 type) { char *escapedFrom = new char[strlen(from) * 2 + 1]; char *escapedTo = new char[strlen(to) * 2 + 1]; @@ -123,7 +123,7 @@ void Database::AddSpeech(const char* from, const char* to, const char* message, } -void Database::LogPlayerTrade(QSPlayerLogTrade_Struct* QS, uint32 detailCount) { +void QSDatabase::LogPlayerTrade(QSPlayerLogTrade_Struct* QS, uint32 detailCount) { std::string query = StringFormat("INSERT INTO `qs_player_trade_record` SET `time` = NOW(), " "`char1_id` = '%i', `char1_pp` = '%i', `char1_gp` = '%i', " @@ -164,7 +164,7 @@ void Database::LogPlayerTrade(QSPlayerLogTrade_Struct* QS, uint32 detailCount) { } -void Database::LogPlayerHandin(QSPlayerLogHandin_Struct* QS, uint32 detailCount) { +void QSDatabase::LogPlayerHandin(QSPlayerLogHandin_Struct* QS, uint32 detailCount) { std::string query = StringFormat("INSERT INTO `qs_player_handin_record` SET `time` = NOW(), " "`quest_id` = '%i', `char_id` = '%i', `char_pp` = '%i', " @@ -205,7 +205,7 @@ void Database::LogPlayerHandin(QSPlayerLogHandin_Struct* QS, uint32 detailCount) } -void Database::LogPlayerNPCKill(QSPlayerLogNPCKill_Struct* QS, uint32 members){ +void QSDatabase::LogPlayerNPCKill(QSPlayerLogNPCKill_Struct* QS, uint32 members){ std::string query = StringFormat("INSERT INTO `qs_player_npc_kill_record` " "SET `npc_id` = '%i', `type` = '%i', " @@ -236,7 +236,7 @@ void Database::LogPlayerNPCKill(QSPlayerLogNPCKill_Struct* QS, uint32 members){ } -void Database::LogPlayerDelete(QSPlayerLogDelete_Struct* QS, uint32 items) { +void QSDatabase::LogPlayerDelete(QSPlayerLogDelete_Struct* QS, uint32 items) { std::string query = StringFormat("INSERT INTO `qs_player_delete_record` SET `time` = NOW(), " "`char_id` = '%i', `stack_size` = '%i', `char_items` = '%i'", @@ -269,7 +269,7 @@ void Database::LogPlayerDelete(QSPlayerLogDelete_Struct* QS, uint32 items) { } -void Database::LogPlayerMove(QSPlayerLogMove_Struct* QS, uint32 items) { +void QSDatabase::LogPlayerMove(QSPlayerLogMove_Struct* QS, uint32 items) { /* These are item moves */ std::string query = StringFormat("INSERT INTO `qs_player_move_record` SET `time` = NOW(), " @@ -305,7 +305,7 @@ void Database::LogPlayerMove(QSPlayerLogMove_Struct* QS, uint32 items) { } -void Database::LogMerchantTransaction(QSMerchantLogTransaction_Struct* QS, uint32 items) { +void QSDatabase::LogMerchantTransaction(QSMerchantLogTransaction_Struct* QS, uint32 items) { /* Merchant transactions are from the perspective of the merchant, not the player -U */ std::string query = StringFormat("INSERT INTO `qs_merchant_transaction_record` SET `time` = NOW(), " "`zone_id` = '%i', `merchant_id` = '%i', `merchant_pp` = '%i', " @@ -346,7 +346,7 @@ void Database::LogMerchantTransaction(QSMerchantLogTransaction_Struct* QS, uint3 } -void Database::GeneralQueryReceive(ServerPacket *pack) { +void QSDatabase::GeneralQueryReceive(ServerPacket *pack) { /* These are general queries passed from anywhere in zone instead of packing structures and breaking them down again and again */ diff --git a/queryserv/database.h b/queryserv/database.h index adcb8c811..fe99a866d 100644 --- a/queryserv/database.h +++ b/queryserv/database.h @@ -35,12 +35,12 @@ //atoi is not uint32 or uint32 safe!!!! #define atoul(str) strtoul(str, nullptr, 10) -class Database : public DBcore { +class QSDatabase : public DBcore { public: - Database(); - Database(const char* host, const char* user, const char* passwd, const char* database,uint32 port); + QSDatabase(); + QSDatabase(const char* host, const char* user, const char* passwd, const char* database,uint32 port); bool Connect(const char* host, const char* user, const char* passwd, const char* database,uint32 port); - ~Database(); + ~QSDatabase(); void AddSpeech(const char* from, const char* to, const char* message, uint16 minstatus, uint32 guilddbid, uint8 type); void LogPlayerTrade(QSPlayerLogTrade_Struct* QS, uint32 DetailCount); diff --git a/queryserv/lfguild.cpp b/queryserv/lfguild.cpp index 340321f06..2684f4541 100644 --- a/queryserv/lfguild.cpp +++ b/queryserv/lfguild.cpp @@ -8,7 +8,7 @@ #include "../common/rulesys.h" extern WorldServer *worldserver; -extern Database database; +extern QSDatabase qs_database; PlayerLookingForGuild::PlayerLookingForGuild(char *Name, char *Comments, uint32 Level, uint32 Class, uint32 AACount, uint32 Timezone, uint32 TimePosted) { @@ -38,7 +38,7 @@ bool LFGuildManager::LoadDatabase() std::string query = "SELECT `type`,`name`,`comment`, " "`fromlevel`, `tolevel`, `classes`, " "`aacount`, `timezone`, `timeposted` FROM `lfguild`"; - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); if (!results.Success()) { return false; } @@ -239,7 +239,7 @@ void LFGuildManager::TogglePlayer(uint32 FromZoneID, uint32 FromInstanceID, char } std::string query = StringFormat("DELETE FROM `lfguild` WHERE `type` = 0 AND `name` = '%s'", From); - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); uint32 Now = time(nullptr); @@ -252,7 +252,7 @@ void LFGuildManager::TogglePlayer(uint32 FromZoneID, uint32 FromInstanceID, char "`classes`, `aacount`, `timezone`, `timeposted`) " "VALUES (0, '%s', '%s', %u, 0, %u, %u, %u, %u)", From, Comments, Level, Class, AAPoints, TimeZone, Now); - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); } ServerPacket *pack = new ServerPacket(ServerOP_QueryServGeneric, strlen(From) + strlen(Comments) + 30); @@ -281,7 +281,7 @@ void LFGuildManager::ToggleGuild(uint32 FromZoneID, uint32 FromInstanceID, char } std::string query = StringFormat("DELETE FROM `lfguild` WHERE `type` = 1 AND `name` = '%s'", GuildName); - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); uint32 Now = time(nullptr); @@ -296,7 +296,7 @@ void LFGuildManager::ToggleGuild(uint32 FromZoneID, uint32 FromInstanceID, char "VALUES (1, '%s', '%s', %u, %u, %u, %u, %u, %u)", GuildName, Comments, FromLevel, ToLevel, Classes, AACount, TimeZone, Now); - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); } @@ -324,7 +324,7 @@ void LFGuildManager::ExpireEntries() continue; std::string query = StringFormat("DELETE from `lfguild` WHERE `type` = 0 AND `name` = '%s'", (*it).Name.c_str()); - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); if(!results.Success()) it = Players.erase(it); @@ -336,7 +336,7 @@ void LFGuildManager::ExpireEntries() continue; std::string query = StringFormat("DELETE from `lfguild` WHERE `type` = 1 AND `name` = '%s'", (*it2).Name.c_str()); - auto results = database.QueryDatabase(query); + auto results = qs_database.QueryDatabase(query); if(!results.Success()) it2 = Guilds.erase(it2); diff --git a/queryserv/queryserv.cpp b/queryserv/queryserv.cpp index e227f515f..fe333e4a4 100644 --- a/queryserv/queryserv.cpp +++ b/queryserv/queryserv.cpp @@ -17,6 +17,7 @@ */ +#include "../common/database.h" #include "../common/global_define.h" #include "../common/eqemu_logsys.h" #include "../common/opcodemgr.h" @@ -36,6 +37,7 @@ volatile bool RunLoops = true; TimeoutManager timeout_manager; Database database; +QSDatabase qs_database; LFGuildManager lfguildmanager; std::string WorldShortName; const queryservconfig *Config; @@ -50,7 +52,6 @@ void CatchSignal(int sig_num) { int main() { RegisterExecutablePlatform(ExePlatformQueryServ); - Log.LoadLogSettingsDefaults(); set_exception_handler(); Timer LFGuildExpireTimer(60000); Timer InterserverTimer(INTERSERVER_TIMER); // does auto-reconnect @@ -77,7 +78,7 @@ int main() { Log.Out(Logs::Detail, Logs::QS_Server, "Connecting to MySQL..."); /* MySQL Connection */ - if (!database.Connect( + if (!qs_database.Connect( Config->QSDatabaseHost.c_str(), Config->QSDatabaseUsername.c_str(), Config->QSDatabasePassword.c_str(), @@ -87,6 +88,9 @@ int main() { return 1; } + Log.LoadLogSettingsDefaults(); + database.LoadLogSysSettings(Log.log_settings); + if (signal(SIGINT, CatchSignal) == SIG_ERR) { Log.Out(Logs::Detail, Logs::QS_Server, "Could not set signal handler"); return 1; diff --git a/queryserv/worldserver.cpp b/queryserv/worldserver.cpp index 2d2f288a4..e043facf9 100644 --- a/queryserv/worldserver.cpp +++ b/queryserv/worldserver.cpp @@ -38,7 +38,7 @@ extern WorldServer worldserver; extern const queryservconfig *Config; -extern Database database; +extern QSDatabase qs_database; extern LFGuildManager lfguildmanager; WorldServer::WorldServer() @@ -78,42 +78,42 @@ void WorldServer::Process() Server_Speech_Struct *SSS = (Server_Speech_Struct*)pack->pBuffer; std::string tmp1 = SSS->from; std::string tmp2 = SSS->to; - database.AddSpeech(tmp1.c_str(), tmp2.c_str(), SSS->message, SSS->minstatus, SSS->guilddbid, SSS->type); + qs_database.AddSpeech(tmp1.c_str(), tmp2.c_str(), SSS->message, SSS->minstatus, SSS->guilddbid, SSS->type); break; } case ServerOP_QSPlayerLogTrades: { QSPlayerLogTrade_Struct *QS = (QSPlayerLogTrade_Struct*)pack->pBuffer; - database.LogPlayerTrade(QS, QS->_detail_count); + qs_database.LogPlayerTrade(QS, QS->_detail_count); break; } case ServerOP_QSPlayerLogHandins: { QSPlayerLogHandin_Struct *QS = (QSPlayerLogHandin_Struct*)pack->pBuffer; - database.LogPlayerHandin(QS, QS->_detail_count); + qs_database.LogPlayerHandin(QS, QS->_detail_count); break; } case ServerOP_QSPlayerLogNPCKills: { QSPlayerLogNPCKill_Struct *QS = (QSPlayerLogNPCKill_Struct*)pack->pBuffer; uint32 Members = pack->size - sizeof(QSPlayerLogNPCKill_Struct); if (Members > 0) Members = Members / sizeof(QSPlayerLogNPCKillsPlayers_Struct); - database.LogPlayerNPCKill(QS, Members); + qs_database.LogPlayerNPCKill(QS, Members); break; } case ServerOP_QSPlayerLogDeletes: { QSPlayerLogDelete_Struct *QS = (QSPlayerLogDelete_Struct*)pack->pBuffer; uint32 Items = QS->char_count; - database.LogPlayerDelete(QS, Items); + qs_database.LogPlayerDelete(QS, Items); break; } case ServerOP_QSPlayerLogMoves: { QSPlayerLogMove_Struct *QS = (QSPlayerLogMove_Struct*)pack->pBuffer; uint32 Items = QS->char_count; - database.LogPlayerMove(QS, Items); + qs_database.LogPlayerMove(QS, Items); break; } case ServerOP_QSPlayerLogMerchantTransactions: { QSMerchantLogTransaction_Struct *QS = (QSMerchantLogTransaction_Struct*)pack->pBuffer; uint32 Items = QS->char_count + QS->merchant_count; - database.LogMerchantTransaction(QS, Items); + qs_database.LogMerchantTransaction(QS, Items); break; } case ServerOP_QueryServGeneric: { @@ -155,7 +155,7 @@ void WorldServer::Process() } case ServerOP_QSSendQuery: { /* Process all packets here */ - database.GeneralQueryReceive(pack); + qs_database.GeneralQueryReceive(pack); break; } }