From 03a195e7b35f75b5f0ef81a5dc1580f2962cd5ab Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 10 Feb 2020 20:56:55 +0000 Subject: [PATCH] [Rework] Logger: Fix logic of initialisation --- src/libutil/logger.c | 72 +++++++++++++++++++----------------- src/libutil/logger_console.c | 8 ++-- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/src/libutil/logger.c b/src/libutil/logger.c index 4fed80d3e..568c0b8e9 100644 --- a/src/libutil/logger.c +++ b/src/libutil/logger.c @@ -194,15 +194,24 @@ rspamd_log_open_specific (rspamd_mempool_t *pool, logger->pool = pool; - if (cfg->log_error_elts > 0 && pool) { - logger->errlog = rspamd_mempool_alloc0_shared (pool, - sizeof (*logger->errlog)); - logger->errlog->pool = pool; - logger->errlog->max_elts = cfg->log_error_elts; - logger->errlog->elt_len = cfg->log_error_elt_maxlen; - logger->errlog->elts = rspamd_mempool_alloc0_shared (pool, - sizeof (struct rspamd_logger_error_elt) * cfg->log_error_elts + - cfg->log_error_elt_maxlen * cfg->log_error_elts); + if (cfg) { + if (cfg->log_error_elts > 0 && pool) { + logger->errlog = rspamd_mempool_alloc0_shared (pool, + sizeof (*logger->errlog)); + logger->errlog->pool = pool; + logger->errlog->max_elts = cfg->log_error_elts; + logger->errlog->elt_len = cfg->log_error_elt_maxlen; + logger->errlog->elts = rspamd_mempool_alloc0_shared (pool, + sizeof (struct rspamd_logger_error_elt) * cfg->log_error_elts + + cfg->log_error_elt_maxlen * cfg->log_error_elts); + } + + logger->log_level = cfg->log_level; + logger->flags = cfg->log_flags; + + if (!(logger->flags & RSPAMD_LOG_FLAG_ENFORCED)) { + logger->log_level = cfg->log_level; + } } const struct rspamd_logger_funcs *funcs = NULL; @@ -235,34 +244,31 @@ rspamd_log_open_specific (rspamd_mempool_t *pool, logger->pid = getpid (); logger->process_type = ptype; - - if (!(logger->flags & RSPAMD_LOG_FLAG_ENFORCED)) { - logger->log_level = cfg->log_level; - } - - logger->flags = cfg->log_flags; + logger->enabled = TRUE; /* Set up conditional logging */ - if (cfg->debug_ip_map != NULL) { - /* Try to add it as map first of all */ - if (logger->debug_ip) { - rspamd_map_helper_destroy_radix (logger->debug_ip); - } + if (cfg) { + if (cfg->debug_ip_map != NULL) { + /* Try to add it as map first of all */ + if (logger->debug_ip) { + rspamd_map_helper_destroy_radix (logger->debug_ip); + } - logger->debug_ip = NULL; - rspamd_config_radix_from_ucl (cfg, - cfg->debug_ip_map, - "IP addresses for which debug logs are enabled", - &logger->debug_ip, - NULL, - NULL); - } + logger->debug_ip = NULL; + rspamd_config_radix_from_ucl (cfg, + cfg->debug_ip_map, + "IP addresses for which debug logs are enabled", + &logger->debug_ip, + NULL, + NULL); + } - if (cfg->log_encryption_key) { - logger->pk = rspamd_pubkey_ref (cfg->log_encryption_key); - logger->keypair = rspamd_keypair_new (RSPAMD_KEYPAIR_KEX, - RSPAMD_CRYPTOBOX_MODE_25519); - rspamd_pubkey_calculate_nm (logger->pk, logger->keypair); + if (cfg->log_encryption_key) { + logger->pk = rspamd_pubkey_ref (cfg->log_encryption_key); + logger->keypair = rspamd_keypair_new (RSPAMD_KEYPAIR_KEX, + RSPAMD_CRYPTOBOX_MODE_25519); + rspamd_pubkey_calculate_nm (logger->pk, logger->keypair); + } } default_logger = logger; diff --git a/src/libutil/logger_console.c b/src/libutil/logger_console.c index 05bb67f21..1bc91007a 100644 --- a/src/libutil/logger_console.c +++ b/src/libutil/logger_console.c @@ -85,10 +85,10 @@ rspamd_log_console_init (rspamd_logger_t *logger, struct rspamd_config *cfg, if (isatty (priv->fd)) { priv->log_tty = true; - - if (priv->log_color) { - priv->log_color = false; - } + } + else if (priv->log_color) { + /* Disable colors for not a tty */ + priv->log_color = false; } return priv; -- 2.39.5