[Dovecot] deliver: handling of quota_full_tempfail and -e
Ulrich Zehl
ulrich-dovecot at topfen.net
Wed Apr 30 18:45:51 EEST 2008
Hi,
while testing out dovecot 1.1, I found that when you set
quota_full_tempfail = yes in dovecot.conf and use the deliver -e command
line flag, no deferral reason is printed, thus breaking my fancy
quota_exceeded_message.
This appears to be because of the if() block in lines 1003-1009 in
src/deliver/deliver.c, and should be easily fixable (if it is indeed a bug,
and not intended behavior).
However, I shied away from creating a patch because either there is a
mismatch between the documentation and deliver's actual behavior, or I
misunderstood the code (likely, since I'm not really a C programmer).
The lines in question (in src/deliver/deliver.c) read:
| 1003 if (error != MAIL_ERROR_NOSPACE ||
| 1004 getenv("QUOTA_FULL_TEMPFAIL") != NULL) {
Does this mean that the corresponding block gets executed whenever
quota_full_tempfail is set? If so, setting it transforms all errors into
TEMPFAILs, and not only those relating to quota/space issues. I think
dovecot-example.conf should at least mention this it's inteded; otherwise,
the code should be changed (I'm not completely sure what Timo's intensions
are, so I won't comment on possible solutions).
Regards,
Ulrich
PS: All line numbers are taken from rev 080dd4d2fd94, which was the most
recent at the time of writing.
More information about the dovecot
mailing list