]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
master: Fixes to core dump log message writing.
authorTimo Sirainen <tss@iki.fi>
Fri, 13 Mar 2009 19:19:13 +0000 (15:19 -0400)
committerTimo Sirainen <tss@iki.fi>
Fri, 13 Mar 2009 19:19:13 +0000 (15:19 -0400)
--HG--
branch : HEAD

src/master/child-process.c

index 2202a9f6a7be9d68e05712649c34a33dac5801f0..642ed3d8a1d8d2d0a89cf7e381bdff8f3b4295d7 100644 (file)
@@ -142,19 +142,33 @@ log_coredump(string_t *str, enum process_type process_type, int status)
                return;
 
        /* let's try to figure out why we didn't get a core dump */
-       if (process_type == PROCESS_TYPE_LOGIN)
+       if (core_dumps_disabled) {
+               str_printfa(str, " (core dumps disabled)");
+               return;
+       }
+
+       switch (process_type) {
+       case PROCESS_TYPE_LOGIN:
+#ifdef HAVE_PR_SET_DUMPABLE
                str_append(str, " (core not dumped - add -D to login_executable)");
-       else if (process_type != PROCESS_TYPE_IMAP &&
-                process_type != PROCESS_TYPE_POP3)
-               str_append(str, " (core not dumped)");
+               return;
+#else
+               break;
+#endif
+       case PROCESS_TYPE_IMAP:
+       case PROCESS_TYPE_POP3:
 #ifndef HAVE_PR_SET_DUMPABLE
-       else if (!settings_root->defaults->mail_drop_priv_before_exec)
-               str_append(str, " (core not dumped - set mail_drop_priv_before_exec=yes)");
+               if (!settings_root->defaults->mail_drop_priv_before_exec) {
+                       str_append(str, " (core not dumped - set mail_drop_priv_before_exec=yes)");
+                       return;
+               }
 #endif
-       else if (core_dumps_disabled)
-               str_printfa(str, " (core dumps disabled)");
-       else
                str_append(str, " (core not dumped - is home dir set?)");
+               return;
+       default:
+               break;
+       }
+       str_append(str, " (core not dumped)");
 #endif
 }