[Download]: Log Mongoose stuff properly (#879)

This commit is contained in:
Edo 2023-03-28 19:13:47 +01:00 committed by GitHub
parent c45fd2d5e6
commit 6224728d4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 4 deletions

View File

@ -26,6 +26,8 @@ namespace Components
volatile bool Download::Terminate;
bool Download::ServerRunning;
std::string Download::MongooseLogBuffer;
#pragma region Client
void Download::InitiateMapDownload(const std::string& map, bool needPassword)
@ -416,6 +418,19 @@ namespace Components
#pragma region Server
void Download::LogFn(char c, [[maybe_unused]] void* param)
{
// Truncate & print if buffer is 1024 characters in length or otherwise only print when we reached a 'new line'
if (!std::isprint(static_cast<unsigned char>(c)) || MongooseLogBuffer.size() == 1024)
{
Logger::Print(Game::CON_CHANNEL_NETWORK, "{}\n", MongooseLogBuffer);
MongooseLogBuffer.clear();
return;
}
MongooseLogBuffer.push_back(c);
}
static std::string InfoHandler()
{
const auto status = ServerInfo::GetInfo();
@ -462,7 +477,7 @@ namespace Components
}
info["players"] = players;
return {nlohmann::json(info).dump()};
return nlohmann::json(info).dump();
}
static std::string ListHandler()
@ -508,7 +523,7 @@ namespace Components
jsonList = fileList;
}
return {jsonList.dump()};
return jsonList.dump();
}
static std::string MapHandler()
@ -552,7 +567,7 @@ namespace Components
jsonList = fileList;
}
return {jsonList.dump()};
return jsonList.dump();
}
static void FileHandler(mg_connection* c, const mg_http_message* hm)
@ -668,6 +683,13 @@ namespace Components
{
if (!Flags::HasFlag("disable-mongoose"))
{
#ifdef _DEBUG
mg_log_set(MG_LL_INFO);
#else
mg_log_set(MG_LL_ERROR);
#endif
mg_log_set_fn(LogFn, nullptr);
mg_mgr_init(&Mgr);
Network::OnStart([]

View File

@ -91,10 +91,14 @@ namespace Components
static volatile bool Terminate;
static bool ServerRunning;
static std::string MongooseLogBuffer;
static void DownloadProgress(FileDownload* fDownload, std::size_t bytes);
static void ModDownloader(ClientDownload* download);
static bool ParseModList(ClientDownload* download, const std::string& list);
static bool DownloadFile(ClientDownload* download, unsigned int index);
static void LogFn(char c, void* param);
};
}

View File

@ -28,7 +28,12 @@ namespace Components
void Logger::MessagePrint(const int channel, const std::string& msg)
{
if (Flags::HasFlag("stdout") || Loader::IsPerformingUnitTests())
static const auto shouldPrint = []() -> bool
{
return Flags::HasFlag("stdout") || Loader::IsPerformingUnitTests();
}();
if (shouldPrint)
{
std::printf("%s", msg.data());
std::fflush(stdout);