upon mda failure, smtpd would assume tempfail and retry. this is at odds
authorgilles <gilles@openbsd.org>
Tue, 4 Sep 2018 13:04:42 +0000 (13:04 +0000)
committergilles <gilles@openbsd.org>
Tue, 4 Sep 2018 13:04:42 +0000 (13:04 +0000)
commiteb268927b2706e837d7a2e2831fb5d2a5f3b0ea2
treed2942ab181da76b87c381194f5e80eaefda081b3
parent222941dde912721000ba399f869a18b4672c44d8
upon mda failure, smtpd would assume tempfail and retry. this is at odds
with the other MTA which assume a permfail unless the exit status is one
of a specific set. make smtpd honour the same exit statuses as postfix.

note that all errors that occur before the user mda is executed (fork, pipe
and related) are still considered tempfail, only errors coming from the mda
itself are handled as permfail.

this commit is a temporary solution as i believe the SIGCHLD handler is way
more complex than it should be and we'll simplify it after 6.4 is out.

ok eric@
usr.sbin/smtpd/mda.c
usr.sbin/smtpd/smtpd.c
usr.sbin/smtpd/smtpd.h