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