forked from Green-Sky/tomato
Squashed 'external/toxcore/c-toxcore/' changes from 55752a2e2ef..f785959eace
f785959eace chore: add to_string functions for netprof enums a95b7957288 cleanup: Heap allocate network profile objects a3c80149edd feat: Implement Tox network profiler ac812871a2e feat: implement the last 2 missing network struct functions and make use of them 29d1043be0b test: friend request test now tests min/max message sizes 93aafd78c1f fix: friend requests with very long messages are no longer dropped 819aa2b2618 feat: Add option to disable DNS lookups in toxcore. 0ac23cee035 fix: windows use of REUSEADDR 7d2811d302d chore(ci): make bazel server shutdown faster 1dc399ba20d chore: Use vcpkg instead of conan in the MSVC build. 14d823165d9 chore: Migrate to conan 2. bdd17c16787 cleanup: Allocate logger using tox memory allocator. b396c061515 chore(deps): bump third_party/cmp from `2ac6bca` to `52bfcfa` 2e94da60d09 feat(net): add missing connect to network struct 41fb1839c7b chore: Add check to ensure version numbers agree. 934a8301113 chore: Release 0.2.20 3acef4bf044 fix: Add missing free in dht_get_nodes_response event. git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: f785959eacebc59590f756b133b52601c335a1d1
This commit is contained in:
@ -13,69 +13,41 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "attributes.h"
|
||||
#include "ccompat.h"
|
||||
#include "mem.h"
|
||||
|
||||
struct Logger {
|
||||
const Memory *mem;
|
||||
|
||||
logger_cb *callback;
|
||||
void *context;
|
||||
void *userdata;
|
||||
};
|
||||
|
||||
#ifndef NDEBUG
|
||||
static const char *logger_level_name(Logger_Level level)
|
||||
{
|
||||
switch (level) {
|
||||
case LOGGER_LEVEL_TRACE:
|
||||
return "TRACE";
|
||||
|
||||
case LOGGER_LEVEL_DEBUG:
|
||||
return "DEBUG";
|
||||
|
||||
case LOGGER_LEVEL_INFO:
|
||||
return "INFO";
|
||||
|
||||
case LOGGER_LEVEL_WARNING:
|
||||
return "WARNING";
|
||||
|
||||
case LOGGER_LEVEL_ERROR:
|
||||
return "ERROR";
|
||||
}
|
||||
|
||||
return "<unknown>";
|
||||
}
|
||||
#endif /* NDEBUG */
|
||||
|
||||
non_null(1, 3, 5, 6) nullable(7)
|
||||
static void logger_stderr_handler(void *context, Logger_Level level, const char *file, int line, const char *func,
|
||||
const char *message, void *userdata)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
// GL stands for "global logger".
|
||||
fprintf(stderr, "[GL] %s %s:%d(%s): %s\n", logger_level_name(level), file, line, func, message);
|
||||
fprintf(stderr, "Default stderr logger triggered; aborting program\n");
|
||||
abort();
|
||||
#endif /* NDEBUG */
|
||||
}
|
||||
|
||||
static const Logger logger_stderr = {
|
||||
logger_stderr_handler,
|
||||
nullptr,
|
||||
nullptr,
|
||||
};
|
||||
|
||||
/*
|
||||
* Public Functions
|
||||
*/
|
||||
|
||||
Logger *logger_new(void)
|
||||
Logger *logger_new(const Memory *mem)
|
||||
{
|
||||
return (Logger *)calloc(1, sizeof(Logger));
|
||||
Logger *log = (Logger *)mem_alloc(mem, sizeof(Logger));
|
||||
|
||||
if (log == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
log->mem = mem;
|
||||
|
||||
return log;
|
||||
}
|
||||
|
||||
void logger_kill(Logger *log)
|
||||
{
|
||||
free(log);
|
||||
if (log == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
mem_delete(log->mem, log);
|
||||
}
|
||||
|
||||
void logger_callback_log(Logger *log, logger_cb *function, void *context, void *userdata)
|
||||
@ -89,7 +61,7 @@ void logger_write(const Logger *log, Logger_Level level, const char *file, int l
|
||||
const char *format, ...)
|
||||
{
|
||||
if (log == nullptr) {
|
||||
log = &logger_stderr;
|
||||
return;
|
||||
}
|
||||
|
||||
if (log->callback == nullptr) {
|
||||
|
Reference in New Issue
Block a user