in transaction
SCCS-vsn: usr.sbin/sendmail/src/srvrsmtp.c 8.4
-static char sccsid[] = "@(#)srvrsmtp.c 8.3 (Berkeley) %G% (with SMTP)";
+static char sccsid[] = "@(#)srvrsmtp.c 8.4 (Berkeley) %G% (with SMTP)";
-static char sccsid[] = "@(#)srvrsmtp.c 8.3 (Berkeley) %G% (without SMTP)";
+static char sccsid[] = "@(#)srvrsmtp.c 8.4 (Berkeley) %G% (without SMTP)";
#endif
#endif /* not lint */
#endif
#endif /* not lint */
QuickAbort = FALSE;
HoldErrs = FALSE;
LogUsrErrs = FALSE;
QuickAbort = FALSE;
HoldErrs = FALSE;
LogUsrErrs = FALSE;
- e->e_flags &= ~EF_VRFYONLY;
+ e->e_flags &= ~(EF_VRFYONLY|EF_GLOBALERRS);
/* setup for the read */
e->e_to = NULL;
/* setup for the read */
e->e_to = NULL;
message("421 %s Lost input channel from %s",
MyHostName, CurHostName);
#ifdef LOG
message("421 %s Lost input channel from %s",
MyHostName, CurHostName);
#ifdef LOG
+ if (LogLevel > (gotmail ? 1 : 19))
syslog(LOG_NOTICE, "lost input channel from %s",
CurHostName);
#endif
syslog(LOG_NOTICE, "lost input channel from %s",
CurHostName);
#endif
if (gotmail)
{
message("503 Sender already specified");
if (gotmail)
{
message("503 Sender already specified");
+ if (InChild)
+ finis();
/* collect the text of the message */
SmtpPhase = "collect";
/* collect the text of the message */
SmtpPhase = "collect";
collect(TRUE, doublequeue, e);
collect(TRUE, doublequeue, e);
- e->e_flags &= ~EF_FATALERRS;
if (Errors != 0)
goto abortmessage;
if (Errors != 0)
goto abortmessage;
/* send to all recipients */
sendall(e, Verbose ? SM_DELIVER : SM_QUEUE);
e->e_to = NULL;
/* send to all recipients */
sendall(e, Verbose ? SM_DELIVER : SM_QUEUE);
e->e_to = NULL;
/* save statistics */
markstats(e, (ADDRESS *) NULL);
/* save statistics */
markstats(e, (ADDRESS *) NULL);