From 39c2d892f3e696526b2373fb6990f3a93c2bd9ec Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Wed, 23 Jan 2013 17:48:17 +0100 Subject: Core/Log: Allow configuring a maximum file size for a log file. If the file size is about to be exceeded, the core will create a new file titled _.log and start outputting there. --- src/server/shared/Logging/AppenderFile.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index 8189237bb4e..c2f1e0c919d 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -18,11 +18,12 @@ #include "AppenderFile.h" #include "Common.h" -AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, const char* _filename, const char* _logDir, const char* _mode, AppenderFlags _flags) +AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, const char* _filename, const char* _logDir, const char* _mode, AppenderFlags _flags, uint64 fileSize) : Appender(id, name, APPENDER_FILE, level, _flags) , filename(_filename) , logDir(_logDir) , mode(_mode) + , _fileSize(fileSize) { dynamicName = std::string::npos != filename.find("%s"); backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP; @@ -46,12 +47,25 @@ void AppenderFile::_write(LogMessage const& message) char namebuf[TRINITY_PATH_MAX]; snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str()); logfile = OpenFile(namebuf, mode, backup); + _fileSize = ftell(logfile); } if (logfile) { + if (!dynamicName && _fileSize + message.Size() > _maxFileSize) + { + /** @ We assume all log files have a .log extension. + If file "gol.log" is at its max capacity, this will spawn a new file, "gol_.log". If that one reaches capacity, it'll spawn "gol__.log", etc. + */ + filename.replace(filename.end() - 3, filename.end(), "_.log"); + logfile = OpenFile(filename.c_str(), mode, backup); + _write(message); + return; + } + fprintf(logfile, "%s%s", message.prefix.c_str(), message.text.c_str()); fflush(logfile); + _fileSize += message.Size(); if (dynamicName) { @@ -71,5 +85,7 @@ FILE* AppenderFile::OpenFile(std::string const &filename, std::string const &mod rename(filename.c_str(), newName.c_str()); // no error handling... if we couldn't make a backup, just ignore } - return fopen((logDir + filename).c_str(), mode.c_str()); + FILE* ret = fopen((logDir + filename).c_str(), mode.c_str()); + _fileSize = ftell(ret); + return ret; } -- cgit v1.2.3 From 23b6a6a7cd27987bff8a5786cfd8dc45349f52ed Mon Sep 17 00:00:00 2001 From: Spp Date: Thu, 24 Jan 2013 12:44:58 +0100 Subject: Core/Log: Rotate logs when maximum size is exceeded, backup name will be "filename".datetime - This is an addition to 39c2d89 --- src/server/authserver/authserver.conf.dist | 11 +++- src/server/shared/Logging/AppenderFile.cpp | 83 +++++++++++++++--------------- src/server/shared/Logging/AppenderFile.h | 5 +- 3 files changed, 54 insertions(+), 45 deletions(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/authserver/authserver.conf.dist b/src/server/authserver/authserver.conf.dist index 67d22c49da1..dda19c3b849 100644 --- a/src/server/authserver/authserver.conf.dist +++ b/src/server/authserver/authserver.conf.dist @@ -154,7 +154,7 @@ LoginDatabase.WorkerThreads = 1 # Appender config values: Given a appender "name" # Appender.name # Description: Defines 'where to log' -# Format: Type,LogLevel,Flags,optional1,optional2 +# Format: Type,LogLevel,Flags,optional1,optional2,optional3 # # Type # 0 - (None) @@ -205,6 +205,13 @@ LoginDatabase.WorkerThreads = 1 # a - (Append) # w - (Overwrite) # +# MaxFileSize: Maximum file size of the log file before creating a new log file +# (read as optional3 if Type = File) +# Size is measured in bytes expressed in a 64-bit unsigned integer. +# Maximum value is 4294967295 (4 gb). Leave blank for no limit. +# NOTE: Does not work with dynamic filenames. +# Example: 536870912 (512 mb) +# Appender.Console=1,2,0 Appender.Auth=2,2,0,Auth.log,w @@ -250,4 +257,4 @@ Logger.Root=0,3,Console Auth Loggers=Root # -################################################################################################### \ No newline at end of file +################################################################################################### diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index c2f1e0c919d..1ed6350f813 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -18,74 +18,75 @@ #include "AppenderFile.h" #include "Common.h" -AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, const char* _filename, const char* _logDir, const char* _mode, AppenderFlags _flags, uint64 fileSize) - : Appender(id, name, APPENDER_FILE, level, _flags) - , filename(_filename) - , logDir(_logDir) - , mode(_mode) - , _fileSize(fileSize) +AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, const char* _filename, const char* _logDir, const char* _mode, AppenderFlags _flags, uint64 fileSize): + Appender(id, name, APPENDER_FILE, level, _flags), + filename(_filename), + logDir(_logDir), + mode(_mode), + maxFileSize(fileSize), + fileSize(0) { dynamicName = std::string::npos != filename.find("%s"); backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP; - logfile = !dynamicName ? OpenFile(_filename, _mode, backup) : NULL; + logfile = !dynamicName ? OpenFile(_filename, _mode, mode == "w" && backup) : NULL; } AppenderFile::~AppenderFile() { - if (logfile) - { - fclose(logfile); - logfile = NULL; - } + CloseFile(); } void AppenderFile::_write(LogMessage const& message) { + bool exceedMaxSize = maxFileSize > 0 && (fileSize + message.Size()) > maxFileSize; + if (dynamicName) { char namebuf[TRINITY_PATH_MAX]; snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str()); - logfile = OpenFile(namebuf, mode, backup); - _fileSize = ftell(logfile); + logfile = OpenFile(namebuf, mode, backup || exceedMaxSize); } + else if (exceedMaxSize) + logfile = OpenFile(filename, "w", true); - if (logfile) - { - if (!dynamicName && _fileSize + message.Size() > _maxFileSize) - { - /** @ We assume all log files have a .log extension. - If file "gol.log" is at its max capacity, this will spawn a new file, "gol_.log". If that one reaches capacity, it'll spawn "gol__.log", etc. - */ - filename.replace(filename.end() - 3, filename.end(), "_.log"); - logfile = OpenFile(filename.c_str(), mode, backup); - _write(message); - return; - } + if (!logfile) + return; - fprintf(logfile, "%s%s", message.prefix.c_str(), message.text.c_str()); - fflush(logfile); - _fileSize += message.Size(); + fprintf(logfile, "%s%s", message.prefix.c_str(), message.text.c_str()); + fflush(logfile); + fileSize += message.Size(); - if (dynamicName) - { - fclose(logfile); - logfile = NULL; - } - } + if (dynamicName) + CloseFile(); } FILE* AppenderFile::OpenFile(std::string const &filename, std::string const &mode, bool backup) { - if (mode == "w" && backup) + std::string fullName(logDir + filename); + if (backup) { - std::string newName(filename); + CloseFile(); + std::string newName(fullName); newName.push_back('.'); newName.append(LogMessage::getTimeStr(time(NULL))); - rename(filename.c_str(), newName.c_str()); // no error handling... if we couldn't make a backup, just ignore + rename(fullName.c_str(), newName.c_str()); // no error handling... if we couldn't make a backup, just ignore } - FILE* ret = fopen((logDir + filename).c_str(), mode.c_str()); - _fileSize = ftell(ret); - return ret; + if (FILE* ret = fopen(fullName.c_str(), mode.c_str())) + { + fileSize = ftell(ret); + return ret; + } + + return NULL; +} + +void AppenderFile::CloseFile() +{ + if (logfile) + { + fclose(logfile); + logfile = NULL; + } } diff --git a/src/server/shared/Logging/AppenderFile.h b/src/server/shared/Logging/AppenderFile.h index 4f3055bd6be..c15974799e1 100644 --- a/src/server/shared/Logging/AppenderFile.h +++ b/src/server/shared/Logging/AppenderFile.h @@ -28,6 +28,7 @@ class AppenderFile: public Appender FILE* OpenFile(std::string const& _name, std::string const& _mode, bool _backup); private: + void CloseFile(); void _write(LogMessage const& message); FILE* logfile; std::string filename; @@ -35,8 +36,8 @@ class AppenderFile: public Appender std::string mode; bool dynamicName; bool backup; - uint64 _maxFileSize; - uint64 _fileSize; + uint64 maxFileSize; + uint64 fileSize; }; #endif -- cgit v1.2.3 From 61495d18a3423d5b7f44425f902342d4a3a3892c Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Fri, 25 Jan 2013 21:40:21 +0100 Subject: Core/Log: Fix crash due to uninitialized variable --- src/server/shared/Logging/AppenderFile.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index 1ed6350f813..25141815de6 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -24,7 +24,8 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, co logDir(_logDir), mode(_mode), maxFileSize(fileSize), - fileSize(0) + fileSize(0), + logfile(NULL) { dynamicName = std::string::npos != filename.find("%s"); backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP; -- cgit v1.2.3 From fa5dd4bd4e58c13229bcfb8e6bf879838de47e60 Mon Sep 17 00:00:00 2001 From: Spp Date: Wed, 30 Jan 2013 08:39:06 +0100 Subject: Core/Misc: Remove some calls to const_cast --- src/server/game/Battlefield/Battlefield.cpp | 4 ++-- src/server/game/Handlers/AddonHandler.cpp | 28 +++++++++++----------- src/server/game/Handlers/MiscHandler.cpp | 4 ++-- src/server/game/Handlers/TicketHandler.cpp | 2 +- src/server/game/Server/Protocol/PacketLog.cpp | 2 +- src/server/game/Server/WorldSession.cpp | 2 +- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 20 ++++++++-------- src/server/game/Spells/Auras/SpellAuras.cpp | 4 ++-- src/server/game/Warden/Warden.cpp | 2 +- src/server/game/Warden/WardenMac.cpp | 2 +- src/server/game/Warden/WardenWin.cpp | 2 +- .../DarkPortal/instance_dark_portal.cpp | 2 +- src/server/shared/Logging/AppenderFile.cpp | 4 ++-- src/server/shared/Packets/ByteBuffer.h | 2 ++ src/server/worldserver/RemoteAccess/RASocket.cpp | 3 ++- 15 files changed, 43 insertions(+), 40 deletions(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index dffdb2361d5..5f5a14814eb 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -816,7 +816,7 @@ Creature* Battlefield::SpawnCreature(uint32 entry, Position pos, TeamId team) Creature* Battlefield::SpawnCreature(uint32 entry, float x, float y, float z, float o, TeamId team) { //Get map object - Map* map = const_cast(sMapMgr->CreateBaseMap(m_MapId)); + Map* map = sMapMgr->CreateBaseMap(m_MapId); if (!map) { sLog->outError(LOG_FILTER_BATTLEFIELD, "Battlefield::SpawnCreature: Can't create creature entry: %u map not found", entry); @@ -854,7 +854,7 @@ Creature* Battlefield::SpawnCreature(uint32 entry, float x, float y, float z, fl GameObject* Battlefield::SpawnGameObject(uint32 entry, float x, float y, float z, float o) { // Get map object - Map* map = const_cast(sMapMgr->CreateBaseMap(571)); // *vomits* + Map* map = sMapMgr->CreateBaseMap(571); // *vomits* if (!map) return 0; diff --git a/src/server/game/Handlers/AddonHandler.cpp b/src/server/game/Handlers/AddonHandler.cpp index 7e62280f17c..68c93259fcb 100644 --- a/src/server/game/Handlers/AddonHandler.cpp +++ b/src/server/game/Handlers/AddonHandler.cpp @@ -30,7 +30,7 @@ AddonHandler::~AddonHandler() { } -bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) +bool AddonHandler::BuildAddonPacket(WorldPacket* source, WorldPacket* target) { ByteBuffer AddOnPacked; uLongf AddonRealSize; @@ -38,10 +38,10 @@ bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) uint32 TempValue; // broken addon packet, can't be received from real client - if (Source->rpos() + 4 > Source->size()) + if (source->rpos() + 4 > source->size()) return false; - *Source >> TempValue; // get real size of the packed structure + *source >> TempValue; // get real size of the packed structure // empty addon packet, nothing process, can't be received from real client if (!TempValue) @@ -49,13 +49,13 @@ bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) AddonRealSize = TempValue; // temp value because ZLIB only excepts uLongf - CurrentPosition = Source->rpos(); // get the position of the pointer in the structure + CurrentPosition = source->rpos(); // get the position of the pointer in the structure AddOnPacked.resize(AddonRealSize); // resize target for zlib action - if (!uncompress(const_cast(AddOnPacked.contents()), &AddonRealSize, const_cast((*Source).contents() + CurrentPosition), (*Source).size() - CurrentPosition)!= Z_OK) + if (!uncompress(AddOnPacked.contents(), &AddonRealSize, source->contents() + CurrentPosition, source->size() - CurrentPosition)!= Z_OK) { - Target->Initialize(SMSG_ADDON_INFO); + target->Initialize(SMSG_ADDON_INFO); uint32 addonsCount; AddOnPacked >> addonsCount; // addons count? @@ -81,14 +81,14 @@ bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) sLog->outDebug(LOG_FILTER_NETWORKIO, "ADDON: Name: %s, Enabled: 0x%x, CRC: 0x%x, Unknown2: 0x%x", addonName.c_str(), enabled, crc, unk2); uint8 state = (enabled ? 2 : 1); - *Target << uint8(state); + *target << uint8(state); uint8 unk1 = (enabled ? 1 : 0); - *Target << uint8(unk1); + *target << uint8(unk1); if (unk1) { uint8 unk = (crc != 0x4c1c776d); // If addon is Standard addon CRC - *Target << uint8(unk); + *target << uint8(unk); if (unk) { unsigned char tdata[256] = @@ -110,18 +110,18 @@ bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) 0xC3, 0xFB, 0x1B, 0x8C, 0x29, 0xEF, 0x8E, 0xE5, 0x34, 0xCB, 0xD1, 0x2A, 0xCE, 0x79, 0xC3, 0x9A, 0x0D, 0x36, 0xEA, 0x01, 0xE0, 0xAA, 0x91, 0x20, 0x54, 0xF0, 0x72, 0xD8, 0x1E, 0xC7, 0x89, 0xD2 }; - Target->append(tdata, sizeof(tdata)); + target->append(tdata, sizeof(tdata)); } - *Target << uint32(0); + *target << uint32(0); } uint8 unk3 = (enabled ? 0 : 1); - *Target << uint8(unk3); + *target << uint8(unk3); if (unk3) { // String, 256 (null terminated?) - *Target << uint8(0); + *target << uint8(0); } } @@ -129,7 +129,7 @@ bool AddonHandler::BuildAddonPacket(WorldPacket* Source, WorldPacket* Target) AddOnPacked >> unk4; uint32 count = 0; - *Target << uint32(count); + *target << uint32(count); if (AddOnPacked.rpos() != AddOnPacked.size()) sLog->outDebug(LOG_FILTER_NETWORKIO, "packet under read!"); diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 1aadd7f319d..aa4c9f35085 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -976,7 +976,7 @@ void WorldSession::HandleUpdateAccountData(WorldPacket& recvData) dest.resize(decompressedSize); uLongf realSize = decompressedSize; - if (uncompress(const_cast(dest.contents()), &realSize, const_cast(recvData.contents() + recvData.rpos()), recvData.size() - recvData.rpos()) != Z_OK) + if (uncompress(dest.contents(), &realSize, recvData.contents() + recvData.rpos(), recvData.size() - recvData.rpos()) != Z_OK) { recvData.rfinish(); // unnneded warning spam in this case sLog->outError(LOG_FILTER_NETWORKIO, "UAD: Failed to decompress account data"); @@ -1017,7 +1017,7 @@ void WorldSession::HandleRequestAccountData(WorldPacket& recvData) ByteBuffer dest; dest.resize(destSize); - if (size && compress(const_cast(dest.contents()), &destSize, (uint8*)adata->Data.c_str(), size) != Z_OK) + if (size && compress(dest.contents(), &destSize, (uint8 const*)adata->Data.c_str(), size) != Z_OK) { sLog->outDebug(LOG_FILTER_NETWORKIO, "RAD: Failed to compress account data"); return; diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp index 4463613a97b..2da2735a3f9 100644 --- a/src/server/game/Handlers/TicketHandler.cpp +++ b/src/server/game/Handlers/TicketHandler.cpp @@ -69,7 +69,7 @@ void WorldSession::HandleGMTicketCreateOpcode(WorldPacket& recvData) dest.resize(decompressedSize); uLongf realSize = decompressedSize; - if (uncompress(const_cast(dest.contents()), &realSize, const_cast(recvData.contents() + pos), recvData.size() - pos) == Z_OK) + if (uncompress(dest.contents(), &realSize, recvData.contents() + pos, recvData.size() - pos) == Z_OK) { dest >> chatLog; ticket->SetChatLog(times, chatLog); diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp index 649f4130c06..fe8b6804020 100644 --- a/src/server/game/Server/Protocol/PacketLog.cpp +++ b/src/server/game/Server/Protocol/PacketLog.cpp @@ -55,7 +55,7 @@ void PacketLog::LogPacket(WorldPacket const& packet, Direction direction) data << uint8(direction); for (uint32 i = 0; i < packet.size(); i++) - data << const_cast(packet)[i]; + data << packet[i]; fwrite(data.contents(), 1, data.size(), _file); fflush(_file); diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 6a26dafde79..6c689319bc7 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -961,7 +961,7 @@ void WorldSession::ReadAddonsInfo(WorldPacket &data) ByteBuffer addonInfo; addonInfo.resize(size); - if (uncompress(const_cast(addonInfo.contents()), &uSize, const_cast(data.contents() + pos), data.size() - pos) == Z_OK) + if (uncompress(addonInfo.contents(), &uSize, data.contents() + pos, data.size() - pos) == Z_OK) { uint32 addonsCount; addonInfo >> addonsCount; // addons count diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 9230c46db15..05119af2582 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -488,7 +488,7 @@ int32 AuraEffect::CalculateAmount(Unit* caster) break; } - GetBase()->CallScriptEffectCalcAmountHandlers(const_cast(this), amount, m_canBeRecalculated); + GetBase()->CallScriptEffectCalcAmountHandlers(this, amount, m_canBeRecalculated); amount *= GetBase()->GetStackAmount(); return amount; } @@ -522,7 +522,7 @@ void AuraEffect::CalculatePeriodic(Unit* caster, bool create, bool load) break; } - GetBase()->CallScriptEffectCalcPeriodicHandlers(const_cast(this), m_isPeriodic, m_amplitude); + GetBase()->CallScriptEffectCalcPeriodicHandlers(this, m_isPeriodic, m_amplitude); if (!m_isPeriodic) return; @@ -598,7 +598,7 @@ void AuraEffect::CalculateSpellMod() default: break; } - GetBase()->CallScriptEffectCalcSpellModHandlers(const_cast(this), m_spellmod); + GetBase()->CallScriptEffectCalcSpellModHandlers(this, m_spellmod); } void AuraEffect::ChangeAmount(int32 newAmount, bool mark, bool onStackOrReapply) @@ -657,15 +657,15 @@ void AuraEffect::HandleEffect(AuraApplication * aurApp, uint8 mode, bool apply) // call scripts helping/replacing effect handlers bool prevented = false; if (apply) - prevented = GetBase()->CallScriptEffectApplyHandlers(const_cast(this), const_cast(aurApp), (AuraEffectHandleModes)mode); + prevented = GetBase()->CallScriptEffectApplyHandlers(this, aurApp, (AuraEffectHandleModes)mode); else - prevented = GetBase()->CallScriptEffectRemoveHandlers(const_cast(this), const_cast(aurApp), (AuraEffectHandleModes)mode); + prevented = GetBase()->CallScriptEffectRemoveHandlers(this, aurApp, (AuraEffectHandleModes)mode); // check if script events have removed the aura or if default effect prevention was requested if ((apply && aurApp->GetRemoveMode()) || prevented) return; - (*this.*AuraEffectHandler [GetAuraType()])(const_cast(aurApp), mode, apply); + (*this.*AuraEffectHandler[GetAuraType()])(aurApp, mode, apply); // check if script events have removed the aura or if default effect prevention was requested if (apply && aurApp->GetRemoveMode()) @@ -673,9 +673,9 @@ void AuraEffect::HandleEffect(AuraApplication * aurApp, uint8 mode, bool apply) // call scripts triggering additional events after apply/remove if (apply) - GetBase()->CallScriptAfterEffectApplyHandlers(const_cast(this), const_cast(aurApp), (AuraEffectHandleModes)mode); + GetBase()->CallScriptAfterEffectApplyHandlers(this, aurApp, (AuraEffectHandleModes)mode); else - GetBase()->CallScriptAfterEffectRemoveHandlers(const_cast(this), const_cast(aurApp), (AuraEffectHandleModes)mode); + GetBase()->CallScriptAfterEffectRemoveHandlers(this, aurApp, (AuraEffectHandleModes)mode); } void AuraEffect::HandleEffect(Unit* target, uint8 mode, bool apply) @@ -980,7 +980,7 @@ void AuraEffect::PeriodicTick(AuraApplication * aurApp, Unit* caster) const void AuraEffect::HandleProc(AuraApplication* aurApp, ProcEventInfo& eventInfo) { - bool prevented = GetBase()->CallScriptEffectProcHandlers(const_cast(this), const_cast(aurApp), eventInfo); + bool prevented = GetBase()->CallScriptEffectProcHandlers(this, aurApp, eventInfo); if (prevented) return; @@ -1005,7 +1005,7 @@ void AuraEffect::HandleProc(AuraApplication* aurApp, ProcEventInfo& eventInfo) break; } - GetBase()->CallScriptAfterEffectProcHandlers(const_cast(this), const_cast(aurApp), eventInfo); + GetBase()->CallScriptAfterEffectProcHandlers(this, aurApp, eventInfo); } void AuraEffect::CleanupTriggeredSpells(Unit* target) diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 795908ce4b5..4500152133e 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -2048,14 +2048,14 @@ float Aura::CalcProcChance(SpellProcEntry const& procEntry, ProcEventInfo& event void Aura::TriggerProcOnEvent(AuraApplication* aurApp, ProcEventInfo& eventInfo) { - CallScriptProcHandlers(const_cast(aurApp), eventInfo); + CallScriptProcHandlers(aurApp, eventInfo); for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) if (aurApp->HasEffect(i)) // OnEffectProc / AfterEffectProc hooks handled in AuraEffect::HandleProc() GetEffect(i)->HandleProc(aurApp, eventInfo); - CallScriptAfterProcHandlers(const_cast(aurApp), eventInfo); + CallScriptAfterProcHandlers(aurApp, eventInfo); // Remove aura if we've used last charge to proc if (IsUsingCharges() && !GetCharges()) diff --git a/src/server/game/Warden/Warden.cpp b/src/server/game/Warden/Warden.cpp index a99688c8844..af695c482cf 100644 --- a/src/server/game/Warden/Warden.cpp +++ b/src/server/game/Warden/Warden.cpp @@ -219,7 +219,7 @@ std::string Warden::Penalty(WardenCheck* check /*= NULL*/) void WorldSession::HandleWardenDataOpcode(WorldPacket& recvData) { - _warden->DecryptData(const_cast(recvData.contents()), recvData.size()); + _warden->DecryptData(recvData.contents(), recvData.size()); uint8 opcode; recvData >> opcode; sLog->outDebug(LOG_FILTER_WARDEN, "Got packet, opcode %02X, size %u", opcode, uint32(recvData.size())); diff --git a/src/server/game/Warden/WardenMac.cpp b/src/server/game/Warden/WardenMac.cpp index 7c2979e0dc6..fa84cd216b6 100644 --- a/src/server/game/Warden/WardenMac.cpp +++ b/src/server/game/Warden/WardenMac.cpp @@ -206,7 +206,7 @@ void WardenMac::RequestData() buff.hexlike(); // Encrypt with warden RC4 key. - EncryptData(const_cast(buff.contents()), buff.size()); + EncryptData(buff.contents(), buff.size()); WorldPacket pkt(SMSG_WARDEN_DATA, buff.size()); pkt.append(buff); diff --git a/src/server/game/Warden/WardenWin.cpp b/src/server/game/Warden/WardenWin.cpp index 4da05eded0c..bf423459222 100644 --- a/src/server/game/Warden/WardenWin.cpp +++ b/src/server/game/Warden/WardenWin.cpp @@ -310,7 +310,7 @@ void WardenWin::RequestData() buff.hexlike(); // Encrypt with warden RC4 key - EncryptData(const_cast(buff.contents()), buff.size()); + EncryptData(buff.contents(), buff.size()); WorldPacket pkt(SMSG_WARDEN_DATA, buff.size()); pkt.append(buff); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp index 9c17ed10d9c..78b655bb73b 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/instance_dark_portal.cpp @@ -122,7 +122,7 @@ public: bool IsEncounterInProgress() const { - if (const_cast(this)->GetData(TYPE_MEDIVH) == IN_PROGRESS) + if (GetData(TYPE_MEDIVH) == IN_PROGRESS) return true; return false; diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index 25141815de6..e29459299f7 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -20,12 +20,12 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, const char* _filename, const char* _logDir, const char* _mode, AppenderFlags _flags, uint64 fileSize): Appender(id, name, APPENDER_FILE, level, _flags), + logfile(NULL), filename(_filename), logDir(_logDir), mode(_mode), maxFileSize(fileSize), - fileSize(0), - logfile(NULL) + fileSize(0) { dynamicName = std::string::npos != filename.find("%s"); backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP; diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index 22dad8d7dd1..bf2980aa45d 100644 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -381,6 +381,8 @@ class ByteBuffer return *this; } + uint8 * contents() { return &_storage[0]; } + const uint8 *contents() const { return &_storage[0]; } size_t size() const { return _storage.size(); } diff --git a/src/server/worldserver/RemoteAccess/RASocket.cpp b/src/server/worldserver/RemoteAccess/RASocket.cpp index e0f4e7f0de6..94950703271 100644 --- a/src/server/worldserver/RemoteAccess/RASocket.cpp +++ b/src/server/worldserver/RemoteAccess/RASocket.cpp @@ -388,7 +388,8 @@ void RASocket::zprint(void* callbackArg, const char * szText) ACE_Message_Block* mb = new ACE_Message_Block(sz); mb->copy(szText, sz); - if (socket->putq(mb, const_cast(&ACE_Time_Value::zero)) == -1) + ACE_Time_Value tv = ACE_Time_Value::zero; + if (socket->putq(mb, &tv) == -1) { sLog->outDebug(LOG_FILTER_REMOTECOMMAND, "Failed to enqueue message, queue is full or closed. Error is %s", ACE_OS::strerror(errno)); mb->release(); -- cgit v1.2.3 From 943c866da97871d382db2f52e965ed38558695b0 Mon Sep 17 00:00:00 2001 From: Vincent_Michael Date: Thu, 7 Feb 2013 00:02:22 +0100 Subject: Core: Whitespace cleanup --- src/server/game/Accounts/RBAC.h | 38 +++++++++++----------- src/server/game/Globals/ObjectMgr.cpp | 14 ++++---- src/server/game/Globals/ObjectMgr.h | 10 +++--- src/server/game/Movement/Spline/MoveSplineInit.cpp | 2 +- src/server/game/World/World.cpp | 2 +- src/server/scripts/Commands/cs_rbac.cpp | 6 ++-- .../EasternKingdoms/BaradinHold/boss_alizabal.cpp | 6 ++-- .../EasternKingdoms/zone_western_plaguelands.cpp | 2 +- .../ChamberOfAspects/RubySanctum/boss_halion.cpp | 2 +- src/server/scripts/Northrend/zone_icecrown.cpp | 2 +- .../scripts/Outland/BlackTemple/boss_supremus.cpp | 2 +- .../Outland/TempestKeep/Eye/boss_kaelthas.cpp | 2 +- src/server/scripts/Spells/spell_paladin.cpp | 4 +-- src/server/shared/Logging/AppenderFile.cpp | 2 +- src/server/worldserver/worldserver.conf.dist | 2 +- 15 files changed, 48 insertions(+), 48 deletions(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 5420df29d17..d2c76b71801 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -161,10 +161,10 @@ class RBACData: public RBACObject * @name HasPermission * @brief Checks if certain action is allowed * - * Checks if certain action can be performed. + * Checks if certain action can be performed. * * @return grant or deny action - * + * * Example Usage: * @code * bool Player::CanJoinArena(Battleground* bg) @@ -175,7 +175,7 @@ class RBACData: public RBACObject */ bool HasPermission(uint32 permission) { return _globalPerms.test(permission); } - // Functions enabled to be used by command system + // Functions enabled to be used by command system /// Returns all the granted permissions (after computation) RBACPermissionContainer const& GetPermissions() const { return _globalPerms; } /// Returns all the granted permissions @@ -197,12 +197,12 @@ class RBACData: public RBACObject * No save to db action will be performed. * * Fails if group Id does not exists or group already present - * + * * @param groupId group to be added * @param realmId realm affected * * @return Success or failure (with reason) to add the group - * + * * Example Usage: * @code * // previously defined "RBACData* rbac" with proper initialization @@ -222,12 +222,12 @@ class RBACData: public RBACObject * "all realms (-1)" in addition to the realm specified * * Fails if group not present - * + * * @param groupId group to be removed * @param realmId realm affected * * @return Success or failure (with reason) to remove the group - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 groupId = 2; @@ -245,12 +245,12 @@ class RBACData: public RBACObject * No save to db action will be performed. * * Fails if role Id does not exists or role already granted or denied - * + * * @param roleId role to be granted * @param realmId realm affected * * @return Success or failure (with reason) to grant the role - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 roleId = 2; @@ -268,12 +268,12 @@ class RBACData: public RBACObject * No save to db action will be performed. * * Fails if role Id does not exists or role already granted or denied - * + * * @param roleId role to be denied * @param realmId realm affected * * @return Success or failure (with reason) to deny the role - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 roleId = 2; @@ -292,12 +292,12 @@ class RBACData: public RBACObject * "all realms (-1)" in addition to the realm specified * * Fails if role not present - * + * * @param roleId role to be removed * @param realmId realm affected * * @return Success or failure (with reason) to remove the role - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 roleId = 2; @@ -315,12 +315,12 @@ class RBACData: public RBACObject * No save to db action will be performed. * * Fails if permission Id does not exists or permission already granted or denied - * + * * @param permissionId permission to be granted * @param realmId realm affected * * @return Success or failure (with reason) to grant the permission - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 permissionId = 2; @@ -338,12 +338,12 @@ class RBACData: public RBACObject * No save to db action will be performed. * * Fails if permission Id does not exists or permission already granted or denied - * + * * @param permissionId permission to be denied * @param realmId realm affected * * @return Success or failure (with reason) to deny the permission - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 permissionId = 2; @@ -362,12 +362,12 @@ class RBACData: public RBACObject * "all realms (-1)" in addition to the realm specified * * Fails if permission not present - * + * * @param permissionId permission to be removed * @param realmId realm affected * * @return Success or failure (with reason) to remove the permission - * + * * Example Usage: * // previously defined "RBACData* rbac" with proper initialization * uint32 permissionId = 2; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 043afdf4687..8597b6098a9 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -292,18 +292,18 @@ void ObjectMgr::AddLocaleString(std::string const& s, LocaleConstant locale, Str void ObjectMgr::LoadGraveyardOrientations() { uint32 oldMSTime = getMSTime(); - + _graveyardOrientations.clear(); - + QueryResult result = WorldDatabase.Query("SELECT id, orientation FROM graveyard_orientation"); - + if (!result) return; - + do { Field* fields = result->Fetch(); - + uint32 id = fields[0].GetUInt32(); if (!sWorldSafeLocsStore.LookupEntry(id)) { @@ -311,9 +311,9 @@ void ObjectMgr::LoadGraveyardOrientations() continue; } _graveyardOrientations[id] = fields[1].GetFloat(); - + } while (result->NextRow()); - + sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %lu graveyard orientations in %u ms", (unsigned long)_graveyardOrientations.size(), GetMSTimeDiffToNow(oldMSTime)); } diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 563b218c55c..8c14f902c1f 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1118,16 +1118,16 @@ class ObjectMgr return &iter->second; } - + float const* GetGraveyardOrientation(uint32 id) const { GraveyardOrientationContainer::const_iterator iter = _graveyardOrientations.find(id); if (iter != _graveyardOrientations.end()) return &iter->second; - + return NULL; } - + void AddVendorItem(uint32 entry, uint32 item, int32 maxcount, uint32 incrtime, uint32 extendedCost, uint8 type, bool persist = true); // for event bool RemoveVendorItem(uint32 entry, uint32 item, uint8 type, bool persist = true); // for event bool IsVendorItemValid(uint32 vendor_entry, uint32 id, int32 maxcount, uint32 ptime, uint32 ExtendedCost, uint8 type, Player* player = NULL, std::set* skip_vendors = NULL, uint32 ORnpcflag = 0) const; @@ -1163,7 +1163,7 @@ class ObjectMgr // for wintergrasp only GraveYardContainer GraveYardStore; - + static void AddLocaleString(std::string const& s, LocaleConstant locale, StringVector& data); static inline void GetLocaleString(const StringVector& data, int loc_idx, std::string& value) { @@ -1325,7 +1325,7 @@ class ObjectMgr CacheVendorItemContainer _cacheVendorItemStore; CacheTrainerSpellContainer _cacheTrainerSpellStore; - + GraveyardOrientationContainer _graveyardOrientations; std::set _difficultyEntries[MAX_DIFFICULTY - 1]; // already loaded difficulty 1 value in creatures, used in CheckCreatureTemplate diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp index f7d876d7aa3..249f25a6353 100644 --- a/src/server/game/Movement/Spline/MoveSplineInit.cpp +++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp @@ -118,7 +118,7 @@ namespace Movement PacketBuilder::WriteMonsterMove(move_spline, data); unit->SendMessageToSet(&data, true); - + return move_spline.Duration(); } diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index ef0c9b64475..4a1d1566af1 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1548,7 +1548,7 @@ void World::SetInitialWorldSettings() sObjectMgr->LoadGraveyardZones(); sLog->outInfo(LOG_FILTER_SERVER_LOADING, "Loading Graveyard Orientations..."); - sObjectMgr->LoadGraveyardOrientations(); + sObjectMgr->LoadGraveyardOrientations(); sLog->outInfo(LOG_FILTER_SERVER_LOADING, "Loading spell pet auras..."); sSpellMgr->LoadSpellPetAuras(); diff --git a/src/server/scripts/Commands/cs_rbac.cpp b/src/server/scripts/Commands/cs_rbac.cpp index fb21def4c02..092aabb0045 100644 --- a/src/server/scripts/Commands/cs_rbac.cpp +++ b/src/server/scripts/Commands/cs_rbac.cpp @@ -674,7 +674,7 @@ public: handler->SetSentErrorMessage(true); return false; } - + handler->PSendSysMessage("%s", handler->GetTrinityString(LANG_RBAC_LIST_GROUPS_HEADER)); handler->PSendSysMessage(LANG_RBAC_LIST_ELEMENT, group->GetId(), group->GetName().c_str()); handler->PSendSysMessage("%s", handler->GetTrinityString(LANG_RBAC_LIST_ROLES_HEADER)); @@ -719,7 +719,7 @@ public: handler->SetSentErrorMessage(true); return false; } - + handler->PSendSysMessage("%s", handler->GetTrinityString(LANG_RBAC_LIST_ROLES_HEADER)); handler->PSendSysMessage(LANG_RBAC_LIST_ELEMENT, role->GetId(), role->GetName().c_str()); handler->PSendSysMessage("%s", handler->GetTrinityString(LANG_RBAC_LIST_PERMISSIONS_HEADER)); @@ -765,7 +765,7 @@ public: handler->SetSentErrorMessage(true); return false; } - + handler->PSendSysMessage("%s", handler->GetTrinityString(LANG_RBAC_LIST_PERMISSIONS_HEADER)); handler->PSendSysMessage(LANG_RBAC_LIST_ELEMENT, permission->GetId(), permission->GetName().c_str()); } diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp index fe7f3f47161..3c6369003ec 100644 --- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp +++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2008-2013 TrinityCore * * This program is free software; you can redistribute it and/or modify it @@ -79,7 +79,7 @@ class boss_alizabal : public CreatureScript { public: boss_alizabal() : CreatureScript("boss_alizabal") { } - + struct boss_alizabalAI : public BossAI { boss_alizabalAI(Creature* creature) : BossAI(creature, DATA_ALIZABAL) @@ -253,7 +253,7 @@ class boss_alizabal : public CreatureScript break; } } - + DoMeleeAttackIfReady(); } }; diff --git a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp index 6fa3401bcc9..c8bc82be245 100644 --- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp @@ -256,7 +256,7 @@ public: struct npc_andorhal_towerAI : public ScriptedAI { - npc_andorhal_towerAI(Creature* creature) : ScriptedAI(creature) + npc_andorhal_towerAI(Creature* creature) : ScriptedAI(creature) { SetCombatMovement(false); } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index a9bf8c6ea8f..d84091e3cc7 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -976,7 +976,7 @@ class npc_meteor_strike_initial : public CreatureScript { npc_meteor_strike_initialAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) - { + { SetCombatMovement(false); } diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index 47fb7a86d32..70210844394 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -266,7 +266,7 @@ public: struct npc_guardian_pavilionAI : public ScriptedAI { - npc_guardian_pavilionAI(Creature* creature) : ScriptedAI(creature) + npc_guardian_pavilionAI(Creature* creature) : ScriptedAI(creature) { SetCombatMovement(false); } diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index 90b265e2a65..2fac33760e2 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -274,7 +274,7 @@ public: struct npc_volcanoAI : public ScriptedAI { - npc_volcanoAI(Creature* creature) : ScriptedAI(creature) + npc_volcanoAI(Creature* creature) : ScriptedAI(creature) { SetCombatMovement(false); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index 8d66e0824b9..c4111f59d65 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -1406,7 +1406,7 @@ class mob_kael_flamestrike : public CreatureScript } struct mob_kael_flamestrikeAI : public ScriptedAI { - mob_kael_flamestrikeAI(Creature* creature) : ScriptedAI(creature) + mob_kael_flamestrikeAI(Creature* creature) : ScriptedAI(creature) { SetCombatMovement(false); } diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index a581a6ee351..ac9b861f584 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -56,7 +56,7 @@ enum PaladinSpells SPELL_PALADIN_DIVINE_SACRIFICE = 64205, SPELL_PALADIN_DIVINE_PURPOSE_PROC = 90174, - + SPELL_PALADIN_GLYPH_OF_SALVATION = 63225, SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT = 31790, @@ -874,7 +874,7 @@ class spell_pal_templar_s_verdict : public SpellScriptLoader } void ChangeDamage(SpellEffIndex /*effIndex*/) - { + { Unit* caster = GetCaster(); int32 damage = GetHitDamage(); diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index e29459299f7..93d53bcc30d 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -48,7 +48,7 @@ void AppenderFile::_write(LogMessage const& message) snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str()); logfile = OpenFile(namebuf, mode, backup || exceedMaxSize); } - else if (exceedMaxSize) + else if (exceedMaxSize) logfile = OpenFile(filename, "w", true); if (!logfile) diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 0fc26eae9cd..35d37d97f79 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2674,7 +2674,7 @@ UI.ShowQuestLevelsInDialogs = 0 # Maximum value is 4294967295 (4 gb). Leave blank for no limit. # NOTE: Does not work with dynamic filenames. # Example: 536870912 (512 mb) -# +# Appender.Console=1,3,0 Appender.Server=2,2,0,Server.log,w -- cgit v1.2.3