1 /* 2 * Copyright (c) 1998-2001, 2003 Sendmail, Inc. and its suppliers. 3 * All rights reserved. 4 * 5 * By using this file, you agree to the terms and conditions set 6 * forth in the LICENSE file which can be found at the top level of 7 * the sendmail distribution. 8 * 9 * $Id: errstring.h,v 1.9 2003/12/10 03:19:06 gshapiro Exp $ 10 */ 11 12 #pragma ident "%Z%%M% %I% %E% SMI" 13 14 /* 15 ** Error codes. 16 */ 17 18 #ifndef SM_ERRSTRING_H 19 # define SM_ERRSTRING_H 20 21 #include <errno.h> 22 #if NEEDINTERRNO 23 extern int errno; 24 #endif /* NEEDINTERRNO */ 25 26 /* 27 ** These are used in a few cases where we need some special 28 ** error codes, but where the system doesn't provide something 29 ** reasonable. They are printed in sm_errstring. 30 */ 31 32 #ifndef E_PSEUDOBASE 33 # define E_PSEUDOBASE 256 34 #endif /* ! E_PSEUDOBASE */ 35 36 #define E_SM_OPENTIMEOUT (E_PSEUDOBASE + 0) /* Timeout on file open */ 37 #define E_SM_NOSLINK (E_PSEUDOBASE + 1) /* Symbolic links not allowed */ 38 #define E_SM_NOHLINK (E_PSEUDOBASE + 2) /* Hard links not allowed */ 39 #define E_SM_REGONLY (E_PSEUDOBASE + 3) /* Regular files only */ 40 #define E_SM_ISEXEC (E_PSEUDOBASE + 4) /* Executable files not allowed */ 41 #define E_SM_WWDIR (E_PSEUDOBASE + 5) /* World writable directory */ 42 #define E_SM_GWDIR (E_PSEUDOBASE + 6) /* Group writable directory */ 43 #define E_SM_FILECHANGE (E_PSEUDOBASE + 7) /* File changed after open */ 44 #define E_SM_WWFILE (E_PSEUDOBASE + 8) /* World writable file */ 45 #define E_SM_GWFILE (E_PSEUDOBASE + 9) /* Group writable file */ 46 #define E_SM_GRFILE (E_PSEUDOBASE + 10) /* g readable file */ 47 #define E_SM_WRFILE (E_PSEUDOBASE + 11) /* o readable file */ 48 #define E_DNSBASE (E_PSEUDOBASE + 20) /* base for DNS h_errno */ 49 #define E_SMDBBASE (E_PSEUDOBASE + 40) /* base for libsmdb errors */ 50 #define E_LDAPBASE (E_PSEUDOBASE + 70) /* base for LDAP errors */ 51 #define E_LDAPURLBASE (E_PSEUDOBASE + 200) /* base for LDAP URL errors */ 52 53 54 /* libsmdb */ 55 #define SMDBE_OK 0 56 #define SMDBE_MALLOC (E_SMDBBASE + 1) 57 #define SMDBE_GDBM_IS_BAD (E_SMDBBASE + 2) 58 #define SMDBE_UNSUPPORTED (E_SMDBBASE + 3) 59 #define SMDBE_DUPLICATE (E_SMDBBASE + 4) 60 #define SMDBE_BAD_OPEN (E_SMDBBASE + 5) 61 #define SMDBE_NOT_FOUND (E_SMDBBASE + 6) 62 #define SMDBE_UNKNOWN_DB_TYPE (E_SMDBBASE + 7) 63 #define SMDBE_UNSUPPORTED_DB_TYPE (E_SMDBBASE + 8) 64 #define SMDBE_INCOMPLETE (E_SMDBBASE + 9) 65 #define SMDBE_KEY_EMPTY (E_SMDBBASE + 10) 66 #define SMDBE_KEY_EXIST (E_SMDBBASE + 11) 67 #define SMDBE_LOCK_DEADLOCK (E_SMDBBASE + 12) 68 #define SMDBE_LOCK_NOT_GRANTED (E_SMDBBASE + 13) 69 #define SMDBE_LOCK_NOT_HELD (E_SMDBBASE + 14) 70 #define SMDBE_RUN_RECOVERY (E_SMDBBASE + 15) 71 #define SMDBE_IO_ERROR (E_SMDBBASE + 16) 72 #define SMDBE_READ_ONLY (E_SMDBBASE + 17) 73 #define SMDBE_DB_NAME_TOO_LONG (E_SMDBBASE + 18) 74 #define SMDBE_INVALID_PARAMETER (E_SMDBBASE + 19) 75 #define SMDBE_ONLY_SUPPORTS_ONE_CURSOR (E_SMDBBASE + 20) 76 #define SMDBE_NOT_A_VALID_CURSOR (E_SMDBBASE + 21) 77 #define SMDBE_LAST_ENTRY (E_SMDBBASE + 22) 78 #define SMDBE_OLD_VERSION (E_SMDBBASE + 23) 79 #define SMDBE_VERSION_MISMATCH (E_SMDBBASE + 24) 80 81 extern const char *sm_errstring __P((int _errno)); 82 83 84 #endif /* SM_ERRSTRING_H */ 85