diff options
author | peter <peter@FreeBSD.org> | 2008-08-28 02:25:51 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2008-08-28 02:25:51 +0000 |
commit | ea50d71feb02a78d4d5fa746a26ca7ddc6e8cb19 (patch) | |
tree | daf40952cf309641cc6c7d987989fd2abce2d758 /contrib/sendmail/src/sysexits.c | |
parent | a2b986fa722f9860a6c56bb5cc724b7e2937d1b7 (diff) | |
download | FreeBSD-src-ea50d71feb02a78d4d5fa746a26ca7ddc6e8cb19.zip FreeBSD-src-ea50d71feb02a78d4d5fa746a26ca7ddc6e8cb19.tar.gz |
Stage 1 of sendmail dist tree flattening. contrib/sendmail/contrib
prevents doing this in one pass.
Diffstat (limited to 'contrib/sendmail/src/sysexits.c')
-rw-r--r-- | contrib/sendmail/src/sysexits.c | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/contrib/sendmail/src/sysexits.c b/contrib/sendmail/src/sysexits.c deleted file mode 100644 index 990ffe3..0000000 --- a/contrib/sendmail/src/sysexits.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers. - * All rights reserved. - * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. - * Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * By using this file, you agree to the terms and conditions set - * forth in the LICENSE file which can be found at the top level of - * the sendmail distribution. - * - */ - -#include <sendmail.h> - -SM_RCSID("@(#)$Id: sysexits.c,v 8.34 2002/09/09 02:43:00 gshapiro Exp $") - -/* -** DSNTOEXITSTAT -- convert DSN-style error code to EX_ style. -** -** Parameters: -** dsncode -- the text of the DSN-style code. -** -** Returns: -** The corresponding exit status. -*/ - -int -dsntoexitstat(dsncode) - char *dsncode; -{ - int code2, code3; - - /* first the easy cases.... */ - if (*dsncode == '2') - return EX_OK; - if (*dsncode == '4') - return EX_TEMPFAIL; - - /* reject other illegal values */ - if (*dsncode != '5') - return EX_CONFIG; - - /* now decode the other two field parts */ - if (*++dsncode == '.') - dsncode++; - code2 = atoi(dsncode); - while (*dsncode != '\0' && *dsncode != '.') - dsncode++; - if (*dsncode != '\0') - dsncode++; - code3 = atoi(dsncode); - - /* and do a nested switch to work them out */ - switch (code2) - { - case 0: /* Other or Undefined status */ - return EX_UNAVAILABLE; - - case 1: /* Address Status */ - switch (code3) - { - case 0: /* Other Address Status */ - return EX_DATAERR; - - case 1: /* Bad destination mailbox address */ - case 6: /* Mailbox has moved, No forwarding address */ - return EX_NOUSER; - - case 2: /* Bad destination system address */ - case 8: /* Bad senders system address */ - return EX_NOHOST; - - case 3: /* Bad destination mailbox address syntax */ - case 7: /* Bad senders mailbox address syntax */ - return EX_USAGE; - - case 4: /* Destination mailbox address ambiguous */ - return EX_UNAVAILABLE; - - case 5: /* Destination address valid */ - /* According to RFC1893, this can't happen */ - return EX_CONFIG; - } - break; - - case 2: /* Mailbox Status */ - switch (code3) - { - case 0: /* Other or Undefined mailbox status */ - case 1: /* Mailbox disabled, not accepting messages */ - case 2: /* Mailbox full */ - case 4: /* Mailing list expansion problem */ - return EX_UNAVAILABLE; - - case 3: /* Message length exceeds administrative lim */ - return EX_DATAERR; - } - break; - - case 3: /* System Status */ - return EX_OSERR; - - case 4: /* Network and Routing Status */ - switch (code3) - { - case 0: /* Other or undefined network or routing stat */ - return EX_IOERR; - - case 1: /* No answer from host */ - case 3: /* Routing server failure */ - case 5: /* Network congestion */ - return EX_TEMPFAIL; - - case 2: /* Bad connection */ - return EX_IOERR; - - case 4: /* Unable to route */ - return EX_PROTOCOL; - - case 6: /* Routing loop detected */ - return EX_CONFIG; - - case 7: /* Delivery time expired */ - return EX_UNAVAILABLE; - } - break; - - case 5: /* Protocol Status */ - return EX_PROTOCOL; - - case 6: /* Message Content or Media Status */ - return EX_UNAVAILABLE; - - case 7: /* Security Status */ - return EX_DATAERR; - } - return EX_UNAVAILABLE; -} -/* -** EXITSTAT -- convert EX_ value to error text. -** -** Parameters: -** excode -- rstatus which might consists of an EX_* value. -** -** Returns: -** The corresponding error text or the original string. -*/ - -char * -exitstat(excode) - char *excode; -{ - char *c; - int i; - char *exitmsg; - - if (excode == NULL || *excode == '\0') - return excode; - i = (int) strtol(excode, &c, 10); - if (*c != '\0') - return excode; - exitmsg = sm_sysexitmsg(i); - if (exitmsg != NULL) - return exitmsg; - return excode; -} |