]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Rework] Logger: Fix logic of initialisation
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 10 Feb 2020 20:56:55 +0000 (20:56 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 10 Feb 2020 21:12:13 +0000 (21:12 +0000)
src/libutil/logger.c
src/libutil/logger_console.c

index 4fed80d3e990c2bc8eaae2a8d0744174dcb92a25..568c0b8e9c92f5a4fc2280bbd556ec94c3a22a70 100644 (file)
@@ -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;
index 05bb67f215b21bb5b1d7fda7be5e76b2f045fb3b..1bc91007a27430a9e3126022fdb6e8b94c58cfb7 100644 (file)
@@ -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;