Postfix3.3.1
cleanup_init.c
[詳解]
1 /*++
2 /* NAME
3 /* cleanup_init 3
4 /* SUMMARY
5 /* cleanup callable interface, initializations
6 /* SYNOPSIS
7 /* #include "cleanup.h"
8 /*
9 /* CONFIG_INT_TABLE cleanup_int_table[];
10 /*
11 /* CONFIG_BOOL_TABLE cleanup_bool_table[];
12 /*
13 /* CONFIG_STR_TABLE cleanup_str_table[];
14 /*
15 /* CONFIG_TIME_TABLE cleanup_time_table[];
16 /*
17 /* void cleanup_pre_jail(service_name, argv)
18 /* char *service_name;
19 /* char **argv;
20 /*
21 /* void cleanup_post_jail(service_name, argv)
22 /* char *service_name;
23 /* char **argv;
24 /*
25 /* char *cleanup_path;
26 /* VSTRING *cleanup_trace_path;
27 /*
28 /* void cleanup_all()
29 /*
30 /* void cleanup_sig(sigval)
31 /* int sigval;
32 /* DESCRIPTION
33 /* This module implements a callable interface to the cleanup service
34 /* for one-time initializations that must be done before any message
35 /* processing can take place.
36 /*
37 /* cleanup_{int,str,time}_table[] specify configuration
38 /* parameters that must be initialized before calling any functions
39 /* in this module. These tables satisfy the interface as specified in
40 /* single_service(3).
41 /*
42 /* cleanup_pre_jail() and cleanup_post_jail() perform mandatory
43 /* initializations before and after the process enters the optional
44 /* chroot jail. These functions satisfy the interface as specified
45 /* in single_service(3).
46 /*
47 /* cleanup_path is either a null pointer or it is the name of a queue
48 /* file that currently is being written. This information is used
49 /* by cleanup_all() to remove incomplete files after a fatal error,
50 /* or by cleanup_sig() after arrival of a SIGTERM signal.
51 /*
52 /* cleanup_trace_path is either a null pointer or the pathname of a
53 /* trace logfile with DSN SUCCESS notifications. This information is
54 /* used to remove a trace file when the mail transaction is canceled.
55 /*
56 /* cleanup_all() must be called in case of fatal error, in order
57 /* to remove an incomplete queue file.
58 /*
59 /* cleanup_sig() must be called in case of SIGTERM, in order
60 /* to remove an incomplete queue file.
61 /* DIAGNOSTICS
62 /* Problems and transactions are logged to \fBsyslogd\fR(8).
63 /* SEE ALSO
64 /* cleanup_api(3) cleanup callable interface, message processing
65 /* LICENSE
66 /* .ad
67 /* .fi
68 /* The Secure Mailer license must be distributed with this software.
69 /* AUTHOR(S)
70 /* Wietse Venema
71 /* IBM T.J. Watson Research
72 /* P.O. Box 704
73 /* Yorktown Heights, NY 10598, USA
74 /*
75 /* Wietse Venema
76 /* Google, Inc.
77 /* 111 8th Avenue
78 /* New York, NY 10011, USA
79 /*--*/
80 
81 /* System library. */
82 
83 #include <sys_defs.h>
84 #include <signal.h>
85 #include <string.h>
86 
87 /* Utility library. */
88 
89 #include <msg.h>
90 #include <iostuff.h>
91 #include <name_code.h>
92 #include <name_mask.h>
93 #include <stringops.h>
94 
95 /* Global library. */
96 
97 #include <mail_addr.h>
98 #include <mail_params.h>
99 #include <mail_version.h> /* milter_macro_v */
100 #include <ext_prop.h>
101 #include <flush_clnt.h>
102 
103 /* Application-specific. */
104 
105 #include "cleanup.h"
106 
107  /*
108  * Global state: any queue files that we have open, so that the error
109  * handler can clean up in case of trouble.
110  */
111 char *cleanup_path; /* queue file name */
112 
113  /*
114  * Another piece of global state: pathnames of partial bounce or trace
115  * logfiles that need to be cleaned up when the cleanup request is aborted.
116  */
118 
119  /*
120  * Tunable parameters.
121  */
122 int var_hopcount_limit; /* max mailer hop count */
123 char *var_canonical_maps; /* common canonical maps */
124 char *var_send_canon_maps; /* sender canonical maps */
125 char *var_rcpt_canon_maps; /* recipient canonical maps */
126 char *var_canon_classes; /* what to canonicalize */
127 char *var_send_canon_classes; /* what sender to canonicalize */
128 char *var_rcpt_canon_classes; /* what recipient to canonicalize */
129 char *var_virt_alias_maps; /* virtual alias maps */
130 char *var_masq_domains; /* masquerade domains */
131 char *var_masq_exceptions; /* users not masqueraded */
132 char *var_header_checks; /* primary header checks */
133 char *var_mimehdr_checks; /* mime header checks */
134 char *var_nesthdr_checks; /* nested header checks */
135 char *var_body_checks; /* any body checks */
136 int var_dup_filter_limit; /* recipient dup filter */
137 char *var_empty_addr; /* destination of bounced bounces */
138 int var_delay_warn_time; /* delay that triggers warning */
139 char *var_prop_extension; /* propagate unmatched extension */
140 char *var_always_bcc; /* big brother */
141 char *var_rcpt_witheld; /* recipients not disclosed */
142 char *var_masq_classes; /* what to masquerade */
143 int var_qattr_count_limit; /* named attribute limit */
144 int var_virt_recur_limit; /* maximum virtual alias recursion */
145 int var_virt_expan_limit; /* maximum virtual alias expansion */
146 int var_body_check_len; /* when to stop body scan */
147 char *var_send_bcc_maps; /* sender auto-bcc maps */
148 char *var_rcpt_bcc_maps; /* recipient auto-bcc maps */
149 char *var_remote_rwr_domain; /* header-only surrogate */
150 char *var_msg_reject_chars; /* reject these characters */
151 char *var_msg_strip_chars; /* strip these characters */
152 int var_verp_bounce_off; /* don't verp the bounces */
153 int var_milt_conn_time; /* milter connect/handshake timeout */
154 int var_milt_cmd_time; /* milter command timeout */
155 int var_milt_msg_time; /* milter content timeout */
156 char *var_milt_protocol; /* Sendmail 8 milter protocol */
157 char *var_milt_def_action; /* default milter action */
158 char *var_milt_daemon_name; /* {daemon_name} macro value */
159 char *var_milt_v; /* {v} macro value */
160 char *var_milt_conn_macros; /* connect macros */
161 char *var_milt_helo_macros; /* HELO macros */
162 char *var_milt_mail_macros; /* MAIL FROM macros */
163 char *var_milt_rcpt_macros; /* RCPT TO macros */
164 char *var_milt_data_macros; /* DATA macros */
165 char *var_milt_eoh_macros; /* end-of-header macros */
166 char *var_milt_eod_macros; /* end-of-data macros */
167 char *var_milt_unk_macros; /* unknown command macros */
168 char *var_cleanup_milters; /* non-SMTP mail */
169 char *var_milt_head_checks; /* post-Milter header checks */
170 char *var_milt_macro_deflts; /* default macro settings */
171 int var_auto_8bit_enc_hdr; /* auto-detect 8bit encoding header */
172 int var_always_add_hdrs; /* always add missing headers */
173 int var_virt_addrlen_limit; /* stop exponential growth */
174 char *var_hfrom_format; /* header_from_format */
175 
184  0,
185 };
186 
191  0,
192 };
193 
199  0,
200 };
201 
242  0,
243 };
244 
245  /*
246  * Mappings.
247  */
264 
265  /*
266  * Character filters.
267  */
270 
271  /*
272  * Address extension propagation restrictions.
273  */
275 
276  /*
277  * Milter support.
278  */
280 
281  /*
282  * From: header format.
283  */
285 
286 /* cleanup_all - callback for the runtime error handler */
287 
288 void cleanup_all(void)
289 {
290  cleanup_sig(0);
291 }
292 
293 /* cleanup_sig - callback for the SIGTERM handler */
294 
295 void cleanup_sig(int sig)
296 {
297 
298  /*
299  * msg_fatal() is safe against calling itself recursively, but signals
300  * need extra safety.
301  *
302  * XXX While running as a signal handler, can't ask the memory manager to
303  * release VSTRING storage.
304  */
305  if (signal(SIGTERM, SIG_IGN) != SIG_IGN) {
306  if (cleanup_trace_path) {
307  (void) REMOVE(vstring_str(cleanup_trace_path));
308  cleanup_trace_path = 0;
309  }
310  if (cleanup_path) {
311  (void) REMOVE(cleanup_path);
312  cleanup_path = 0;
313  }
314  if (sig)
315  _exit(sig);
316  }
317 }
318 
319 /* cleanup_pre_jail - initialize before entering the chroot jail */
320 
321 void cleanup_pre_jail(char *unused_name, char **unused_argv)
322 {
323  static const NAME_MASK send_canon_class_table[] = {
326  0,
327  };
328  static const NAME_MASK rcpt_canon_class_table[] = {
331  0,
332  };
333  static const NAME_MASK canon_class_table[] = {
338  0,
339  };
340  static const NAME_MASK masq_class_table[] = {
345  0,
346  };
347 
348  if (*var_canonical_maps)
349  cleanup_comm_canon_maps =
353  if (*var_send_canon_maps)
354  cleanup_send_canon_maps =
358  if (*var_rcpt_canon_maps)
359  cleanup_rcpt_canon_maps =
363  if (*var_virt_alias_maps)
364  cleanup_virt_alias_maps = maps_create(VAR_VIRT_ALIAS_MAPS,
369  if (*var_canon_classes)
371  name_mask(VAR_CANON_CLASSES, canon_class_table,
375  name_mask(VAR_CANON_CLASSES, send_canon_class_table,
379  name_mask(VAR_CANON_CLASSES, rcpt_canon_class_table,
381  if (*var_masq_domains)
382  cleanup_masq_domains = argv_split(var_masq_domains, CHARS_COMMA_SP);
383  if (*var_header_checks)
384  cleanup_header_checks =
386  if (*var_mimehdr_checks)
387  cleanup_mimehdr_checks =
389  if (*var_nesthdr_checks)
390  cleanup_nesthdr_checks =
392  if (*var_body_checks)
393  cleanup_body_checks =
395  if (*var_masq_exceptions)
399  if (*var_masq_classes)
400  cleanup_masq_flags = name_mask(VAR_MASQ_CLASSES, masq_class_table,
402  if (*var_send_bcc_maps)
403  cleanup_send_bcc_maps =
407  if (*var_rcpt_bcc_maps)
408  cleanup_rcpt_bcc_maps =
412  if (*var_cleanup_milters)
413  cleanup_milters = milter_create(var_cleanup_milters,
428 
429  flush_init();
430 }
431 
432 /* cleanup_post_jail - initialize after entering the chroot jail */
433 
434 void cleanup_post_jail(char *unused_name, char **unused_argv)
435 {
436  static const NAME_CODE hfrom_format_table[] = {
439  0, -1,
440  };
441 
442  /*
443  * Optionally set the file size resource limit. XXX This limits the
444  * message content to somewhat less than requested, because the total
445  * queue file size also includes envelope information. Unless people set
446  * really low limit, the difference is going to matter only when a queue
447  * file has lots of recipients.
448  */
449  if (var_message_limit > 0)
451 
452  /*
453  * Control how unmatched extensions are propagated.
454  */
457 
458  /*
459  * Setup the filters for characters that should be rejected, and for
460  * characters that should be removed.
461  */
462  if (*var_msg_reject_chars) {
463  cleanup_reject_chars = vstring_alloc(strlen(var_msg_reject_chars));
464  unescape(cleanup_reject_chars, var_msg_reject_chars);
465  }
466  if (*var_msg_strip_chars) {
467  cleanup_strip_chars = vstring_alloc(strlen(var_msg_strip_chars));
468  unescape(cleanup_strip_chars, var_msg_strip_chars);
469  }
470 
471  /*
472  * From: header formatting.
473  */
474  if ((hfrom_format_code = name_code(hfrom_format_table,
476  msg_fatal("invalid setting: %s = %s",
478 }
char * var_msg_reject_chars
Definition: cleanup_init.c:150
#define DEF_BODY_CHECK_LEN
Definition: mail_params.h:1951
#define VAR_VIRT_RECUR_LIMIT
Definition: mail_params.h:1911
#define CANON_CLASS_ENV_RCPT
Definition: mail_params.h:455
int var_hopcount_limit
Definition: cleanup_init.c:122
#define MATCH_FLAG_RETURN
Definition: match_list.h:40
int ext_prop_mask(const char *param_name, const char *pattern)
Definition: ext_prop.c:65
#define VAR_MILT_UNK_MACROS
Definition: mail_params.h:3384
#define DEF_VIRT_ADDRLEN_LIMIT
Definition: mail_params.h:1920
void cleanup_pre_jail(char *unused_name, char **unused_argv)
Definition: cleanup_init.c:321
char * var_send_bcc_maps
Definition: cleanup_init.c:147
char * var_milt_mail_macros
Definition: cleanup_init.c:162
VSTRING * cleanup_reject_chars
Definition: cleanup_init.c:268
#define VAR_ALWAYS_BCC
Definition: mail_params.h:364
#define MASQ_CLASS_HDR_RCPT
Definition: mail_params.h:200
#define DEF_MILT_MACRO_DEFLTS
Definition: mail_params.h:3429
char * var_milt_protocol
Definition: cleanup_init.c:156
#define VAR_PROP_EXTENSION
Definition: mail_params.h:640
#define VAR_SEND_CANON_CLASSES
Definition: mail_params.h:466
void cleanup_sig(int sig)
Definition: cleanup_init.c:295
#define VAR_MILT_DAEMON_NAME
Definition: mail_params.h:3416
#define DEF_ALWAYS_ADD_HDRS
Definition: mail_params.h:384
#define DEF_AUTO_8BIT_ENC_HDR
Definition: mail_params.h:2968
char * var_milt_head_checks
Definition: cleanup_init.c:169
#define VAR_RCPT_CANON_CLASSES
Definition: mail_params.h:471
#define VAR_MIMEHDR_CHECKS
Definition: mail_params.h:1938
char * var_nesthdr_checks
Definition: cleanup_init.c:134
#define DEF_VIRT_RECUR_LIMIT
Definition: mail_params.h:1912
#define VAR_MILT_MACRO_DEFLTS
Definition: mail_params.h:3428
#define DEF_QATTR_COUNT_LIMIT
Definition: mail_params.h:2929
#define VAR_EMPTY_ADDR
Definition: mail_params.h:79
Definition: argv.h:17
char * var_body_checks
Definition: cleanup_init.c:135
int var_auto_8bit_enc_hdr
Definition: cleanup_init.c:171
char * var_milt_unk_macros
Definition: cleanup_init.c:167
#define vstring_str(vp)
Definition: vstring.h:71
#define VAR_DUP_FILTER_LIMIT
Definition: mail_params.h:686
MAPS * cleanup_mimehdr_checks
Definition: cleanup_init.c:255
int REMOVE(const char *path)
Definition: remove.c:52
int var_virt_expan_limit
Definition: cleanup_init.c:145
#define DEF_MILT_DEF_ACTION
Definition: mail_params.h:3413
#define CLEANUP_MASQ_FLAG_HDR_RCPT
Definition: cleanup.h:189
#define STRING_LIST
Definition: string_list.h:22
#define VAR_MILT_PROTOCOL
Definition: mail_params.h:3408
#define CLEANUP_CANON_FLAG_ENV_RCPT
Definition: cleanup.h:179
#define VAR_MILT_HELO_MACROS
Definition: mail_params.h:3364
char * var_rcpt_witheld
Definition: cleanup_init.c:141
#define DEF_MILT_MSG_TIME
Definition: mail_params.h:3405
#define VAR_CANON_CLASSES
Definition: mail_params.h:459
#define DEF_ALWAYS_BCC
Definition: mail_params.h:365
char * var_rcpt_canon_classes
Definition: cleanup_init.c:128
int cleanup_comm_canon_flags
Definition: cleanup_init.c:251
Definition: maps.h:22
#define DEF_MILT_CONN_TIME
Definition: mail_params.h:3397
ARGV * cleanup_masq_domains
Definition: cleanup_init.c:259
#define VAR_QATTR_COUNT_LIMIT
Definition: mail_params.h:2928
#define DEF_MILT_CMD_TIME
Definition: mail_params.h:3401
const CONFIG_BOOL_TABLE cleanup_bool_table[]
Definition: cleanup_init.c:187
#define DEF_MILT_MAIL_MACROS
Definition: mail_params.h:3370
#define DEF_CANON_CLASSES
Definition: mail_params.h:460
void set_file_limit(off_t limit)
Definition: file_limit.c:80
#define HFROM_FORMAT_NAME_STD
Definition: mail_params.h:398
#define DICT_FLAG_UTF8_REQUEST
Definition: dict.h:130
char * var_milt_conn_macros
Definition: cleanup_init.c:160
MAPS * cleanup_body_checks
Definition: cleanup_init.c:257
#define VAR_VIRT_ADDRLEN_LIMIT
Definition: mail_params.h:1919
#define DEF_VERP_BOUNCE_OFF
Definition: mail_params.h:2597
#define DEF_MILT_PROTOCOL
Definition: mail_params.h:3409
#define VAR_SEND_CANON_MAPS
Definition: mail_params.h:446
#define VAR_BODY_CHECKS
Definition: mail_params.h:1946
const CONFIG_TIME_TABLE cleanup_time_table[]
Definition: cleanup_init.c:194
#define DEF_EMPTY_ADDR
Definition: mail_params.h:80
MAPS * cleanup_comm_canon_maps
Definition: cleanup_init.c:248
#define DICT_FLAG_FOLD_FIX
Definition: dict.h:124
void flush_init(void)
Definition: flush_clnt.c:104
#define DEF_MSG_REJECT_CHARS
Definition: mail_params.h:3150
#define VAR_REM_RWR_DOMAIN
Definition: mail_params.h:3108
int var_qattr_count_limit
Definition: cleanup_init.c:143
#define CLEANUP_CANON_FLAG_HDR_RCPT
Definition: cleanup.h:181
const CONFIG_INT_TABLE cleanup_int_table[]
Definition: cleanup_init.c:176
char * var_canon_classes
Definition: cleanup_init.c:126
char * var_send_canon_maps
Definition: cleanup_init.c:124
#define VAR_VIRT_ALIAS_MAPS
Definition: mail_params.h:430
MILTERS * cleanup_milters
Definition: cleanup_init.c:279
#define CANON_CLASS_ENV_FROM
Definition: mail_params.h:454
char * var_milt_v
Definition: cleanup_init.c:159
#define DEF_MASQ_DOMAINS
Definition: mail_params.h:190
#define CLEANUP_CANON_FLAG_HDR_FROM
Definition: cleanup.h:180
#define DEF_MILT_CONN_MACROS
Definition: mail_params.h:3361
char * var_milt_data_macros
Definition: cleanup_init.c:164
#define string_list_init(o, f, p)
Definition: string_list.h:24
long var_message_limit
Definition: mail_params.c:265
#define MASQ_CLASS_ENV_FROM
Definition: mail_params.h:197
#define DEF_MILT_RCPT_MACROS
Definition: mail_params.h:3376
char * var_milt_macro_deflts
Definition: cleanup_init.c:170
#define CLEANUP_MASQ_FLAG_ENV_RCPT
Definition: cleanup.h:187
#define MASQ_CLASS_HDR_FROM
Definition: mail_params.h:199
#define DEF_SEND_BCC_MAPS
Definition: mail_params.h:477
#define VAR_CANONICAL_MAPS
Definition: mail_params.h:442
#define VAR_ALWAYS_ADD_HDRS
Definition: mail_params.h:383
#define HFROM_FORMAT_NAME_OBS
Definition: mail_params.h:399
#define VAR_AUTO_8BIT_ENC_HDR
Definition: mail_params.h:2967
#define VAR_MILT_DATA_MACROS
Definition: mail_params.h:3380
#define DEF_CANONICAL_MAPS
Definition: mail_params.h:443
#define HFROM_FORMAT_CODE_OBS
Definition: cleanup.h:356
#define VAR_MILT_CMD_TIME
Definition: mail_params.h:3400
char * var_empty_addr
Definition: cleanup_init.c:137
MAPS * cleanup_send_bcc_maps
Definition: cleanup_init.c:262
#define VAR_NESTHDR_CHECKS
Definition: mail_params.h:1942
#define VAR_MILT_CONN_MACROS
Definition: mail_params.h:3360
MAPS * maps_create(const char *title, const char *map_names, int dict_flags)
Definition: maps.c:112
#define VAR_MASQ_CLASSES
Definition: mail_params.h:202
#define VAR_MILT_MAIL_MACROS
Definition: mail_params.h:3369
#define DEF_MASQ_CLASSES
Definition: mail_params.h:203
int var_always_add_hdrs
Definition: cleanup_init.c:172
#define DEF_VIRT_ALIAS_MAPS
Definition: mail_params.h:431
#define DEF_MASQ_EXCEPTIONS
Definition: mail_params.h:194
#define VAR_MILT_MSG_TIME
Definition: mail_params.h:3404
#define VAR_MILT_CONN_TIME
Definition: mail_params.h:3396
#define DEF_RCPT_CANON_CLASSES
Definition: mail_params.h:472
char * var_rcpt_canon_maps
Definition: cleanup_init.c:125
#define DICT_FLAG_LOCK
Definition: dict.h:116
#define DEF_RCPT_BCC_MAPS
Definition: mail_params.h:481
#define DEF_REM_RWR_DOMAIN
Definition: mail_params.h:3109
VSTRING * vstring_alloc(ssize_t len)
Definition: vstring.c:353
#define DEF_MILT_HELO_MACROS
Definition: mail_params.h:3365
char * var_header_checks
Definition: cleanup_init.c:132
#define VAR_MILT_RCPT_MACROS
Definition: mail_params.h:3375
#define NAME_CODE_FLAG_NONE
Definition: name_code.h:22
#define HFROM_FORMAT_CODE_STD
Definition: cleanup.h:355
char * var_masq_domains
Definition: cleanup_init.c:130
#define VAR_MSG_REJECT_CHARS
Definition: mail_params.h:3149
#define DEF_MILT_EOH_MACROS
Definition: mail_params.h:3389
#define DEF_MILT_DATA_MACROS
Definition: mail_params.h:3381
#define DEF_NESTHDR_CHECKS
Definition: mail_params.h:1943
int hfrom_format_code
Definition: cleanup_init.c:284
#define DEF_VIRT_EXPAN_LIMIT
Definition: mail_params.h:1916
#define DEF_RCPT_CANON_MAPS
Definition: mail_params.h:451
#define name_mask(tag, table, str)
Definition: name_mask.h:49
#define VAR_MILT_V
Definition: mail_params.h:3420
#define VAR_HOPCOUNT_LIMIT
Definition: mail_params.h:1899
#define MASQ_CLASS_ENV_RCPT
Definition: mail_params.h:198
#define VAR_DELAY_WARN_TIME
Definition: mail_params.h:765
int cleanup_rcpt_canon_flags
Definition: cleanup_init.c:253
char * var_canonical_maps
Definition: cleanup_init.c:123
#define VAR_RCPT_WITHELD
Definition: mail_params.h:375
char * var_milt_daemon_name
Definition: cleanup_init.c:158
#define CANON_CLASS_HDR_RCPT
Definition: mail_params.h:457
int name_code(const NAME_CODE *table, int flags, const char *name)
Definition: name_code.c:65
#define DEF_CLEANUP_MILTERS
Definition: mail_params.h:3353
#define CLEANUP_MASQ_FLAG_ENV_FROM
Definition: cleanup.h:186
#define VAR_HFROM_FORMAT
Definition: mail_params.h:400
#define VAR_RCPT_CANON_MAPS
Definition: mail_params.h:450
int cleanup_masq_flags
Definition: cleanup_init.c:261
#define DEF_HFROM_FORMAT
Definition: mail_params.h:401
int cleanup_ext_prop_mask
Definition: cleanup_init.c:274
char * var_milt_eoh_macros
Definition: cleanup_init.c:165
NORETURN msg_fatal(const char *fmt,...)
Definition: msg.c:249
MAPS * cleanup_rcpt_bcc_maps
Definition: cleanup_init.c:263
int var_virt_recur_limit
Definition: cleanup_init.c:144
#define DEF_MSG_STRIP_CHARS
Definition: mail_params.h:3154
#define CLEANUP_MASQ_FLAG_HDR_FROM
Definition: cleanup.h:188
#define DEF_HOPCOUNT_LIMIT
Definition: mail_params.h:1900
#define CHARS_COMMA_SP
Definition: sys_defs.h:1761
int var_milt_msg_time
Definition: cleanup_init.c:155
#define VAR_MILT_HEAD_CHECKS
Definition: mail_params.h:3424
#define DEF_RCPT_WITHELD
Definition: mail_params.h:376
int var_delay_warn_time
Definition: cleanup_init.c:138
char * var_virt_alias_maps
Definition: cleanup_init.c:129
#define DEF_MIMEHDR_CHECKS
Definition: mail_params.h:1939
char * var_masq_exceptions
Definition: cleanup_init.c:131
void cleanup_all(void)
Definition: cleanup_init.c:288
int var_virt_addrlen_limit
Definition: cleanup_init.c:173
int var_dup_filter_limit
Definition: cleanup_init.c:136
ARGV * argv_split(const char *, const char *)
Definition: argv_split.c:63
int var_body_check_len
Definition: cleanup_init.c:146
int var_milt_conn_time
Definition: cleanup_init.c:153
MAPS * cleanup_send_canon_maps
Definition: cleanup_init.c:249
#define VAR_CLEANUP_MILTERS
Definition: mail_params.h:3352
#define VAR_MILT_EOD_MACROS
Definition: mail_params.h:3392
#define VAR_BODY_CHECK_LEN
Definition: mail_params.h:1950
char * var_milt_rcpt_macros
Definition: cleanup_init.c:163
char * var_milt_def_action
Definition: cleanup_init.c:157
#define DEF_PROP_EXTENSION
Definition: mail_params.h:641
char * var_msg_strip_chars
Definition: cleanup_init.c:151
#define DEF_MILT_DAEMON_NAME
Definition: mail_params.h:3417
#define VAR_MASQ_DOMAINS
Definition: mail_params.h:189
int cleanup_send_canon_flags
Definition: cleanup_init.c:252
#define CANON_CLASS_HDR_FROM
Definition: mail_params.h:456
MAPS * cleanup_rcpt_canon_maps
Definition: cleanup_init.c:250
#define VAR_SEND_BCC_MAPS
Definition: mail_params.h:476
#define VAR_MSG_STRIP_CHARS
Definition: mail_params.h:3153
#define DEF_MILT_UNK_MACROS
Definition: mail_params.h:3385
#define DEF_MILT_EOD_MACROS
Definition: mail_params.h:3393
#define DEF_BODY_CHECKS
Definition: mail_params.h:1947
#define DEF_MILT_HEAD_CHECKS
Definition: mail_params.h:3425
char * var_milt_helo_macros
Definition: cleanup_init.c:161
char * var_masq_classes
Definition: cleanup_init.c:142
#define VAR_MASQ_EXCEPTIONS
Definition: mail_params.h:193
VSTRING * cleanup_trace_path
Definition: cleanup_init.c:117
#define VAR_MILT_DEF_ACTION
Definition: mail_params.h:3412
char * cleanup_path
Definition: cleanup_init.c:111
#define VAR_RCPT_BCC_MAPS
Definition: mail_params.h:480
char * var_mimehdr_checks
Definition: cleanup_init.c:133
void cleanup_post_jail(char *unused_name, char **unused_argv)
Definition: cleanup_init.c:434
#define DEF_MILT_V
Definition: mail_params.h:3421
char * var_always_bcc
Definition: cleanup_init.c:140
MAPS * cleanup_header_checks
Definition: cleanup_init.c:254
char * var_rcpt_bcc_maps
Definition: cleanup_init.c:148
#define DEF_SEND_CANON_CLASSES
Definition: mail_params.h:467
int var_verp_bounce_off
Definition: cleanup_init.c:152
char * var_remote_rwr_domain
Definition: cleanup_init.c:149
#define CLEANUP_CANON_FLAG_ENV_FROM
Definition: cleanup.h:178
#define VAR_MILT_EOH_MACROS
Definition: mail_params.h:3388
char * var_milt_eod_macros
Definition: cleanup_init.c:166
#define DEF_HEADER_CHECKS
Definition: mail_params.h:1935
MAPS * cleanup_nesthdr_checks
Definition: cleanup_init.c:256
char * var_prop_extension
Definition: cleanup_init.c:139
#define VAR_VERP_BOUNCE_OFF
Definition: mail_params.h:2596
#define DEF_DUP_FILTER_LIMIT
Definition: mail_params.h:687
const CONFIG_STR_TABLE cleanup_str_table[]
Definition: cleanup_init.c:202
int var_milt_cmd_time
Definition: cleanup_init.c:154
char * var_hfrom_format
Definition: cleanup_init.c:174
MAPS * cleanup_virt_alias_maps
Definition: cleanup_init.c:258
#define VAR_HEADER_CHECKS
Definition: mail_params.h:1934
#define DEF_SEND_CANON_MAPS
Definition: mail_params.h:447
STRING_LIST * cleanup_masq_exceptions
Definition: cleanup_init.c:260
char * var_cleanup_milters
Definition: cleanup_init.c:168
VSTRING * unescape(VSTRING *, const char *)
Definition: unescape.c:69
VSTRING * cleanup_strip_chars
Definition: cleanup_init.c:269
#define VAR_VIRT_EXPAN_LIMIT
Definition: mail_params.h:1915
#define DEF_DELAY_WARN_TIME
Definition: mail_params.h:766
#define milter_create(milter_names, conn_timeout, cmd_timeout, msg_timeout, protocol, def_action, conn_macros, helo_macros, mail_macros, rcpt_macros, data_macros, eoh_macros, eod_macros, unk_macros, macro_deflts)
Definition: milter.h:122
char * var_send_canon_classes
Definition: cleanup_init.c:127