1/* $OpenLDAP$ */ 2/* This work is part of OpenLDAP Software <http://www.openldap.org/>. 3 * 4 * Copyright 1998-2011 The OpenLDAP Foundation. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted only as authorized by the OpenLDAP 9 * Public License. 10 * 11 * A copy of this license is available in file LICENSE in the 12 * top-level directory of the distribution or, alternatively, at 13 * <http://www.OpenLDAP.org/license.html>. 14 */ 15/* Portions Copyright (c) 1987 Regents of the University of California. 16 * All rights reserved. 17 * 18 * Redistribution and use in source and binary forms are permitted 19 * provided that the above copyright notice and this paragraph are 20 * duplicated in all such forms and that any documentation, 21 * advertising materials, and other materials related to such 22 * distribution and use acknowledge that the software was developed 23 * by the University of California, Berkeley. The name of the 24 * University may not be used to endorse or promote products derived 25 * from this software without specific prior written permission. 26 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 27 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 28 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 29 * 30 * @(#)sysexits.h 4.5 (Berkeley) 7/6/88 31 */ 32 33/* 34** SYSEXITS.H -- Exit status codes for system programs. 35** 36** This include file attempts to categorize possible error 37** exit statuses for system programs, notably delivermail 38** and the Berkeley network. 39** 40** Error numbers begin at EX__BASE to reduce the possibility of 41** clashing with other exit statuses that random programs may 42** already return. The meaning of the codes is approximately 43** as follows: 44** 45** EX_USAGE -- The command was used incorrectly, e.g., with 46** the wrong number of arguments, a bad flag, a bad 47** syntax in a parameter, or whatever. 48** EX_DATAERR -- The input data was incorrect in some way. 49** This should only be used for user's data & not 50** system files. 51** EX_NOINPUT -- An input file (not a system file) did not 52** exist or was not readable. This could also include 53** errors like "No message" to a mailer (if it cared 54** to catch it). 55** EX_NOUSER -- The user specified did not exist. This might 56** be used for mail addresses or remote logins. 57** EX_NOHOST -- The host specified did not exist. This is used 58** in mail addresses or network requests. 59** EX_UNAVAILABLE -- A service is unavailable. This can occur 60** if a support program or file does not exist. This 61** can also be used as a catchall message when something 62** you wanted to do doesn't work, but you don't know 63** why. 64** EX_SOFTWARE -- An internal software error has been detected. 65** This should be limited to non-operating system related 66** errors as possible. 67** EX_OSERR -- An operating system error has been detected. 68** This is intended to be used for such things as "cannot 69** fork", "cannot create pipe", or the like. It includes 70** things like getuid returning a user that does not 71** exist in the passwd file. 72** EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp, 73** etc.) does not exist, cannot be opened, or has some 74** sort of error (e.g., syntax error). 75** EX_CANTCREAT -- A (user specified) output file cannot be 76** created. 77** EX_IOERR -- An error occurred while doing I/O on some file. 78** EX_TEMPFAIL -- temporary failure, indicating something that 79** is not really an error. In sendmail, this means 80** that a mailer (e.g.) could not create a connection, 81** and the request should be reattempted later. 82** EX_PROTOCOL -- the remote system returned something that 83** was "not possible" during a protocol exchange. 84** EX_NOPERM -- You did not have sufficient permission to 85** perform the operation. This is not intended for 86** file system problems, which should use NOINPUT or 87** CANTCREAT, but rather for higher level permissions. 88** For example, kre uses this to restrict who students 89** can send mail to. 90** 91** Maintained by Eric Allman (eric@berkeley, ucbvax!eric) -- 92** please mail changes to me. 93** 94** @(#)sysexits.h 4.5 7/6/88 95*/ 96 97# define EX_OK 0 /* successful termination */ 98 99# define EX__BASE 64 /* base value for error messages */ 100 101# define EX_USAGE 64 /* command line usage error */ 102# define EX_DATAERR 65 /* data format error */ 103# define EX_NOINPUT 66 /* cannot open input */ 104# define EX_NOUSER 67 /* addressee unknown */ 105# define EX_NOHOST 68 /* host name unknown */ 106# define EX_UNAVAILABLE 69 /* service unavailable */ 107# define EX_SOFTWARE 70 /* internal software error */ 108# define EX_OSERR 71 /* system error (e.g., can't fork) */ 109# define EX_OSFILE 72 /* critical OS file missing */ 110# define EX_CANTCREAT 73 /* can't create (user) output file */ 111# define EX_IOERR 74 /* input/output error */ 112# define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ 113# define EX_PROTOCOL 76 /* remote error in protocol */ 114# define EX_NOPERM 77 /* permission denied */ 115# define EX_CONFIG 78 /* configuration error */ 116