1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/*++
/* NAME
/* rec_type 3
/* SUMMARY
/* Postfix record types
/* SYNOPSIS
/* #include <rec_type.h>
/*
/* const char *rec_type_name(type)
/* int type;
/* DESCRIPTION
/* This module and its associated include file implement the
/* Postfix-specific record types.
/*
/* rec_type_name() returns a printable name for the given record
/* type.
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*--*/
/* Global library. */
#include "rec_type.h"
/*
* Lookup table with internal record type codes and printable names.
*/
typedef struct {
int type;
const char *name;
} REC_TYPE_NAME;
REC_TYPE_NAME rec_type_names[] = {
REC_TYPE_EOF, "end-of-file", /* not Postfix-specific. */
REC_TYPE_ERROR, "error", /* not Postfix-specific. */
REC_TYPE_SIZE, "message_size",
REC_TYPE_TIME, "message_arrival_time",
REC_TYPE_CTIME, "queue_file_create_time",
REC_TYPE_FULL, "sender_fullname",
REC_TYPE_INSP, "content_inspector",
REC_TYPE_FILT, "content_filter",
REC_TYPE_FROM, "sender",
REC_TYPE_DONE, "done_recipient",
REC_TYPE_DRCP, "canceled_recipient",
REC_TYPE_RCPT, "recipient",
REC_TYPE_ORCP, "original_recipient",
REC_TYPE_WARN, "warning_message_time",
REC_TYPE_ATTR, "named_attribute",
REC_TYPE_PTR, "pointer_record",
REC_TYPE_KILL, "killed_record",
REC_TYPE_MESG, "message_content",
REC_TYPE_CONT, "unterminated_text",
REC_TYPE_NORM, "regular_text",
REC_TYPE_DTXT, "padding",
REC_TYPE_XTRA, "extracted_info",
REC_TYPE_RRTO, "return_receipt",
REC_TYPE_ERTO, "errors_to",
REC_TYPE_PRIO, "priority",
REC_TYPE_VERP, "verp_delimiters",
REC_TYPE_END, "message_end",
REC_TYPE_RDR, "redirect_to",
REC_TYPE_FLGS, "flags",
REC_TYPE_DSN_RET, "dsn_return_flags",
REC_TYPE_DSN_ENVID, "dsn_envelope_id",
REC_TYPE_DSN_ORCPT, "dsn_original_recipient",
REC_TYPE_DSN_NOTIFY, "dsn_notify_flags",
0, 0,
};
/* rec_type_name - map record type to printable name */
const char *rec_type_name(int type)
{
REC_TYPE_NAME *p;
for (p = rec_type_names; p->name != 0; p++)
if (p->type == type)
return (p->name);
return ("unknown_record_type");
}
|