|
|
1.1 ! root 1: # include <stdio.h> ! 2: # include "dlvrmail.h" ! 3: # ifdef LOG ! 4: # include <log.h> ! 5: # endif LOG ! 6: ! 7: static char SccsId[] = "@(#)err.c 1.5 10/21/80"; ! 8: ! 9: /* ! 10: ** SYSERR -- Print error message. ! 11: ** ! 12: ** Prints an error message via printf to the diagnostic ! 13: ** output. If LOG is defined, it logs it also. ! 14: ** ! 15: ** Parameters: ! 16: ** f -- the format string ! 17: ** a, b, c, d, e -- parameters ! 18: ** ! 19: ** Returns: ! 20: ** -1 always ! 21: ** ! 22: ** Side Effects: ! 23: ** increments Errors. ! 24: ** sets ExitStat. ! 25: */ ! 26: ! 27: /*VARARGS1*/ ! 28: syserr(fmt, a, b, c, d, e) ! 29: char *fmt; ! 30: { ! 31: extern int errno; ! 32: static char errbuf[MAXLINE+1]; ! 33: register char *p; ! 34: extern char *sys_errlist[]; ! 35: extern int sys_nerr; ! 36: ! 37: sprintf(errbuf, fmt, a, b, c, d, e); ! 38: if (errno != 0) ! 39: { ! 40: p = &errbuf[strlen(errbuf)]; ! 41: if (errno < sys_nerr && errno > 0) ! 42: sprintf(p, ": %s", sys_errlist[errno]); ! 43: else ! 44: sprintf(p, ": error %d", errno); ! 45: } ! 46: printf("delivermail: %s\n", errbuf); ! 47: Errors++; ! 48: ! 49: /* determine exit status if not already set */ ! 50: if (ExitStat == EX_OK) ! 51: { ! 52: if (errno == 0) ! 53: ExitStat = EX_SOFTWARE; ! 54: else ! 55: ExitStat = EX_OSERR; ! 56: } ! 57: ! 58: # ifdef LOG ! 59: logmsg(LOG_ERR, "%s->%s: %s", From.q_paddr, To, errbuf); ! 60: # endif LOG ! 61: errno = 0; ! 62: return (-1); ! 63: } ! 64: /* ! 65: ** USRERR -- Signal user error. ! 66: ** ! 67: ** This is much like syserr except it is for user errors. ! 68: ** ! 69: ** Parameters: ! 70: ** fmt, a, b, c, d -- printf strings ! 71: ** ! 72: ** Returns: ! 73: ** -1 ! 74: ** ! 75: ** Side Effects: ! 76: ** increments Errors. ! 77: */ ! 78: ! 79: /*VARARGS1*/ ! 80: usrerr(fmt, a, b, c, d, e) ! 81: char *fmt; ! 82: { ! 83: extern char SuprErrs; ! 84: ! 85: if (SuprErrs) ! 86: return; ! 87: ! 88: Errors++; ! 89: if (To != NULL) ! 90: printf("%s... ", To); ! 91: printf(fmt, a, b, c, d, e); ! 92: printf("\n"); ! 93: return (-1); ! 94: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.