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 "dat (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  */
70const 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