diff options
Diffstat (limited to 'usr.sbin/sendmail/src/err.c')
-rw-r--r-- | usr.sbin/sendmail/src/err.c | 57 |
1 files changed, 47 insertions, 10 deletions
diff --git a/usr.sbin/sendmail/src/err.c b/usr.sbin/sendmail/src/err.c index c231ef119d46b..199fdd87ed87c 100644 --- a/usr.sbin/sendmail/src/err.c +++ b/usr.sbin/sendmail/src/err.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1983, 1995 Eric P. Allman + * Copyright (c) 1983, 1995, 1996 Eric P. Allman * Copyright (c) 1988, 1993 * The Regents of the University of California. All rights reserved. * @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)err.c 8.42.1.2 (Berkeley) 9/16/96"; +static char sccsid[] = "@(#)err.c 8.50 (Berkeley) 9/20/96"; #endif /* not lint */ # include "sendmail.h" @@ -145,10 +145,30 @@ syserr(fmt, va_alist) CurEnv->e_id == NULL ? "NOQUEUE" : CurEnv->e_id, uname, &MsgBuf[4]); # endif /* LOG */ - if (olderrno == EMFILE) + switch (olderrno) { + case EBADF: + case ENFILE: + case EMFILE: + case ENOTTY: +#ifdef EFBIG + case EFBIG: +#endif +#ifdef ESPIPE + case ESPIPE: +#endif +#ifdef EPIPE + case EPIPE: +#endif +#ifdef ENOBUFS + case ENOBUFS: +#endif +#ifdef ESTALE + case ESTALE: +#endif printopenfds(TRUE); mci_dump_all(TRUE); + break; } if (panic) { @@ -384,6 +404,11 @@ putoutmsg(msg, holdmsg, heldmsg) if (!heldmsg && CurEnv->e_xfp != NULL && strchr("45", msg[0]) != NULL) fprintf(CurEnv->e_xfp, "%s\n", msg); +#ifdef LOG + if (LogLevel >= 15 && (OpMode == MD_SMTP || OpMode == MD_DAEMON)) + syslog(LOG_INFO, "--> %s%s", msg, holdmsg ? " (held)" : ""); +#endif + if (msgcode == '8') msg[0] = '0'; @@ -624,17 +649,29 @@ errstring(errnum) case ECONNRESET: bp = buf; snprintf(bp, SPACELEFT(buf, bp), "%s", sys_errlist[errnum]); - bp += strlen(buf); + bp += strlen(bp); + if (CurHostName != NULL) + { + if (errnum == ETIMEDOUT) + { + snprintf(bp, SPACELEFT(buf, bp), " with "); + bp += strlen(bp); + } + else + { + bp = buf; + snprintf(bp, SPACELEFT(buf, bp), + "Connection reset by "); + bp += strlen(bp); + } + snprintf(bp, SPACELEFT(buf, bp), "%s", + shortenstring(CurHostName, 203)); + bp += strlen(buf); + } if (SmtpPhase != NULL) { snprintf(bp, SPACELEFT(buf, bp), " during %s", SmtpPhase); - bp += strlen(bp); - } - if (CurHostName != NULL) - { - snprintf(bp, SPACELEFT(buf, bp), " with %s", - shortenstring(CurHostName, 203)); } return (buf); |