]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Fix daemonisation...
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 14 Feb 2020 17:33:28 +0000 (17:33 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 14 Feb 2020 17:33:28 +0000 (17:33 +0000)
src/libserver/logger/logger.c
src/rspamd.c

index 4e48eae4e750b99c2aa6132bde9f4d228ebeb2ca..789a41af269b866e826133e271f3b51c795ddbbf 100644 (file)
@@ -182,8 +182,6 @@ rspamd_log_open_specific (rspamd_mempool_t *pool,
        rspamd_logger_t *logger;
        GError *err = NULL;
 
-       g_assert (emergency_logger != NULL);
-
        if (pool) {
                logger = rspamd_mempool_alloc0 (pool, sizeof (rspamd_logger_t));
                logger->mtx = rspamd_mempool_get_mutex (pool);
@@ -233,7 +231,7 @@ rspamd_log_open_specific (rspamd_mempool_t *pool,
 
        logger->ops.specific = logger->ops.init (logger, cfg, uid, gid, &err);
 
-       if (logger->ops.specific == NULL) {
+       if (emergency_logger && logger->ops.specific == NULL) {
                rspamd_common_log_function (emergency_logger, G_LOG_LEVEL_CRITICAL,
                                "logger", NULL, G_STRFUNC,
                                "cannot open specific logger: %e", err);
index 02a903479afce79afcd69df29e918b59bd3cc082..3a889ec693787d033391e4624249b01e14785b7a 100644 (file)
@@ -1335,9 +1335,14 @@ main (gint argc, gchar **argv, gchar **env)
        msg_info_main ("libottery prf: %s", ottery_get_impl_name ());
 
        /* Daemonize */
-       if (!no_fork && daemon (0, 0) == -1) {
-               rspamd_fprintf (stderr, "Cannot daemonize\n");
-               exit (-errno);
+       if (!no_fork) {
+               if (daemon (0, 0) == -1) {
+                       msg_err_main ("cannot daemonize: %s", strerror (errno));
+                       exit (-errno);
+               }
+
+               /* Close emergency logger */
+               rspamd_log_close (rspamd_log_emergency_logger ());
        }
 
        /* Write info */