diff options
| author | glass <glass@NetBSD.org> | 1994-01-31 02:38:08 +0000 |
|---|---|---|
| committer | glass <glass@NetBSD.org> | 1994-01-31 02:38:08 +0000 |
| commit | f1cb96b2ca44e4aa70b57abc58ffc615af6b0583 (patch) | |
| tree | a6ebcdd285462a08f65dcae64a1b57567dd129ea /usr.sbin/sendmail/src/err.c | |
| parent | f12eaca826e8750987e7055165cd38313cb63b46 (diff) | |
upgrade to version 8.6.5
Diffstat (limited to 'usr.sbin/sendmail/src/err.c')
| -rw-r--r-- | usr.sbin/sendmail/src/err.c | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/usr.sbin/sendmail/src/err.c b/usr.sbin/sendmail/src/err.c index 64ae3eb6660..60e78e3b7c5 100644 --- a/usr.sbin/sendmail/src/err.c +++ b/usr.sbin/sendmail/src/err.c @@ -33,7 +33,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)err.c 8.14 (Berkeley) 10/29/93"; +static char sccsid[] = "@(#)err.c 8.19 (Berkeley) 1/8/94"; #endif /* not lint */ # include "sendmail.h" @@ -159,8 +159,6 @@ usrerr(fmt, va_alist) #endif { VA_LOCAL_DECL - extern char SuprErrs; - extern int errno; if (SuprErrs) return; @@ -287,13 +285,13 @@ putoutmsg(msg, holdmsg) msg[0] = '5'; (void) fflush(stdout); - if (OpMode == MD_SMTP) + if (OpMode == MD_SMTP || OpMode == MD_DAEMON) fprintf(OutChannel, "%s\r\n", msg); else fprintf(OutChannel, "%s\n", &msg[4]); if (TrafficLogFile != NULL) fprintf(TrafficLogFile, "%05d >>> %s\n", getpid(), - OpMode == MD_SMTP ? msg : &msg[4]); + (OpMode == MD_SMTP || OpMode == MD_DAEMON) ? msg : &msg[4]); if (msg[3] == ' ') (void) fflush(OutChannel); if (!ferror(OutChannel)) @@ -449,6 +447,7 @@ const char * errstring(errno) int errno; { + char *dnsmsg; static char buf[MAXLINE]; # ifndef ERRLIST_PREDEFINED extern char *sys_errlist[]; @@ -458,16 +457,16 @@ errstring(errno) extern char *SmtpPhase; # endif /* SMTP */ -# ifdef DAEMON -# ifdef ETIMEDOUT /* ** Handle special network error codes. ** ** These are 4.2/4.3bsd specific; they should be in daemon.c. */ + dnsmsg = NULL; switch (errno) { +# if defined(DAEMON) && defined(ETIMEDOUT) case ETIMEDOUT: case ECONNRESET: (void) strcpy(buf, sys_errlist[errno]); @@ -494,26 +493,45 @@ errstring(errno) break; (void) sprintf(buf, "Connection refused by %s", CurHostName); return (buf); +# endif case EOPENTIMEOUT: return "Timeout on file open"; # ifdef NAMED_BIND case HOST_NOT_FOUND + E_DNSBASE: - return ("Name server: host not found"); + dnsmsg = "host not found"; + break; case TRY_AGAIN + E_DNSBASE: - return ("Name server: host name lookup failure"); + dnsmsg = "host name lookup failure"; + break; case NO_RECOVERY + E_DNSBASE: - return ("Name server: non-recoverable error"); + dnsmsg = "non-recoverable error"; + break; case NO_DATA + E_DNSBASE: - return ("Name server: no data known for name"); + dnsmsg = "no data known"; + break; # endif + + case EPERM: + /* SunOS gives "Not owner" -- this is the POSIX message */ + return "Operation not permitted"; + } + + if (dnsmsg != NULL) + { + (void) strcpy(buf, "Name server: "); + if (CurHostName != NULL) + { + (void) strcat(buf, CurHostName); + (void) strcat(buf, ": "); + } + (void) strcat(buf, dnsmsg); + return buf; } -# endif -# endif if (errno > 0 && errno < sys_nerr) return (sys_errlist[errno]); |
