procmail
[Top] [All Lists]

Re: advisability of requeuing

1998-05-09 19:01:12
On Sat, 9 May 1998, David W. Tamkin wrote:
With Smail setting EXITCODE to anything nonzero is no different from setting
it to zero

Hmmm. I'm looking at the Smail source (3.2 #101; WWA looks like they're
running #88...tell them to upgrade ;-), and it looks like there is
actually an option to IGNORE the status returned by the child, and this is
enabled by DEFAULT. To wit from the source:

 *          ignore_status:  if set, ignore the exit status of the
 *              child process.  Otherwise complain if it is non-zero.
 *          ignore_write_errors:  if set, ignore write errors.  Otherwise
 *              complain about them.
 *          defer_child_errors:  generally, only child failures from the
 *              signal SIGTERM are retried.  If this is set, then retries
 *              are performed if the exit code is non-zero, or if the
 *              write failed on the pipe.
 *          status_to_sender: if set and the exit status of the child process
 *              is non-zero, then report back to the sender.  This interacts
 *              with the ignore_status flag which controls reporting of error
 *              status to the postmaster.

You've got a few (scary) options here: ignore_status, which is the
equivilent of what is happening with your system, along with
defer_child_errors, which appears to, by default, simply bounce on a child
error. "ignore_write_errors" is just plain dangerous; you could end up
with munged mail if this is set. And "status_to_sender" and
"ignore_status" could result in your mail being silently lost forever,
from what I can tell.

Why on earth would someone run brain-damaged software like this? Can
anyone actually using SMail in the real world comment on this?

-- 
-------------------.  emarshal at logic.net  .---------------------------------
Edward S. Marshall  `-----------------------'   http://www.logic.net/~emarshal/

      Spammers: Please email my blacklisting service at 
"spam(_at_)logic(_dot_)net".

<Prev in Thread] Current Thread [Next in Thread>