--- Begin Message ---
- To: beck_(_at_)_obtuse_(_dot_)_com, info_(_at_)_obtuse_(_dot_)_com
- Subject: Patch for smtpd 2.0
- From: Swa Frantzen <Swa_(_dot_)_Frantzen_(_at_)_netvision_(_dot_)_be>
- Date: Thu, 22 Jun 2000 21:50:31 +0200
- Cc: swa_(_dot_)_frantzen_(_at_)_ubizen_(_dot_)_com
smtpd 2.0 has a bug:
When smtpd 2.0 gets a message with lots of intended targets
it may split the targets in blocks of maximum size MAXARGS minus a few
and if there is a nonexistent user in any but the last block
smtpd 2.0 will fail to even try to deliver the message to any user
(at least on systems where EX_NOUSER is defined)
I'm proposing patch at the end of this message wich works for me.
I do hope you incorporate this in the distribution.
SWA
# diff -c smtpfwdd.c smtpfwdd.c.org
*** smtpfwdd.c Thu Jun 22 22:29:29 2000
--- smtpfwdd.c.org Thu Jun 22 21:23:32 2000
***************
*** 679,693 ****
#endif
#ifdef EX_NOUSER
case EX_NOUSER:
! /*if multiple deliveries needed, we do not want to */
! /*expunge the file yet because some user didn't exist */
! if (victim == NULL) {
! syslog(LOG_INFO, "Sendmail exited indicating one or more local recipients did not exist (no retry)");
! fail_abort(f, fname);
! } else {
! syslog(LOG_INFO, "Sendmail exited indicating one or more local recipients did not exist (continuing with next portion)");
! break;
! }
#endif
case EX_CONFIG:
syslog(LOG_CRIT, "Sendmail configuration error!");
--- 679,686 ----
#endif
#ifdef EX_NOUSER
case EX_NOUSER:
! syslog(LOG_INFO, "Sendmail exited indicating one or more local recipients did not exist (no retry)");
! fail_abort(f, fname);
#endif
case EX_CONFIG:
syslog(LOG_CRIT, "Sendmail configuration error!");
--- End Message ---