Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8118:6665a641780c HEAD
deliver: If we're dying because we can't write to log file, write error to stderr.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 29 Aug 2008 09:58:54 +0300 |
parents | 079ed76a987d |
children | c96d9af856d1 |
files | src/deliver/deliver.c |
diffstat | 1 files changed, 14 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/deliver/deliver.c Fri Aug 29 09:43:18 2008 +0300 +++ b/src/deliver/deliver.c Fri Aug 29 09:58:54 2008 +0300 @@ -639,17 +639,27 @@ static void failure_exit_callback(int *status) { - /* we want all our exit codes to be sysexits.h compatible */ + /* we want all our exit codes to be sysexits.h compatible. + if we failed because of a logging related error, we most likely + aren't writing to stderr, so try writing there to give some kind of + a clue what's wrong. FATAL_LOGOPEN failure already wrote to + stderr, so don't duplicate it. */ switch (*status) { + case FATAL_LOGWRITE: + fputs("Failed to write to log file", stderr); + break; + case FATAL_LOGERROR: + fputs("Internal logging error", stderr); + break; case FATAL_LOGOPEN: - case FATAL_LOGWRITE: - case FATAL_LOGERROR: case FATAL_OUTOFMEM: case FATAL_EXEC: case FATAL_DEFAULT: - *status = EX_TEMPFAIL; break; + default: + return; } + *status = EX_TEMPFAIL; } static void open_logfile(const char *username)