1 /*++ 2 /* NAME 3 /* mail_error 3 4 /* SUMMARY 5 /* mail error classes 6 /* SYNOPSIS 7 /* #include <mail_error.h> 8 /* 9 /* NAME_MASK mail_error_masks[]; 10 /* DESCRIPTION 11 /* This module implements error class support. 12 /* 13 /* mail_error_masks[] is a null-terminated table with mail error 14 /* class names and their corresponding bit masks. 15 /* 16 /* The following is a list of implemented names, with the 17 /* corresponding bit masks indicated in parentheses: 18 /* .IP "bounce (MAIL_ERROR_BOUNCE)" 19 /* A message could not be delivered because it was too large, 20 /* because was sent via too many hops, because the recipient 21 /* does not exist, and so on. 22 /* .IP "2bounce (MAIL_ERROR_2BOUNCE)" 23 /* A bounce message could not be delivered. 24 /* .IP "data (MAIL_ERROR_DATA)" 25 /* A message could not be delivered because a critical data 26 /* file was unavailable. 27 /* .IP "policy (MAIL_ERROR_POLICY)" 28 /* Policy violation. This depends on what restrictions have 29 /* been configured locally. 30 /* .IP "protocol (MAIL_ERROR_PROTOCOL)" 31 /* Protocol violation. Something did not follow the appropriate 32 /* standard, or something requested an unimplemented service. 33 /* .IP "resource (MAIL_ERROR_RESOURCE)" 34 /* A message could not be delivered due to lack of system 35 /* resources, for example, lack of file system space. 36 /* .IP "software (MAIL_ERROR_SOFTWARE)" 37 /* Software bug. The author of this program made a mistake. 38 /* Fixing this requires change to the software. 39 /* SEE ALSO 40 /* name_mask(3), name to mask conversion 41 /* LICENSE 42 /* .ad 43 /* .fi 44 /* The Secure Mailer license must be distributed with this software. 45 /* AUTHOR(S) 46 /* Wietse Venema 47 /* IBM T.J. Watson Research 48 /* P.O. Box 704 49 /* Yorktown Heights, NY 10598, USA 50 /*--*/ 51 52 /* System library. */ 53 54 #include <sys_defs.h> 55 56 /* Utility library. */ 57 58 /* Global library. */ 59 60 #include "mail_error.h" 61 62 /* 63 * The table that maps names to error bit masks. This will work on most UNIX 64 * compilation environments. 65 * 66 * In a some environments the table will not be linked in unless this module 67 * also contains a function that is being called explicitly. REF/DEF and all 68 * that. 69 */ 70 const NAME_MASK mail_error_masks[] = { 71 "bounce", MAIL_ERROR_BOUNCE, 72 "2bounce", MAIL_ERROR_2BOUNCE, 73 "data", MAIL_ERROR_DATA, 74 "delay", MAIL_ERROR_DELAY, 75 "policy", MAIL_ERROR_POLICY, 76 "protocol", MAIL_ERROR_PROTOCOL, 77 "resource", MAIL_ERROR_RESOURCE, 78 "software", MAIL_ERROR_SOFTWARE, 79 0, 0, 80 }; 81