xref: /netbsd-src/external/ibm-public/postfix/dist/src/global/mail_params.h (revision 7e30e94394d0994ab9534f68a8f91665045c91ce)
1 /*	$NetBSD: mail_params.h,v 1.15 2017/02/15 16:42:16 christos Exp $	*/
2 
3 #ifndef _MAIL_PARAMS_H_INCLUDED_
4 #define _MAIL_PARAMS_H_INCLUDED_
5 
6 /*++
7 /* NAME
8 /*	mail_params 3h
9 /* SUMMARY
10 /*	globally configurable parameters
11 /* SYNOPSIS
12 /*	#include <mail_params.h>
13 /* DESCRIPTION
14 /* .nf
15 
16  /*
17   * This is to make it easier to auto-generate tables.
18   */
19 typedef int bool;
20 
21  /*
22   * Name used when this mail system announces itself.
23   */
24 #define VAR_MAIL_NAME		"mail_name"
25 #define DEF_MAIL_NAME		"Postfix"
26 extern char *var_mail_name;
27 
28  /*
29   * You want to be helped or not.
30   */
31 #define VAR_HELPFUL_WARNINGS	"helpful_warnings"
32 #define DEF_HELPFUL_WARNINGS	1
33 extern bool var_helpful_warnings;
34 
35  /*
36   * You want to be helped or not.
37   */
38 #define VAR_SHOW_UNK_RCPT_TABLE	"show_user_unknown_table_name"
39 #define DEF_SHOW_UNK_RCPT_TABLE	1
40 extern bool var_show_unk_rcpt_table;
41 
42  /*
43   * Compatibility level and migration support. Update postconf(5),
44   * COMPATIBILITY_README, and conf/main.cf when updating the current
45   * compatibility level.
46   */
47 #define VAR_COMPAT_LEVEL	"compatibility_level"
48 #define DEF_COMPAT_LEVEL	0
49 #define CUR_COMPAT_LEVEL	2
50 extern int var_compat_level;
51 
52 extern int warn_compat_break_app_dot_mydomain;
53 extern int warn_compat_break_smtputf8_enable;
54 extern int warn_compat_break_chroot;
55 
56 extern int warn_compat_break_relay_domains;
57 extern int warn_compat_break_flush_domains;
58 extern int warn_compat_break_mynetworks_style;
59 
60  /*
61   * What problem classes should be reported to the postmaster via email.
62   * Default is bad problems only. See mail_error(3). Even when mail notices
63   * are disabled, problems are still logged to the syslog daemon.
64   *
65   * Do not add "protocol" to the default setting. It gives Postfix a bad
66   * reputation: people get mail whenever spam software makes a mistake.
67   */
68 #define VAR_NOTIFY_CLASSES	"notify_classes"
69 #define DEF_NOTIFY_CLASSES	"resource, software"	/* Not: "protocol" */
70 extern char *var_notify_classes;
71 
72  /*
73   * What do I turn <> into? Sendmail defaults to mailer-daemon.
74   */
75 #define VAR_EMPTY_ADDR         "empty_address_recipient"
76 #define DEF_EMPTY_ADDR         MAIL_ADDR_MAIL_DAEMON
77 extern char *var_empty_addr;
78 
79  /*
80   * Privileges used by the mail system: the owner of files and commands, and
81   * the rights to be used when running external commands.
82   */
83 #define VAR_MAIL_OWNER		"mail_owner"
84 #define DEF_MAIL_OWNER		"postfix"
85 extern char *var_mail_owner;
86 extern uid_t var_owner_uid;
87 extern gid_t var_owner_gid;
88 
89 #define VAR_SGID_GROUP		"setgid_group"
90 #define DEF_SGID_GROUP		"maildrop"
91 extern char *var_sgid_group;
92 extern gid_t var_sgid_gid;
93 
94 #define VAR_DEFAULT_PRIVS	"default_privs"
95 #define DEF_DEFAULT_PRIVS	"nobody"
96 extern char *var_default_privs;
97 extern uid_t var_default_uid;
98 extern gid_t var_default_gid;
99 
100  /*
101   * Access control for local privileged operations:
102   */
103 #define STATIC_ANYONE_ACL	"static:anyone"
104 
105 #define VAR_FLUSH_ACL		"authorized_flush_users"
106 #define DEF_FLUSH_ACL		STATIC_ANYONE_ACL
107 extern char *var_flush_acl;
108 
109 #define VAR_SHOWQ_ACL		"authorized_mailq_users"
110 #define DEF_SHOWQ_ACL		STATIC_ANYONE_ACL
111 extern char *var_showq_acl;
112 
113 #define VAR_SUBMIT_ACL		"authorized_submit_users"
114 #define DEF_SUBMIT_ACL		STATIC_ANYONE_ACL
115 extern char *var_submit_acl;
116 
117  /*
118   * What goes on the right-hand side of addresses of mail sent from this
119   * machine.
120   */
121 #define VAR_MYORIGIN		"myorigin"
122 #define DEF_MYORIGIN		"$myhostname"
123 extern char *var_myorigin;
124 
125  /*
126   * What domains I will receive mail for. Not to be confused with transit
127   * mail to other destinations.
128   */
129 #define VAR_MYDEST		"mydestination"
130 #define DEF_MYDEST		"$myhostname, localhost.$mydomain, localhost"
131 extern char *var_mydest;
132 
133  /*
134   * These are by default taken from the name service.
135   */
136 #define VAR_MYHOSTNAME		"myhostname"	/* my hostname (fqdn) */
137 extern char *var_myhostname;
138 
139 #define VAR_MYDOMAIN		"mydomain"	/* my domain name */
140 #define DEF_MYDOMAIN		"localdomain"
141 extern char *var_mydomain;
142 
143  /*
144   * The default local delivery transport.
145   */
146 #define VAR_LOCAL_TRANSPORT	"local_transport"
147 #define DEF_LOCAL_TRANSPORT	MAIL_SERVICE_LOCAL ":$myhostname"
148 extern char *var_local_transport;
149 
150  /*
151   * Where to send postmaster copies of bounced mail, and other notices.
152   */
153 #define VAR_BOUNCE_RCPT		"bounce_notice_recipient"
154 #define DEF_BOUNCE_RCPT		"postmaster"
155 extern char *var_bounce_rcpt;
156 
157 #define VAR_2BOUNCE_RCPT	"2bounce_notice_recipient"
158 #define DEF_2BOUNCE_RCPT	"postmaster"
159 extern char *var_2bounce_rcpt;
160 
161 #define VAR_DELAY_RCPT		"delay_notice_recipient"
162 #define DEF_DELAY_RCPT		"postmaster"
163 extern char *var_delay_rcpt;
164 
165 #define VAR_ERROR_RCPT		"error_notice_recipient"
166 #define DEF_ERROR_RCPT		"postmaster"
167 extern char *var_error_rcpt;
168 
169  /*
170   * Virtual host support. Default is to listen on all machine interfaces.
171   */
172 #define VAR_INET_INTERFACES	"inet_interfaces"	/* listen addresses */
173 #define INET_INTERFACES_ALL	"all"
174 #define INET_INTERFACES_LOCAL	"loopback-only"
175 #define DEF_INET_INTERFACES	INET_INTERFACES_ALL
176 extern char *var_inet_interfaces;
177 
178 #define VAR_PROXY_INTERFACES	"proxy_interfaces"	/* proxies, NATs */
179 #define DEF_PROXY_INTERFACES	""
180 extern char *var_proxy_interfaces;
181 
182  /*
183   * Masquerading (i.e. subdomain stripping).
184   */
185 #define VAR_MASQ_DOMAINS	"masquerade_domains"
186 #define DEF_MASQ_DOMAINS	""
187 extern char *var_masq_domains;
188 
189 #define VAR_MASQ_EXCEPTIONS	"masquerade_exceptions"
190 #define DEF_MASQ_EXCEPTIONS	""
191 extern char *var_masq_exceptions;
192 
193 #define MASQ_CLASS_ENV_FROM	"envelope_sender"
194 #define MASQ_CLASS_ENV_RCPT	"envelope_recipient"
195 #define MASQ_CLASS_HDR_FROM	"header_sender"
196 #define MASQ_CLASS_HDR_RCPT	"header_recipient"
197 
198 #define VAR_MASQ_CLASSES	"masquerade_classes"
199 #define DEF_MASQ_CLASSES	MASQ_CLASS_ENV_FROM ", " \
200 				MASQ_CLASS_HDR_FROM ", " \
201 				MASQ_CLASS_HDR_RCPT
202 extern char *var_masq_classes;
203 
204  /*
205   * Intranet versus internet.
206   */
207 #define VAR_RELAYHOST		"relayhost"
208 #define DEF_RELAYHOST		""
209 extern char *var_relayhost;
210 
211 #define VAR_SND_RELAY_MAPS	"sender_dependent_relayhost_maps"
212 #define DEF_SND_RELAY_MAPS	""
213 extern char *var_snd_relay_maps;
214 
215 #define VAR_NULL_RELAY_MAPS_KEY	"empty_address_relayhost_maps_lookup_key"
216 #define DEF_NULL_RELAY_MAPS_KEY	"<>"
217 extern char *var_null_relay_maps_key;
218 
219 #define VAR_SMTP_FALLBACK	"smtp_fallback_relay"
220 #define DEF_SMTP_FALLBACK	"$fallback_relay"
221 #define VAR_LMTP_FALLBACK	"lmtp_fallback_relay"
222 #define DEF_LMTP_FALLBACK	""
223 #define DEF_FALLBACK_RELAY	""
224 extern char *var_fallback_relay;
225 
226 #define VAR_DISABLE_DNS		"disable_dns_lookups"
227 #define DEF_DISABLE_DNS		0
228 extern bool var_disable_dns;
229 
230 #define SMTP_DNS_SUPPORT_DISABLED	"disabled"
231 #define SMTP_DNS_SUPPORT_ENABLED	"enabled"
232 #define SMTP_DNS_SUPPORT_DNSSEC		"dnssec"
233 
234 #define VAR_SMTP_DNS_SUPPORT	"smtp_dns_support_level"
235 #define DEF_SMTP_DNS_SUPPORT	""
236 #define VAR_LMTP_DNS_SUPPORT	"lmtp_dns_support_level"
237 #define DEF_LMTP_DNS_SUPPORT	""
238 extern char *var_smtp_dns_support;
239 
240 #define SMTP_HOST_LOOKUP_DNS	"dns"
241 #define SMTP_HOST_LOOKUP_NATIVE	"native"
242 
243 #define VAR_SMTP_HOST_LOOKUP	"smtp_host_lookup"
244 #define DEF_SMTP_HOST_LOOKUP	SMTP_HOST_LOOKUP_DNS
245 #define VAR_LMTP_HOST_LOOKUP	"lmtp_host_lookup"
246 #define DEF_LMTP_HOST_LOOKUP	SMTP_HOST_LOOKUP_DNS
247 extern char *var_smtp_host_lookup;
248 
249 #define SMTP_DNS_RES_OPT_DEFNAMES "res_defnames"
250 #define SMTP_DNS_RES_OPT_DNSRCH	"res_dnsrch"
251 
252 #define VAR_SMTP_DNS_RES_OPT	"smtp_dns_resolver_options"
253 #define DEF_SMTP_DNS_RES_OPT	""
254 #define VAR_LMTP_DNS_RES_OPT	"lmtp_dns_resolver_options"
255 #define DEF_LMTP_DNS_RES_OPT	""
256 extern char *var_smtp_dns_res_opt;
257 
258 #define VAR_SMTP_MXADDR_LIMIT	"smtp_mx_address_limit"
259 #define DEF_SMTP_MXADDR_LIMIT	5
260 #define VAR_LMTP_MXADDR_LIMIT	"lmtp_mx_address_limit"
261 #define DEF_LMTP_MXADDR_LIMIT	5
262 extern int var_smtp_mxaddr_limit;
263 
264 #define VAR_SMTP_MXSESS_LIMIT	"smtp_mx_session_limit"
265 #define DEF_SMTP_MXSESS_LIMIT	2
266 #define VAR_LMTP_MXSESS_LIMIT	"lmtp_mx_session_limit"
267 #define DEF_LMTP_MXSESS_LIMIT	2
268 extern int var_smtp_mxsess_limit;
269 
270  /*
271   * Location of the mail queue directory tree.
272   */
273 #define VAR_QUEUE_DIR	"queue_directory"
274 #ifndef DEF_QUEUE_DIR
275 #define DEF_QUEUE_DIR	"/var/spool/postfix"
276 #endif
277 extern char *var_queue_dir;
278 
279  /*
280   * Location of command and daemon programs.
281   */
282 #define VAR_DAEMON_DIR		"daemon_directory"
283 #ifndef DEF_DAEMON_DIR
284 #define DEF_DAEMON_DIR		"/usr/libexec/postfix"
285 #endif
286 extern char *var_daemon_dir;
287 
288 #define VAR_COMMAND_DIR		"command_directory"
289 #ifndef DEF_COMMAND_DIR
290 #define DEF_COMMAND_DIR		"/usr/sbin"
291 #endif
292 extern char *var_command_dir;
293 
294  /*
295   * Location of PID files.
296   */
297 #define VAR_PID_DIR		"process_id_directory"
298 #ifndef DEF_PID_DIR
299 #define DEF_PID_DIR		"pid"
300 #endif
301 extern char *var_pid_dir;
302 
303  /*
304   * Location of writable data files.
305   */
306 #define VAR_DATA_DIR		"data_directory"
307 #ifndef DEF_DATA_DIR
308 #define DEF_DATA_DIR		"/var/db/postfix"
309 #endif
310 extern char *var_data_dir;
311 
312  /*
313   * Program startup time.
314   */
315 extern time_t var_starttime;
316 
317  /*
318   * Location of configuration files.
319   */
320 #define VAR_CONFIG_DIR		"config_directory"
321 #ifndef DEF_CONFIG_DIR
322 #define DEF_CONFIG_DIR		"/etc/postfix"
323 #endif
324 extern char *var_config_dir;
325 
326 #define VAR_CONFIG_DIRS		"alternate_config_directories"
327 #define DEF_CONFIG_DIRS		""
328 extern char *var_config_dirs;
329 
330 #define MAIN_CONF_FILE		"main.cf"
331 #define MASTER_CONF_FILE	"master.cf"
332 
333  /*
334   * Preferred type of indexed files. The DEF_DB_TYPE macro value is system
335   * dependent. It is defined in <sys_defs.h>.
336   */
337 #define VAR_DB_TYPE		"default_database_type"
338 extern char *var_db_type;
339 
340  /*
341   * What syslog facility to use. Unfortunately, something may have to be
342   * logged before parameters are read from the main.cf file. This logging
343   * will go the LOG_FACILITY facility specified below.
344   */
345 #define VAR_SYSLOG_FACILITY	"syslog_facility"
346 extern char *var_syslog_facility;
347 
348 #ifndef DEF_SYSLOG_FACILITY
349 #define DEF_SYSLOG_FACILITY	"mail"
350 #endif
351 
352 #ifndef LOG_FACILITY
353 #define LOG_FACILITY	LOG_MAIL
354 #endif
355 
356  /*
357   * Big brother: who receives a blank-carbon copy of all mail that enters
358   * this mail system.
359   */
360 #define VAR_ALWAYS_BCC		"always_bcc"
361 #define DEF_ALWAYS_BCC		""
362 extern char *var_always_bcc;
363 
364  /*
365   * What to put in the To: header when no recipients were disclosed.
366   *
367   * XXX 2822: When no recipient headers remain, a system should insert a Bcc:
368   * header without additional information. That is not so great given that
369   * MTAs routinely strip Bcc: headers from message headers.
370   */
371 #define VAR_RCPT_WITHELD	"undisclosed_recipients_header"
372 #define DEF_RCPT_WITHELD	""
373 extern char *var_rcpt_witheld;
374 
375  /*
376   * Add missing headers. Postfix 2.6 no longer adds headers to remote mail by
377   * default.
378   */
379 #define VAR_ALWAYS_ADD_HDRS	"always_add_missing_headers"
380 #define DEF_ALWAYS_ADD_HDRS	0
381 extern bool var_always_add_hdrs;
382 
383  /*
384   * Dropping message headers.
385   */
386 #define VAR_DROP_HDRS		"message_drop_headers"
387 #define DEF_DROP_HDRS		"bcc, content-length, resent-bcc, return-path"
388 extern char *var_drop_hdrs;
389 
390  /*
391   * Standards violation: allow/permit RFC 822-style addresses in SMTP
392   * commands.
393   */
394 #define VAR_STRICT_RFC821_ENV	"strict_rfc821_envelopes"
395 #define DEF_STRICT_RFC821_ENV	0
396 extern bool var_strict_rfc821_env;
397 
398  /*
399   * Standards violation: send "250 AUTH=list" in order to accomodate clients
400   * that implement an old version of the protocol.
401   */
402 #define VAR_BROKEN_AUTH_CLNTS	"broken_sasl_auth_clients"
403 #define DEF_BROKEN_AUTH_CLNTS	0
404 extern bool var_broken_auth_clients;
405 
406  /*
407   * Standards violation: disable VRFY.
408   */
409 #define VAR_DISABLE_VRFY_CMD	"disable_vrfy_command"
410 #define DEF_DISABLE_VRFY_CMD	0
411 extern bool var_disable_vrfy_cmd;
412 
413  /*
414   * trivial rewrite/resolve service: mapping tables.
415   */
416 #define VAR_VIRT_ALIAS_MAPS	"virtual_alias_maps"
417 #define DEF_VIRT_ALIAS_MAPS	"$virtual_maps"	/* Compatibility! */
418 extern char *var_virt_alias_maps;
419 
420 #define VAR_VIRT_ALIAS_DOMS	"virtual_alias_domains"
421 #define DEF_VIRT_ALIAS_DOMS	"$virtual_alias_maps"
422 extern char *var_virt_alias_doms;
423 
424 #define VAR_VIRT_ALIAS_CODE	"unknown_virtual_alias_reject_code"
425 #define DEF_VIRT_ALIAS_CODE	550
426 extern int var_virt_alias_code;
427 
428 #define VAR_CANONICAL_MAPS	"canonical_maps"
429 #define DEF_CANONICAL_MAPS	""
430 extern char *var_canonical_maps;
431 
432 #define VAR_SEND_CANON_MAPS	"sender_canonical_maps"
433 #define DEF_SEND_CANON_MAPS	""
434 extern char *var_send_canon_maps;
435 
436 #define VAR_RCPT_CANON_MAPS	"recipient_canonical_maps"
437 #define DEF_RCPT_CANON_MAPS	""
438 extern char *var_rcpt_canon_maps;
439 
440 #define CANON_CLASS_ENV_FROM	"envelope_sender"
441 #define CANON_CLASS_ENV_RCPT	"envelope_recipient"
442 #define CANON_CLASS_HDR_FROM	"header_sender"
443 #define CANON_CLASS_HDR_RCPT	"header_recipient"
444 
445 #define VAR_CANON_CLASSES	"canonical_classes"
446 #define DEF_CANON_CLASSES	CANON_CLASS_ENV_FROM ", " \
447 				CANON_CLASS_ENV_RCPT ", " \
448 				CANON_CLASS_HDR_FROM ", " \
449 				CANON_CLASS_HDR_RCPT
450 extern char *var_canon_classes;
451 
452 #define VAR_SEND_CANON_CLASSES	"sender_canonical_classes"
453 #define DEF_SEND_CANON_CLASSES	CANON_CLASS_ENV_FROM ", " \
454 				CANON_CLASS_HDR_FROM
455 extern char *var_send_canon_classes;
456 
457 #define VAR_RCPT_CANON_CLASSES	"recipient_canonical_classes"
458 #define DEF_RCPT_CANON_CLASSES	CANON_CLASS_ENV_RCPT ", " \
459 				CANON_CLASS_HDR_RCPT
460 extern char *var_rcpt_canon_classes;
461 
462 #define VAR_SEND_BCC_MAPS	"sender_bcc_maps"
463 #define DEF_SEND_BCC_MAPS	""
464 extern char *var_send_bcc_maps;
465 
466 #define VAR_RCPT_BCC_MAPS	"recipient_bcc_maps"
467 #define DEF_RCPT_BCC_MAPS	""
468 extern char *var_rcpt_bcc_maps;
469 
470 #define VAR_TRANSPORT_MAPS	"transport_maps"
471 #define DEF_TRANSPORT_MAPS	""
472 extern char *var_transport_maps;
473 
474 #define VAR_DEF_TRANSPORT	"default_transport"
475 #define DEF_DEF_TRANSPORT	MAIL_SERVICE_SMTP
476 extern char *var_def_transport;
477 
478 #define VAR_SND_DEF_XPORT_MAPS	"sender_dependent_" VAR_DEF_TRANSPORT "_maps"
479 #define DEF_SND_DEF_XPORT_MAPS	""
480 extern char *var_snd_def_xport_maps;
481 
482 #define VAR_NULL_DEF_XPORT_MAPS_KEY	"empty_address_" VAR_DEF_TRANSPORT "_maps_lookup_key"
483 #define DEF_NULL_DEF_XPORT_MAPS_KEY	"<>"
484 extern char *var_null_def_xport_maps_key;
485 
486  /*
487   * trivial rewrite/resolve service: rewriting controls.
488   */
489 #define VAR_SWAP_BANGPATH	"swap_bangpath"
490 #define DEF_SWAP_BANGPATH	1
491 extern bool var_swap_bangpath;
492 
493 #define VAR_APP_AT_MYORIGIN	"append_at_myorigin"
494 #define DEF_APP_AT_MYORIGIN	1
495 extern bool var_append_at_myorigin;
496 
497 #define VAR_APP_DOT_MYDOMAIN	"append_dot_mydomain"
498 #define DEF_APP_DOT_MYDOMAIN	"${{$compatibility_level} < {1} ? " \
499 				"{yes} : {no}}"
500 extern bool var_append_dot_mydomain;
501 
502 #define VAR_PERCENT_HACK	"allow_percent_hack"
503 #define DEF_PERCENT_HACK	1
504 extern bool var_percent_hack;
505 
506  /*
507   * Local delivery: alias databases.
508   */
509 #define VAR_ALIAS_MAPS		"alias_maps"
510 #ifdef HAS_NIS
511 #define DEF_ALIAS_MAPS		ALIAS_DB_MAP ", nis:mail.aliases"
512 #else
513 #define DEF_ALIAS_MAPS		ALIAS_DB_MAP
514 #endif
515 extern char *var_alias_maps;
516 
517  /*
518   * Local delivery: to BIFF or not to BIFF.
519   */
520 #define VAR_BIFF		"biff"
521 #define DEF_BIFF		1
522 extern bool var_biff;
523 
524  /*
525   * Local delivery: mail to files/commands.
526   */
527 #define VAR_ALLOW_COMMANDS	"allow_mail_to_commands"
528 #define DEF_ALLOW_COMMANDS	"alias, forward"
529 extern char *var_allow_commands;
530 
531 #define VAR_COMMAND_MAXTIME	"command_time_limit"
532 #define _MAXTIME		"_time_limit"
533 #define DEF_COMMAND_MAXTIME	"1000s"
534 extern int var_command_maxtime;
535 
536 #define VAR_ALLOW_FILES		"allow_mail_to_files"
537 #define DEF_ALLOW_FILES		"alias, forward"
538 extern char *var_allow_files;
539 
540 #define VAR_LOCAL_CMD_SHELL	"local_command_shell"
541 #define DEF_LOCAL_CMD_SHELL	""
542 extern char *var_local_cmd_shell;
543 
544 #define VAR_ALIAS_DB_MAP	"alias_database"
545 #define DEF_ALIAS_DB_MAP	ALIAS_DB_MAP	/* sys_defs.h */
546 extern char *var_alias_db_map;
547 
548 #define VAR_LUSER_RELAY		"luser_relay"
549 #define DEF_LUSER_RELAY		""
550 extern char *var_luser_relay;
551 
552  /*
553   * Local delivery: mailbox delivery.
554   */
555 #define VAR_MAIL_SPOOL_DIR	"mail_spool_directory"
556 #ifndef DEF_MAIL_SPOOL_DIR
557 #define DEF_MAIL_SPOOL_DIR	_PATH_MAILDIR
558 #endif
559 extern char *var_mail_spool_dir;
560 
561 #define VAR_HOME_MAILBOX	"home_mailbox"
562 #define DEF_HOME_MAILBOX	""
563 extern char *var_home_mailbox;
564 
565 #define VAR_MAILBOX_COMMAND	"mailbox_command"
566 #define DEF_MAILBOX_COMMAND	""
567 extern char *var_mailbox_command;
568 
569 #define VAR_MAILBOX_CMD_MAPS	"mailbox_command_maps"
570 #define DEF_MAILBOX_CMD_MAPS	""
571 extern char *var_mailbox_cmd_maps;
572 
573 #define VAR_MAILBOX_TRANSP	"mailbox_transport"
574 #define DEF_MAILBOX_TRANSP	""
575 extern char *var_mailbox_transport;
576 
577 #define VAR_MBOX_TRANSP_MAPS	"mailbox_transport_maps"
578 #define DEF_MBOX_TRANSP_MAPS	""
579 extern char *var_mbox_transp_maps;
580 
581 #define VAR_FALLBACK_TRANSP	"fallback_transport"
582 #define DEF_FALLBACK_TRANSP	""
583 extern char *var_fallback_transport;
584 
585 #define VAR_FBCK_TRANSP_MAPS	"fallback_transport_maps"
586 #define DEF_FBCK_TRANSP_MAPS	""
587 extern char *var_fbck_transp_maps;
588 
589  /*
590   * Local delivery: path to per-user forwarding file.
591   */
592 #define VAR_FORWARD_PATH	"forward_path"
593 #define DEF_FORWARD_PATH	"$home/.forward${recipient_delimiter}${extension}, $home/.forward"
594 extern char *var_forward_path;
595 
596  /*
597   * Local delivery: external command execution directory.
598   */
599 #define VAR_EXEC_DIRECTORY	"command_execution_directory"
600 #define DEF_EXEC_DIRECTORY	""
601 extern char *var_exec_directory;
602 
603 #define VAR_EXEC_EXP_FILTER	"execution_directory_expansion_filter"
604 #define DEF_EXEC_EXP_FILTER	"1234567890!@%-_=+:,./\
605 abcdefghijklmnopqrstuvwxyz\
606 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
607 extern char *var_exec_exp_filter;
608 
609  /*
610   * Mailbox locking. DEF_MAILBOX_LOCK is defined in sys_defs.h.
611   */
612 #define VAR_MAILBOX_LOCK	"mailbox_delivery_lock"
613 extern char *var_mailbox_lock;
614 
615  /*
616   * Mailbox size limit. This used to be enforced as a side effect of the way
617   * the message size limit is implemented, but that is not clean.
618   */
619 #define VAR_MAILBOX_LIMIT	"mailbox_size_limit"
620 #define DEF_MAILBOX_LIMIT	(DEF_MESSAGE_LIMIT * 5)
621 extern long var_mailbox_limit;
622 
623  /*
624   * Miscellaneous.
625   */
626 #define VAR_PROP_EXTENSION	"propagate_unmatched_extensions"
627 #define DEF_PROP_EXTENSION	"canonical, virtual"
628 extern char *var_prop_extension;
629 
630 #define VAR_RCPT_DELIM		"recipient_delimiter"
631 #define DEF_RCPT_DELIM		""
632 extern char *var_rcpt_delim;
633 
634 #define VAR_CMD_EXP_FILTER	"command_expansion_filter"
635 #define DEF_CMD_EXP_FILTER	"1234567890!@%-_=+:,./\
636 abcdefghijklmnopqrstuvwxyz\
637 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
638 extern char *var_cmd_exp_filter;
639 
640 #define VAR_FWD_EXP_FILTER	"forward_expansion_filter"
641 #define DEF_FWD_EXP_FILTER	"1234567890!@%-_=+:,./\
642 abcdefghijklmnopqrstuvwxyz\
643 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
644 extern char *var_fwd_exp_filter;
645 
646 #define VAR_DELIVER_HDR		"prepend_delivered_header"
647 #define DEF_DELIVER_HDR		"command, file, forward"
648 extern char *var_deliver_hdr;
649 
650  /*
651   * Cleanup: enable support for X-Original-To message headers, which are
652   * needed for multi-recipient mailboxes. When this is turned on, perform
653   * duplicate elimination on (original rcpt, rewritten rcpt) pairs, and
654   * generating non-empty original recipient records in the queue file.
655   */
656 #define VAR_ENABLE_ORCPT	"enable_original_recipient"
657 #define DEF_ENABLE_ORCPT	1
658 extern bool var_enable_orcpt;
659 
660 #define VAR_EXP_OWN_ALIAS	"expand_owner_alias"
661 #define DEF_EXP_OWN_ALIAS	0
662 extern bool var_exp_own_alias;
663 
664 #define VAR_STAT_HOME_DIR	"require_home_directory"
665 #define DEF_STAT_HOME_DIR	0
666 extern bool var_stat_home_dir;
667 
668  /*
669   * Cleanup server: maximal size of the duplicate expansion filter. By
670   * default, we do graceful degradation with huge mailing lists.
671   */
672 #define VAR_DUP_FILTER_LIMIT	"duplicate_filter_limit"
673 #define DEF_DUP_FILTER_LIMIT	1000
674 extern int var_dup_filter_limit;
675 
676  /*
677   * Transport Layer Security (TLS) protocol support.
678   */
679 #define VAR_TLS_MGR_SERVICE	"tlsmgr_service_name"
680 #define DEF_TLS_MGR_SERVICE	"tlsmgr"
681 extern char *var_tls_mgr_service;
682 
683 #define VAR_TLS_APPEND_DEF_CA	"tls_append_default_CA"
684 #define DEF_TLS_APPEND_DEF_CA	0	/* Postfix < 2.8 BC break */
685 extern bool var_tls_append_def_CA;
686 
687 #define VAR_TLS_RAND_EXCH_NAME	"tls_random_exchange_name"
688 #define DEF_TLS_RAND_EXCH_NAME	"${data_directory}/prng_exch"
689 extern char *var_tls_rand_exch_name;
690 
691 #define VAR_TLS_RAND_SOURCE	"tls_random_source"
692 #ifdef PREFERRED_RAND_SOURCE
693 #define DEF_TLS_RAND_SOURCE	PREFERRED_RAND_SOURCE
694 #else
695 #define DEF_TLS_RAND_SOURCE	""
696 #endif
697 extern char *var_tls_rand_source;
698 
699 #define VAR_TLS_RAND_BYTES	"tls_random_bytes"
700 #define DEF_TLS_RAND_BYTES	32
701 extern int var_tls_rand_bytes;
702 
703 #define VAR_TLS_DAEMON_RAND_BYTES	"tls_daemon_random_bytes"
704 #define DEF_TLS_DAEMON_RAND_BYTES	32
705 extern int var_tls_daemon_rand_bytes;
706 
707 #define VAR_TLS_RESEED_PERIOD	"tls_random_reseed_period"
708 #define DEF_TLS_RESEED_PERIOD	"3600s"
709 extern int var_tls_reseed_period;
710 
711 #define VAR_TLS_PRNG_UPD_PERIOD	"tls_random_prng_update_period"
712 #define DEF_TLS_PRNG_UPD_PERIOD "3600s"
713 extern int var_tls_prng_upd_period;
714 
715  /*
716   * Queue manager: relocated databases.
717   */
718 #define VAR_RELOCATED_MAPS		"relocated_maps"
719 #define DEF_RELOCATED_MAPS		""
720 extern char *var_relocated_maps;
721 
722  /*
723   * Queue manager: after each failed attempt the backoff time (how long we
724   * won't try this host in seconds) is doubled until it reaches the maximum.
725   * MAX_QUEUE_TIME limits the amount of time a message may spend in the mail
726   * queue before it is sent back.
727   */
728 #define VAR_QUEUE_RUN_DELAY	"queue_run_delay"
729 #define DEF_QUEUE_RUN_DELAY     "300s"
730 
731 #define VAR_MIN_BACKOFF_TIME	"minimal_backoff_time"
732 #define DEF_MIN_BACKOFF_TIME    DEF_QUEUE_RUN_DELAY
733 extern int var_min_backoff_time;
734 
735 #define VAR_MAX_BACKOFF_TIME	"maximal_backoff_time"
736 #define DEF_MAX_BACKOFF_TIME    "4000s"
737 extern int var_max_backoff_time;
738 
739 #define VAR_MAX_QUEUE_TIME	"maximal_queue_lifetime"
740 #define DEF_MAX_QUEUE_TIME	"5d"
741 extern int var_max_queue_time;
742 
743  /*
744   * XXX The default can't be $maximal_queue_lifetime, because that panics
745   * when a non-default maximal_queue_lifetime setting contains no time unit.
746   */
747 #define VAR_DSN_QUEUE_TIME	"bounce_queue_lifetime"
748 #define DEF_DSN_QUEUE_TIME	"5d"
749 extern int var_dsn_queue_time;
750 
751 #define VAR_DELAY_WARN_TIME	"delay_warning_time"
752 #define DEF_DELAY_WARN_TIME	"0h"
753 extern int var_delay_warn_time;
754 
755 #define VAR_DSN_DELAY_CLEARED	"confirm_delay_cleared"
756 #define DEF_DSN_DELAY_CLEARED	0
757 extern int var_dsn_delay_cleared;
758 
759  /*
760   * Queue manager: various in-core message and recipient limits.
761   */
762 #define VAR_QMGR_ACT_LIMIT	"qmgr_message_active_limit"
763 #define DEF_QMGR_ACT_LIMIT	20000
764 extern int var_qmgr_active_limit;
765 
766 #define VAR_QMGR_RCPT_LIMIT	"qmgr_message_recipient_limit"
767 #define DEF_QMGR_RCPT_LIMIT	20000
768 extern int var_qmgr_rcpt_limit;
769 
770 #define VAR_QMGR_MSG_RCPT_LIMIT	"qmgr_message_recipient_minimum"
771 #define DEF_QMGR_MSG_RCPT_LIMIT	10
772 extern int var_qmgr_msg_rcpt_limit;
773 
774 #define VAR_XPORT_RCPT_LIMIT	"default_recipient_limit"
775 #define _XPORT_RCPT_LIMIT	"_recipient_limit"
776 #define DEF_XPORT_RCPT_LIMIT	20000
777 extern int var_xport_rcpt_limit;
778 
779 #define VAR_STACK_RCPT_LIMIT	"default_extra_recipient_limit"
780 #define _STACK_RCPT_LIMIT	"_extra_recipient_limit"
781 #define DEF_STACK_RCPT_LIMIT	1000
782 extern int var_stack_rcpt_limit;
783 
784 #define VAR_XPORT_REFILL_LIMIT	"default_recipient_refill_limit"
785 #define _XPORT_REFILL_LIMIT	"_recipient_refill_limit"
786 #define DEF_XPORT_REFILL_LIMIT	100
787 extern int var_xport_refill_limit;
788 
789 #define VAR_XPORT_REFILL_DELAY	"default_recipient_refill_delay"
790 #define _XPORT_REFILL_DELAY	"_recipient_refill_delay"
791 #define DEF_XPORT_REFILL_DELAY	"5s"
792 extern int var_xport_refill_delay;
793 
794  /*
795   * Queue manager: default job scheduler parameters.
796   */
797 #define VAR_DELIVERY_SLOT_COST	"default_delivery_slot_cost"
798 #define _DELIVERY_SLOT_COST	"_delivery_slot_cost"
799 #define DEF_DELIVERY_SLOT_COST	5
800 extern int var_delivery_slot_cost;
801 
802 #define VAR_DELIVERY_SLOT_LOAN	"default_delivery_slot_loan"
803 #define _DELIVERY_SLOT_LOAN	"_delivery_slot_loan"
804 #define DEF_DELIVERY_SLOT_LOAN	3
805 extern int var_delivery_slot_loan;
806 
807 #define VAR_DELIVERY_SLOT_DISCOUNT	"default_delivery_slot_discount"
808 #define _DELIVERY_SLOT_DISCOUNT	"_delivery_slot_discount"
809 #define DEF_DELIVERY_SLOT_DISCOUNT	50
810 extern int var_delivery_slot_discount;
811 
812 #define VAR_MIN_DELIVERY_SLOTS	"default_minimum_delivery_slots"
813 #define _MIN_DELIVERY_SLOTS	"_minimum_delivery_slots"
814 #define DEF_MIN_DELIVERY_SLOTS	3
815 extern int var_min_delivery_slots;
816 
817 #define VAR_QMGR_FUDGE		"qmgr_fudge_factor"
818 #define DEF_QMGR_FUDGE		100
819 extern int var_qmgr_fudge;
820 
821  /*
822   * Queue manager: default destination concurrency levels.
823   */
824 #define VAR_INIT_DEST_CON	"initial_destination_concurrency"
825 #define _INIT_DEST_CON		"_initial_destination_concurrency"
826 #define DEF_INIT_DEST_CON	5
827 extern int var_init_dest_concurrency;
828 
829 #define VAR_DEST_CON_LIMIT	"default_destination_concurrency_limit"
830 #define _DEST_CON_LIMIT		"_destination_concurrency_limit"
831 #define DEF_DEST_CON_LIMIT	20
832 extern int var_dest_con_limit;
833 
834 #define VAR_LOCAL_CON_LIMIT	"local" _DEST_CON_LIMIT
835 #define DEF_LOCAL_CON_LIMIT	2
836 extern int var_local_con_lim;
837 
838  /*
839   * Queue manager: default number of recipients per transaction.
840   */
841 #define VAR_DEST_RCPT_LIMIT	"default_destination_recipient_limit"
842 #define _DEST_RCPT_LIMIT	"_destination_recipient_limit"
843 #define DEF_DEST_RCPT_LIMIT	50
844 extern int var_dest_rcpt_limit;
845 
846 #define VAR_LOCAL_RCPT_LIMIT	"local" _DEST_RCPT_LIMIT	/* XXX */
847 #define DEF_LOCAL_RCPT_LIMIT	1	/* XXX */
848 extern int var_local_rcpt_lim;
849 
850  /*
851   * Queue manager: default delay before retrying a dead transport.
852   */
853 #define VAR_XPORT_RETRY_TIME	"transport_retry_time"
854 #define DEF_XPORT_RETRY_TIME	"60s"
855 extern int var_transport_retry_time;
856 
857  /*
858   * Queue manager: what transports to defer delivery to.
859   */
860 #define VAR_DEFER_XPORTS	"defer_transports"
861 #define DEF_DEFER_XPORTS	""
862 extern char *var_defer_xports;
863 
864  /*
865   * Queue manager: how often to warn that a destination is clogging the
866   * active queue.
867   */
868 #define VAR_QMGR_CLOG_WARN_TIME	"qmgr_clog_warn_time"
869 #define DEF_QMGR_CLOG_WARN_TIME	"300s"
870 extern int var_qmgr_clog_warn_time;
871 
872  /*
873   * Master: default process count limit per mail subsystem.
874   */
875 #define VAR_PROC_LIMIT		"default_process_limit"
876 #define DEF_PROC_LIMIT		100
877 extern int var_proc_limit;
878 
879  /*
880   * Master: default time to wait after service is throttled.
881   */
882 #define VAR_THROTTLE_TIME	"service_throttle_time"
883 #define DEF_THROTTLE_TIME	"60s"
884 extern int var_throttle_time;
885 
886  /*
887   * Master: what master.cf services are turned off.
888   */
889 #define VAR_MASTER_DISABLE	"master_service_disable"
890 #define DEF_MASTER_DISABLE	""
891 extern char *var_master_disable;
892 
893  /*
894   * Any subsystem: default maximum number of clients serviced before a mail
895   * subsystem terminates (except queue manager).
896   */
897 #define VAR_MAX_USE		"max_use"
898 #define DEF_MAX_USE		100
899 extern int var_use_limit;
900 
901  /*
902   * Any subsystem: default amount of time a mail subsystem waits for a client
903   * connection (except queue manager).
904   */
905 #define VAR_MAX_IDLE		"max_idle"
906 #define DEF_MAX_IDLE		"100s"
907 extern int var_idle_limit;
908 
909  /*
910   * Any subsystem: default amount of time a mail subsystem waits for
911   * application events to drain.
912   */
913 #define VAR_EVENT_DRAIN		"application_event_drain_time"
914 #define DEF_EVENT_DRAIN		"100s"
915 extern int var_event_drain;
916 
917  /*
918   * Any subsystem: default amount of time a mail subsystem keeps an internal
919   * IPC connection before closing it because it is idle for too much time.
920   */
921 #define VAR_IPC_IDLE		"ipc_idle"
922 #define DEF_IPC_IDLE		"5s"
923 extern int var_ipc_idle_limit;
924 
925  /*
926   * Any subsystem: default amount of time a mail subsystem keeps an internal
927   * IPC connection before closing it because the connection has existed for
928   * too much time.
929   */
930 #define VAR_IPC_TTL		"ipc_ttl"
931 #define DEF_IPC_TTL		"1000s"
932 extern int var_ipc_ttl_limit;
933 
934  /*
935   * Any front-end subsystem: avoid running out of memory when someone sends
936   * infinitely-long requests or replies.
937   */
938 #define VAR_LINE_LIMIT		"line_length_limit"
939 #define DEF_LINE_LIMIT		2048
940 extern int var_line_limit;
941 
942  /*
943   * Specify what SMTP peers need verbose logging.
944   */
945 #define VAR_DEBUG_PEER_LIST	"debug_peer_list"
946 #define DEF_DEBUG_PEER_LIST	""
947 extern char *var_debug_peer_list;
948 
949 #define VAR_DEBUG_PEER_LEVEL	"debug_peer_level"
950 #define DEF_DEBUG_PEER_LEVEL	2
951 extern int var_debug_peer_level;
952 
953  /*
954   * Queue management: what queues are hashed behind a forest of
955   * subdirectories, and how deep the forest is.
956   */
957 #define VAR_HASH_QUEUE_NAMES	"hash_queue_names"
958 #define DEF_HASH_QUEUE_NAMES	"deferred, defer"
959 extern char *var_hash_queue_names;
960 
961 #define VAR_HASH_QUEUE_DEPTH	"hash_queue_depth"
962 #define DEF_HASH_QUEUE_DEPTH	1
963 extern int var_hash_queue_depth;
964 
965  /*
966   * Short queue IDs contain the time in microseconds and file inode number.
967   * Long queue IDs also contain the time in seconds.
968   */
969 #define VAR_LONG_QUEUE_IDS	"enable_long_queue_ids"
970 #define DEF_LONG_QUEUE_IDS	0
971 extern bool var_long_queue_ids;
972 
973  /*
974   * Multi-protocol support.
975   */
976 #define INET_PROTO_NAME_IPV4	"ipv4"
977 #define INET_PROTO_NAME_IPV6	"ipv6"
978 #define INET_PROTO_NAME_ALL	"all"
979 #define INET_PROTO_NAME_ANY	"any"
980 #define VAR_INET_PROTOCOLS	"inet_protocols"
981 extern char *var_inet_protocols;
982 
983  /*
984   * SMTP client. Timeouts inspired by RFC 1123. The SMTP recipient limit
985   * determines how many recipient addresses the SMTP client sends along with
986   * each message. Unfortunately, some mailers misbehave and disconnect (smap)
987   * when given more recipients than they are willing to handle.
988   *
989   * XXX 2821: A mail system is supposed to use EHLO instead of HELO, and to fall
990   * back to HELO if EHLO is not supported.
991   */
992 #define VAR_BESTMX_TRANSP	"best_mx_transport"
993 #define DEF_BESTMX_TRANSP	""
994 extern char *var_bestmx_transp;
995 
996 #define VAR_SMTP_CACHE_CONNT	"smtp_connection_cache_time_limit"
997 #define DEF_SMTP_CACHE_CONNT	"2s"
998 #define VAR_LMTP_CACHE_CONNT	"lmtp_connection_cache_time_limit"
999 #define DEF_LMTP_CACHE_CONNT	"2s"
1000 extern int var_smtp_cache_conn;
1001 
1002 #define VAR_SMTP_REUSE_COUNT	"smtp_connection_reuse_count_limit"
1003 #define DEF_SMTP_REUSE_COUNT	0
1004 #define VAR_LMTP_REUSE_COUNT	"lmtp_connection_reuse_count_limit"
1005 #define DEF_LMTP_REUSE_COUNT	0
1006 extern int var_smtp_reuse_count;
1007 
1008 #define VAR_SMTP_REUSE_TIME	"smtp_connection_reuse_time_limit"
1009 #define DEF_SMTP_REUSE_TIME	"300s"
1010 #define VAR_LMTP_REUSE_TIME	"lmtp_connection_reuse_time_limit"
1011 #define DEF_LMTP_REUSE_TIME	"300s"
1012 extern int var_smtp_reuse_time;
1013 
1014 #define VAR_SMTP_CACHE_DEST	"smtp_connection_cache_destinations"
1015 #define DEF_SMTP_CACHE_DEST	""
1016 #define VAR_LMTP_CACHE_DEST	"lmtp_connection_cache_destinations"
1017 #define DEF_LMTP_CACHE_DEST	""
1018 extern char *var_smtp_cache_dest;
1019 
1020 #define VAR_SMTP_CACHE_DEMAND	"smtp_connection_cache_on_demand"
1021 #ifndef DEF_SMTP_CACHE_DEMAND
1022 #define DEF_SMTP_CACHE_DEMAND	1
1023 #endif
1024 #define VAR_LMTP_CACHE_DEMAND	"lmtp_connection_cache_on_demand"
1025 #ifndef DEF_LMTP_CACHE_DEMAND
1026 #define DEF_LMTP_CACHE_DEMAND	1
1027 #endif
1028 extern bool var_smtp_cache_demand;
1029 
1030 #define VAR_SMTP_CONN_TMOUT	"smtp_connect_timeout"
1031 #define DEF_SMTP_CONN_TMOUT	"30s"
1032 extern int var_smtp_conn_tmout;
1033 
1034 #define VAR_SMTP_HELO_TMOUT	"smtp_helo_timeout"
1035 #define DEF_SMTP_HELO_TMOUT	"300s"
1036 #define VAR_LMTP_HELO_TMOUT	"lmtp_lhlo_timeout"
1037 #define DEF_LMTP_HELO_TMOUT	"300s"
1038 extern int var_smtp_helo_tmout;
1039 
1040 #define VAR_SMTP_XFWD_TMOUT	"smtp_xforward_timeout"
1041 #define DEF_SMTP_XFWD_TMOUT	"300s"
1042 extern int var_smtp_xfwd_tmout;
1043 
1044 #define VAR_SMTP_STARTTLS_TMOUT	"smtp_starttls_timeout"
1045 #define DEF_SMTP_STARTTLS_TMOUT	"300s"
1046 #define VAR_LMTP_STARTTLS_TMOUT	"lmtp_starttls_timeout"
1047 #define DEF_LMTP_STARTTLS_TMOUT	"300s"
1048 extern int var_smtp_starttls_tmout;
1049 
1050 #define VAR_SMTP_MAIL_TMOUT	"smtp_mail_timeout"
1051 #define DEF_SMTP_MAIL_TMOUT	"300s"
1052 extern int var_smtp_mail_tmout;
1053 
1054 #define VAR_SMTP_RCPT_TMOUT	"smtp_rcpt_timeout"
1055 #define DEF_SMTP_RCPT_TMOUT	"300s"
1056 extern int var_smtp_rcpt_tmout;
1057 
1058 #define VAR_SMTP_DATA0_TMOUT	"smtp_data_init_timeout"
1059 #define DEF_SMTP_DATA0_TMOUT	"120s"
1060 extern int var_smtp_data0_tmout;
1061 
1062 #define VAR_SMTP_DATA1_TMOUT	"smtp_data_xfer_timeout"
1063 #define DEF_SMTP_DATA1_TMOUT	"180s"
1064 extern int var_smtp_data1_tmout;
1065 
1066 #define VAR_SMTP_DATA2_TMOUT	"smtp_data_done_timeout"
1067 #define DEF_SMTP_DATA2_TMOUT	"600s"
1068 extern int var_smtp_data2_tmout;
1069 
1070 #define VAR_SMTP_RSET_TMOUT	"smtp_rset_timeout"
1071 #define DEF_SMTP_RSET_TMOUT	"20s"
1072 extern int var_smtp_rset_tmout;
1073 
1074 #define VAR_SMTP_QUIT_TMOUT	"smtp_quit_timeout"
1075 #define DEF_SMTP_QUIT_TMOUT	"300s"
1076 extern int var_smtp_quit_tmout;
1077 
1078 #define VAR_SMTP_QUOTE_821_ENV	"smtp_quote_rfc821_envelope"
1079 #define DEF_SMTP_QUOTE_821_ENV	1
1080 #define VAR_LMTP_QUOTE_821_ENV	"lmtp_quote_rfc821_envelope"
1081 #define DEF_LMTP_QUOTE_821_ENV	1
1082 extern int var_smtp_quote_821_env;
1083 
1084 #define VAR_SMTP_SKIP_5XX	"smtp_skip_5xx_greeting"
1085 #define DEF_SMTP_SKIP_5XX	1
1086 #define VAR_LMTP_SKIP_5XX	"lmtp_skip_5xx_greeting"
1087 #define DEF_LMTP_SKIP_5XX	1
1088 extern bool var_smtp_skip_5xx_greeting;
1089 
1090 #define VAR_IGN_MX_LOOKUP_ERR	"ignore_mx_lookup_error"
1091 #define DEF_IGN_MX_LOOKUP_ERR	0
1092 extern bool var_ign_mx_lookup_err;
1093 
1094 #define VAR_SMTP_SKIP_QUIT_RESP	"smtp_skip_quit_response"
1095 #define DEF_SMTP_SKIP_QUIT_RESP	1
1096 extern bool var_skip_quit_resp;
1097 
1098 #define VAR_SMTP_ALWAYS_EHLO	"smtp_always_send_ehlo"
1099 #ifdef RFC821_SYNTAX
1100 #define DEF_SMTP_ALWAYS_EHLO	0
1101 #else
1102 #define DEF_SMTP_ALWAYS_EHLO	1
1103 #endif
1104 extern bool var_smtp_always_ehlo;
1105 
1106 #define VAR_SMTP_NEVER_EHLO	"smtp_never_send_ehlo"
1107 #define DEF_SMTP_NEVER_EHLO	0
1108 extern bool var_smtp_never_ehlo;
1109 
1110 #define VAR_SMTP_RESP_FILTER	"smtp_reply_filter"
1111 #define DEF_SMTP_RESP_FILTER	""
1112 #define VAR_LMTP_RESP_FILTER	"lmtp_reply_filter"
1113 #define DEF_LMTP_RESP_FILTER	""
1114 extern char *var_smtp_resp_filter;
1115 
1116 #define VAR_SMTP_BIND_ADDR	"smtp_bind_address"
1117 #define DEF_SMTP_BIND_ADDR	""
1118 #define VAR_LMTP_BIND_ADDR	"lmtp_bind_address"
1119 #define DEF_LMTP_BIND_ADDR	""
1120 extern char *var_smtp_bind_addr;
1121 
1122 #define VAR_SMTP_BIND_ADDR6	"smtp_bind_address6"
1123 #define DEF_SMTP_BIND_ADDR6	""
1124 #define VAR_LMTP_BIND_ADDR6	"lmtp_bind_address6"
1125 #define DEF_LMTP_BIND_ADDR6	""
1126 extern char *var_smtp_bind_addr6;
1127 
1128 #define VAR_SMTP_HELO_NAME	"smtp_helo_name"
1129 #define DEF_SMTP_HELO_NAME	"$myhostname"
1130 #define VAR_LMTP_HELO_NAME	"lmtp_lhlo_name"
1131 #define DEF_LMTP_HELO_NAME	"$myhostname"
1132 extern char *var_smtp_helo_name;
1133 
1134 #define VAR_SMTP_RAND_ADDR	"smtp_randomize_addresses"
1135 #define DEF_SMTP_RAND_ADDR	1
1136 #define VAR_LMTP_RAND_ADDR	"lmtp_randomize_addresses"
1137 #define DEF_LMTP_RAND_ADDR	1
1138 extern bool var_smtp_rand_addr;
1139 
1140 #define VAR_SMTP_LINE_LIMIT	"smtp_line_length_limit"
1141 #define DEF_SMTP_LINE_LIMIT	998
1142 #define VAR_LMTP_LINE_LIMIT	"lmtp_line_length_limit"
1143 #define DEF_LMTP_LINE_LIMIT	998
1144 extern int var_smtp_line_limit;
1145 
1146 #define VAR_SMTP_PIX_THRESH	"smtp_pix_workaround_threshold_time"
1147 #define DEF_SMTP_PIX_THRESH	"500s"
1148 #define VAR_LMTP_PIX_THRESH	"lmtp_pix_workaround_threshold_time"
1149 #define DEF_LMTP_PIX_THRESH	"500s"
1150 extern int var_smtp_pix_thresh;
1151 
1152 #define VAR_SMTP_PIX_DELAY	"smtp_pix_workaround_delay_time"
1153 #define DEF_SMTP_PIX_DELAY	"10s"
1154 #define VAR_LMTP_PIX_DELAY	"lmtp_pix_workaround_delay_time"
1155 #define DEF_LMTP_PIX_DELAY	"10s"
1156 extern int var_smtp_pix_delay;
1157 
1158  /*
1159   * Courageous people may want to turn off PIX bug workarounds.
1160   */
1161 #define	PIX_BUG_DISABLE_ESMTP		"disable_esmtp"
1162 #define	PIX_BUG_DELAY_DOTCRLF		"delay_dotcrlf"
1163 #define VAR_SMTP_PIX_BUG_WORDS		"smtp_pix_workarounds"
1164 #define DEF_SMTP_PIX_BUG_WORDS		PIX_BUG_DISABLE_ESMTP "," \
1165 					PIX_BUG_DELAY_DOTCRLF
1166 #define VAR_LMTP_PIX_BUG_WORDS		"lmtp_pix_workarounds"
1167 #define DEF_LMTP_PIX_BUG_WORDS		DEF_SMTP_PIX_BUG_WORDS
1168 extern char *var_smtp_pix_bug_words;
1169 
1170 #define VAR_SMTP_PIX_BUG_MAPS		"smtp_pix_workaround_maps"
1171 #define DEF_SMTP_PIX_BUG_MAPS		""
1172 #define VAR_LMTP_PIX_BUG_MAPS		"lmtp_pix_workaround_maps"
1173 #define DEF_LMTP_PIX_BUG_MAPS		""
1174 extern char *var_smtp_pix_bug_maps;
1175 
1176 #define VAR_SMTP_DEFER_MXADDR	"smtp_defer_if_no_mx_address_found"
1177 #define DEF_SMTP_DEFER_MXADDR	0
1178 #define VAR_LMTP_DEFER_MXADDR	"lmtp_defer_if_no_mx_address_found"
1179 #define DEF_LMTP_DEFER_MXADDR	0
1180 extern bool var_smtp_defer_mxaddr;
1181 
1182 #define VAR_SMTP_SEND_XFORWARD	"smtp_send_xforward_command"
1183 #define DEF_SMTP_SEND_XFORWARD	0
1184 extern bool var_smtp_send_xforward;
1185 
1186 #define VAR_SMTP_GENERIC_MAPS	"smtp_generic_maps"
1187 #define DEF_SMTP_GENERIC_MAPS	""
1188 #define VAR_LMTP_GENERIC_MAPS	"lmtp_generic_maps"
1189 #define DEF_LMTP_GENERIC_MAPS	""
1190 extern char *var_smtp_generic_maps;
1191 
1192  /*
1193   * SMTP server. The soft error limit determines how many errors an SMTP
1194   * client may make before we start to slow down; the hard error limit
1195   * determines after how many client errors we disconnect.
1196   */
1197 #define VAR_SMTPD_BANNER	"smtpd_banner"
1198 #define DEF_SMTPD_BANNER	"$myhostname ESMTP $mail_name"
1199 extern char *var_smtpd_banner;
1200 
1201 #define VAR_SMTPD_TMOUT		"smtpd_timeout"
1202 #define DEF_SMTPD_TMOUT		"${stress?{10}:{300}}s"
1203 extern int var_smtpd_tmout;
1204 
1205 #define VAR_SMTPD_STARTTLS_TMOUT "smtpd_starttls_timeout"
1206 #define DEF_SMTPD_STARTTLS_TMOUT "${stress?{10}:{300}}s"
1207 extern int var_smtpd_starttls_tmout;
1208 
1209 #define VAR_SMTPD_RCPT_LIMIT	"smtpd_recipient_limit"
1210 #define DEF_SMTPD_RCPT_LIMIT	1000
1211 extern int var_smtpd_rcpt_limit;
1212 
1213 #define VAR_SMTPD_SOFT_ERLIM	"smtpd_soft_error_limit"
1214 #define DEF_SMTPD_SOFT_ERLIM	"10"
1215 extern int var_smtpd_soft_erlim;
1216 
1217 #define VAR_SMTPD_HARD_ERLIM	"smtpd_hard_error_limit"
1218 #define DEF_SMTPD_HARD_ERLIM	"${stress?{1}:{20}}"
1219 extern int var_smtpd_hard_erlim;
1220 
1221 #define VAR_SMTPD_ERR_SLEEP	"smtpd_error_sleep_time"
1222 #define DEF_SMTPD_ERR_SLEEP	"1s"
1223 extern int var_smtpd_err_sleep;
1224 
1225 #define VAR_SMTPD_JUNK_CMD	"smtpd_junk_command_limit"
1226 #define DEF_SMTPD_JUNK_CMD	"${stress?{1}:{100}}"
1227 extern int var_smtpd_junk_cmd_limit;
1228 
1229 #define VAR_SMTPD_RCPT_OVERLIM	"smtpd_recipient_overshoot_limit"
1230 #define DEF_SMTPD_RCPT_OVERLIM	1000
1231 extern int var_smtpd_rcpt_overlim;
1232 
1233 #define VAR_SMTPD_HIST_THRSH	"smtpd_history_flush_threshold"
1234 #define DEF_SMTPD_HIST_THRSH	100
1235 extern int var_smtpd_hist_thrsh;
1236 
1237 #define VAR_SMTPD_NOOP_CMDS	"smtpd_noop_commands"
1238 #define DEF_SMTPD_NOOP_CMDS	""
1239 extern char *var_smtpd_noop_cmds;
1240 
1241 #define VAR_SMTPD_FORBID_CMDS	"smtpd_forbidden_commands"
1242 #define DEF_SMTPD_FORBID_CMDS	"CONNECT GET POST"
1243 extern char *var_smtpd_forbid_cmds;
1244 
1245 #define VAR_SMTPD_CMD_FILTER	"smtpd_command_filter"
1246 #define DEF_SMTPD_CMD_FILTER	""
1247 extern char *var_smtpd_cmd_filter;
1248 
1249 #define VAR_SMTPD_TLS_WRAPPER	"smtpd_tls_wrappermode"
1250 #define DEF_SMTPD_TLS_WRAPPER	0
1251 extern bool var_smtpd_tls_wrappermode;
1252 
1253 #define VAR_SMTPD_TLS_LEVEL	"smtpd_tls_security_level"
1254 #define DEF_SMTPD_TLS_LEVEL	""
1255 extern char *var_smtpd_tls_level;
1256 
1257 #define VAR_SMTPD_USE_TLS	"smtpd_use_tls"
1258 #define DEF_SMTPD_USE_TLS	0
1259 extern bool var_smtpd_use_tls;
1260 
1261 #define VAR_SMTPD_ENFORCE_TLS	"smtpd_enforce_tls"
1262 #define DEF_SMTPD_ENFORCE_TLS	0
1263 extern bool var_smtpd_enforce_tls;
1264 
1265 #define VAR_SMTPD_TLS_AUTH_ONLY	"smtpd_tls_auth_only"
1266 #define DEF_SMTPD_TLS_AUTH_ONLY 0
1267 extern bool var_smtpd_tls_auth_only;
1268 
1269 #define VAR_SMTPD_TLS_ACERT	"smtpd_tls_ask_ccert"
1270 #define DEF_SMTPD_TLS_ACERT	0
1271 extern bool var_smtpd_tls_ask_ccert;
1272 
1273 #define VAR_SMTPD_TLS_RCERT	"smtpd_tls_req_ccert"
1274 #define DEF_SMTPD_TLS_RCERT	0
1275 extern bool var_smtpd_tls_req_ccert;
1276 
1277 #define VAR_SMTPD_TLS_CCERT_VD	"smtpd_tls_ccert_verifydepth"
1278 #define DEF_SMTPD_TLS_CCERT_VD	9
1279 extern int var_smtpd_tls_ccert_vd;
1280 
1281 #define VAR_SMTPD_TLS_CERT_FILE	"smtpd_tls_cert_file"
1282 #define DEF_SMTPD_TLS_CERT_FILE	""
1283 extern char *var_smtpd_tls_cert_file;
1284 
1285 #define VAR_SMTPD_TLS_KEY_FILE	"smtpd_tls_key_file"
1286 #define DEF_SMTPD_TLS_KEY_FILE	"$smtpd_tls_cert_file"
1287 extern char *var_smtpd_tls_key_file;
1288 
1289 #define VAR_SMTPD_TLS_DCERT_FILE "smtpd_tls_dcert_file"
1290 #define DEF_SMTPD_TLS_DCERT_FILE ""
1291 extern char *var_smtpd_tls_dcert_file;
1292 
1293 #define VAR_SMTPD_TLS_DKEY_FILE	"smtpd_tls_dkey_file"
1294 #define DEF_SMTPD_TLS_DKEY_FILE	"$smtpd_tls_dcert_file"
1295 extern char *var_smtpd_tls_dkey_file;
1296 
1297 #define VAR_SMTPD_TLS_ECCERT_FILE "smtpd_tls_eccert_file"
1298 #define DEF_SMTPD_TLS_ECCERT_FILE ""
1299 extern char *var_smtpd_tls_eccert_file;
1300 
1301 #define VAR_SMTPD_TLS_ECKEY_FILE	"smtpd_tls_eckey_file"
1302 #define DEF_SMTPD_TLS_ECKEY_FILE	"$smtpd_tls_eccert_file"
1303 extern char *var_smtpd_tls_eckey_file;
1304 
1305 #define VAR_SMTPD_TLS_CA_FILE	"smtpd_tls_CAfile"
1306 #define DEF_SMTPD_TLS_CA_FILE	""
1307 extern char *var_smtpd_tls_CAfile;
1308 
1309 #define VAR_SMTPD_TLS_CA_PATH	"smtpd_tls_CApath"
1310 #define DEF_SMTPD_TLS_CA_PATH	""
1311 extern char *var_smtpd_tls_CApath;
1312 
1313 #define VAR_SMTPD_TLS_PROTO		"smtpd_tls_protocols"
1314 #define DEF_SMTPD_TLS_PROTO		"!SSLv2, !SSLv3"
1315 extern char *var_smtpd_tls_proto;
1316 
1317 #define VAR_SMTPD_TLS_MAND_PROTO	"smtpd_tls_mandatory_protocols"
1318 #define DEF_SMTPD_TLS_MAND_PROTO	"!SSLv2, !SSLv3"
1319 extern char *var_smtpd_tls_mand_proto;
1320 
1321 #define VAR_SMTPD_TLS_CIPH	"smtpd_tls_ciphers"
1322 #define DEF_SMTPD_TLS_CIPH	"medium"
1323 extern char *var_smtpd_tls_ciph;
1324 
1325 #define VAR_SMTPD_TLS_MAND_CIPH	"smtpd_tls_mandatory_ciphers"
1326 #define DEF_SMTPD_TLS_MAND_CIPH	"medium"
1327 extern char *var_smtpd_tls_mand_ciph;
1328 
1329 #define VAR_SMTPD_TLS_EXCL_CIPH  "smtpd_tls_exclude_ciphers"
1330 #define DEF_SMTPD_TLS_EXCL_CIPH  ""
1331 extern char *var_smtpd_tls_excl_ciph;
1332 
1333 #define VAR_SMTPD_TLS_MAND_EXCL  "smtpd_tls_mandatory_exclude_ciphers"
1334 #define DEF_SMTPD_TLS_MAND_EXCL  ""
1335 extern char *var_smtpd_tls_mand_excl;
1336 
1337 #define VAR_SMTPD_TLS_FPT_DGST	"smtpd_tls_fingerprint_digest"
1338 #define DEF_SMTPD_TLS_FPT_DGST	"md5"
1339 extern char *var_smtpd_tls_fpt_dgst;
1340 
1341 #define VAR_SMTPD_TLS_512_FILE	"smtpd_tls_dh512_param_file"
1342 #define DEF_SMTPD_TLS_512_FILE	""
1343 extern char *var_smtpd_tls_dh512_param_file;
1344 
1345 #define VAR_SMTPD_TLS_1024_FILE	"smtpd_tls_dh1024_param_file"
1346 #define DEF_SMTPD_TLS_1024_FILE	""
1347 extern char *var_smtpd_tls_dh1024_param_file;
1348 
1349 #define VAR_SMTPD_TLS_EECDH	"smtpd_tls_eecdh_grade"
1350 #define DEF_SMTPD_TLS_EECDH	"strong"
1351 extern char *var_smtpd_tls_eecdh;
1352 
1353 #define VAR_SMTPD_TLS_LOGLEVEL	"smtpd_tls_loglevel"
1354 #define DEF_SMTPD_TLS_LOGLEVEL	"0"
1355 extern char *var_smtpd_tls_loglevel;
1356 
1357 #define VAR_SMTPD_TLS_RECHEAD	"smtpd_tls_received_header"
1358 #define DEF_SMTPD_TLS_RECHEAD	0
1359 extern bool var_smtpd_tls_received_header;
1360 
1361 #define VAR_SMTPD_TLS_SCACHE_DB	"smtpd_tls_session_cache_database"
1362 #define DEF_SMTPD_TLS_SCACHE_DB	""
1363 extern char *var_smtpd_tls_scache_db;
1364 
1365 #define MAX_SMTPD_TLS_SCACHETIME	8640000
1366 #define VAR_SMTPD_TLS_SCACHTIME	"smtpd_tls_session_cache_timeout"
1367 #define DEF_SMTPD_TLS_SCACHTIME	"3600s"
1368 extern int var_smtpd_tls_scache_timeout;
1369 
1370 #define VAR_SMTPD_TLS_SET_SESSID	"smtpd_tls_always_issue_session_ids"
1371 #define DEF_SMTPD_TLS_SET_SESSID	1
1372 extern bool var_smtpd_tls_set_sessid;
1373 
1374 #define VAR_SMTPD_DELAY_OPEN	"smtpd_delay_open_until_valid_rcpt"
1375 #define DEF_SMTPD_DELAY_OPEN	1
1376 extern bool var_smtpd_delay_open;
1377 
1378 #define VAR_SMTP_TLS_PER_SITE	"smtp_tls_per_site"
1379 #define DEF_SMTP_TLS_PER_SITE	""
1380 #define VAR_LMTP_TLS_PER_SITE	"lmtp_tls_per_site"
1381 #define DEF_LMTP_TLS_PER_SITE	""
1382 extern char *var_smtp_tls_per_site;
1383 
1384 #define VAR_SMTP_USE_TLS	"smtp_use_tls"
1385 #define DEF_SMTP_USE_TLS	0
1386 #define VAR_LMTP_USE_TLS	"lmtp_use_tls"
1387 #define DEF_LMTP_USE_TLS	0
1388 extern bool var_smtp_use_tls;
1389 
1390 #define VAR_SMTP_ENFORCE_TLS	"smtp_enforce_tls"
1391 #define DEF_SMTP_ENFORCE_TLS	0
1392 #define VAR_LMTP_ENFORCE_TLS	"lmtp_enforce_tls"
1393 #define DEF_LMTP_ENFORCE_TLS	0
1394 extern bool var_smtp_enforce_tls;
1395 
1396 #define VAR_SMTP_TLS_ENFORCE_PN	"smtp_tls_enforce_peername"
1397 #define DEF_SMTP_TLS_ENFORCE_PN	1
1398 #define VAR_LMTP_TLS_ENFORCE_PN	"lmtp_tls_enforce_peername"
1399 #define DEF_LMTP_TLS_ENFORCE_PN	1
1400 extern bool var_smtp_tls_enforce_peername;
1401 
1402 #define VAR_SMTP_TLS_WRAPPER	"smtp_tls_wrappermode"
1403 #define DEF_SMTP_TLS_WRAPPER	0
1404 #define VAR_LMTP_TLS_WRAPPER	"lmtp_tls_wrappermode"
1405 #define DEF_LMTP_TLS_WRAPPER	0
1406 extern bool var_smtp_tls_wrappermode;
1407 
1408 #define VAR_SMTP_TLS_LEVEL	"smtp_tls_security_level"
1409 #define DEF_SMTP_TLS_LEVEL	""
1410 #define VAR_LMTP_TLS_LEVEL	"lmtp_tls_security_level"
1411 #define DEF_LMTP_TLS_LEVEL	""
1412 extern char *var_smtp_tls_level;
1413 
1414 #define VAR_SMTP_TLS_SCERT_VD	"smtp_tls_scert_verifydepth"
1415 #define DEF_SMTP_TLS_SCERT_VD	9
1416 #define VAR_LMTP_TLS_SCERT_VD	"lmtp_tls_scert_verifydepth"
1417 #define DEF_LMTP_TLS_SCERT_VD	9
1418 extern int var_smtp_tls_scert_vd;
1419 
1420 #define VAR_SMTP_TLS_CERT_FILE	"smtp_tls_cert_file"
1421 #define DEF_SMTP_TLS_CERT_FILE	""
1422 #define VAR_LMTP_TLS_CERT_FILE	"lmtp_tls_cert_file"
1423 #define DEF_LMTP_TLS_CERT_FILE	""
1424 extern char *var_smtp_tls_cert_file;
1425 
1426 #define VAR_SMTP_TLS_KEY_FILE	"smtp_tls_key_file"
1427 #define DEF_SMTP_TLS_KEY_FILE	"$smtp_tls_cert_file"
1428 #define VAR_LMTP_TLS_KEY_FILE	"lmtp_tls_key_file"
1429 #define DEF_LMTP_TLS_KEY_FILE	"$lmtp_tls_cert_file"
1430 extern char *var_smtp_tls_key_file;
1431 
1432 #define VAR_SMTP_TLS_DCERT_FILE "smtp_tls_dcert_file"
1433 #define DEF_SMTP_TLS_DCERT_FILE ""
1434 #define VAR_LMTP_TLS_DCERT_FILE "lmtp_tls_dcert_file"
1435 #define DEF_LMTP_TLS_DCERT_FILE ""
1436 extern char *var_smtp_tls_dcert_file;
1437 
1438 #define VAR_SMTP_TLS_DKEY_FILE	"smtp_tls_dkey_file"
1439 #define DEF_SMTP_TLS_DKEY_FILE	"$smtp_tls_dcert_file"
1440 #define VAR_LMTP_TLS_DKEY_FILE	"lmtp_tls_dkey_file"
1441 #define DEF_LMTP_TLS_DKEY_FILE	"$lmtp_tls_dcert_file"
1442 extern char *var_smtp_tls_dkey_file;
1443 
1444 #define VAR_SMTP_TLS_ECCERT_FILE "smtp_tls_eccert_file"
1445 #define DEF_SMTP_TLS_ECCERT_FILE ""
1446 #define VAR_LMTP_TLS_ECCERT_FILE "lmtp_tls_eccert_file"
1447 #define DEF_LMTP_TLS_ECCERT_FILE ""
1448 extern char *var_smtp_tls_eccert_file;
1449 
1450 #define VAR_SMTP_TLS_ECKEY_FILE	"smtp_tls_eckey_file"
1451 #define DEF_SMTP_TLS_ECKEY_FILE	"$smtp_tls_eccert_file"
1452 #define VAR_LMTP_TLS_ECKEY_FILE	"lmtp_tls_eckey_file"
1453 #define DEF_LMTP_TLS_ECKEY_FILE	"$lmtp_tls_eccert_file"
1454 extern char *var_smtp_tls_eckey_file;
1455 
1456 #define VAR_SMTP_TLS_CA_FILE	"smtp_tls_CAfile"
1457 #define DEF_SMTP_TLS_CA_FILE	""
1458 #define VAR_LMTP_TLS_CA_FILE	"lmtp_tls_CAfile"
1459 #define DEF_LMTP_TLS_CA_FILE	""
1460 extern char *var_smtp_tls_CAfile;
1461 
1462 #define VAR_SMTP_TLS_CA_PATH	"smtp_tls_CApath"
1463 #define DEF_SMTP_TLS_CA_PATH	""
1464 #define VAR_LMTP_TLS_CA_PATH	"lmtp_tls_CApath"
1465 #define DEF_LMTP_TLS_CA_PATH	""
1466 extern char *var_smtp_tls_CApath;
1467 
1468 #define VAR_SMTP_TLS_CIPH	"smtp_tls_ciphers"
1469 #define DEF_SMTP_TLS_CIPH	"medium"
1470 #define VAR_LMTP_TLS_CIPH	"lmtp_tls_ciphers"
1471 #define DEF_LMTP_TLS_CIPH	"medium"
1472 extern char *var_smtp_tls_ciph;
1473 
1474 #define VAR_SMTP_TLS_MAND_CIPH	"smtp_tls_mandatory_ciphers"
1475 #define DEF_SMTP_TLS_MAND_CIPH	"medium"
1476 #define VAR_LMTP_TLS_MAND_CIPH	"lmtp_tls_mandatory_ciphers"
1477 #define DEF_LMTP_TLS_MAND_CIPH	"medium"
1478 extern char *var_smtp_tls_mand_ciph;
1479 
1480 #define VAR_SMTP_TLS_EXCL_CIPH  "smtp_tls_exclude_ciphers"
1481 #define DEF_SMTP_TLS_EXCL_CIPH  ""
1482 #define VAR_LMTP_TLS_EXCL_CIPH  "lmtp_tls_exclude_ciphers"
1483 #define DEF_LMTP_TLS_EXCL_CIPH  ""
1484 extern char *var_smtp_tls_excl_ciph;
1485 
1486 #define VAR_SMTP_TLS_MAND_EXCL  "smtp_tls_mandatory_exclude_ciphers"
1487 #define DEF_SMTP_TLS_MAND_EXCL  ""
1488 #define VAR_LMTP_TLS_MAND_EXCL  "lmtp_tls_mandatory_exclude_ciphers"
1489 #define DEF_LMTP_TLS_MAND_EXCL  ""
1490 extern char *var_smtp_tls_mand_excl;
1491 
1492 #define VAR_SMTP_TLS_FPT_DGST	"smtp_tls_fingerprint_digest"
1493 #define DEF_SMTP_TLS_FPT_DGST	"md5"
1494 #define VAR_LMTP_TLS_FPT_DGST	"lmtp_tls_fingerprint_digest"
1495 #define DEF_LMTP_TLS_FPT_DGST	"md5"
1496 extern char *var_smtp_tls_fpt_dgst;
1497 
1498 #define VAR_SMTP_TLS_TAFILE	"smtp_tls_trust_anchor_file"
1499 #define DEF_SMTP_TLS_TAFILE	""
1500 #define VAR_LMTP_TLS_TAFILE	"lmtp_tls_trust_anchor_file"
1501 #define DEF_LMTP_TLS_TAFILE	""
1502 extern char *var_smtp_tls_tafile;
1503 
1504 #define VAR_SMTP_TLS_LOGLEVEL	"smtp_tls_loglevel"
1505 #define DEF_SMTP_TLS_LOGLEVEL	"0"
1506 #define VAR_LMTP_TLS_LOGLEVEL	"lmtp_tls_loglevel"
1507 #define DEF_LMTP_TLS_LOGLEVEL	"0"
1508 extern char *var_smtp_tls_loglevel;	/* In smtp(8) and tlsmgr(8) */
1509 extern char *var_lmtp_tls_loglevel;	/* In tlsmgr(8) */
1510 
1511 #define VAR_SMTP_TLS_NOTEOFFER	"smtp_tls_note_starttls_offer"
1512 #define DEF_SMTP_TLS_NOTEOFFER	0
1513 #define VAR_LMTP_TLS_NOTEOFFER	"lmtp_tls_note_starttls_offer"
1514 #define DEF_LMTP_TLS_NOTEOFFER	0
1515 extern bool var_smtp_tls_note_starttls_offer;
1516 
1517 #define VAR_SMTP_TLS_SCACHE_DB	"smtp_tls_session_cache_database"
1518 #define DEF_SMTP_TLS_SCACHE_DB	""
1519 #define VAR_LMTP_TLS_SCACHE_DB	"lmtp_tls_session_cache_database"
1520 #define DEF_LMTP_TLS_SCACHE_DB	""
1521 extern char *var_smtp_tls_scache_db;
1522 extern char *var_lmtp_tls_scache_db;
1523 
1524 #define MAX_SMTP_TLS_SCACHETIME	8640000
1525 #define VAR_SMTP_TLS_SCACHTIME	"smtp_tls_session_cache_timeout"
1526 #define DEF_SMTP_TLS_SCACHTIME	"3600s"
1527 #define MAX_LMTP_TLS_SCACHETIME	8640000
1528 #define VAR_LMTP_TLS_SCACHTIME	"lmtp_tls_session_cache_timeout"
1529 #define DEF_LMTP_TLS_SCACHTIME	"3600s"
1530 extern int var_smtp_tls_scache_timeout;
1531 extern int var_lmtp_tls_scache_timeout;
1532 
1533 #define VAR_SMTP_TLS_POLICY	"smtp_tls_policy_maps"
1534 #define DEF_SMTP_TLS_POLICY	""
1535 #define VAR_LMTP_TLS_POLICY	"lmtp_tls_policy_maps"
1536 #define DEF_LMTP_TLS_POLICY	""
1537 extern char *var_smtp_tls_policy;
1538 
1539 #define VAR_SMTP_TLS_PROTO	"smtp_tls_protocols"
1540 #define DEF_SMTP_TLS_PROTO	"!SSLv2, !SSLv3"
1541 #define VAR_LMTP_TLS_PROTO	"lmtp_tls_protocols"
1542 #define DEF_LMTP_TLS_PROTO	"!SSLv2, !SSLv3"
1543 extern char *var_smtp_tls_proto;
1544 
1545 #define VAR_SMTP_TLS_MAND_PROTO	"smtp_tls_mandatory_protocols"
1546 #define DEF_SMTP_TLS_MAND_PROTO	"!SSLv2, !SSLv3"
1547 #define VAR_LMTP_TLS_MAND_PROTO	"lmtp_tls_mandatory_protocols"
1548 #define DEF_LMTP_TLS_MAND_PROTO	"!SSLv2, !SSLv3"
1549 extern char *var_smtp_tls_mand_proto;
1550 
1551 #define VAR_SMTP_TLS_VFY_CMATCH	"smtp_tls_verify_cert_match"
1552 #define DEF_SMTP_TLS_VFY_CMATCH	"hostname"
1553 #define VAR_LMTP_TLS_VFY_CMATCH	"lmtp_tls_verify_cert_match"
1554 #define DEF_LMTP_TLS_VFY_CMATCH	"hostname"
1555 extern char *var_smtp_tls_vfy_cmatch;
1556 
1557  /*
1558   * There are no MX lookups for LMTP, so verify == secure
1559   */
1560 #define VAR_SMTP_TLS_SEC_CMATCH	"smtp_tls_secure_cert_match"
1561 #define DEF_SMTP_TLS_SEC_CMATCH	"nexthop, dot-nexthop"
1562 #define VAR_LMTP_TLS_SEC_CMATCH	"lmtp_tls_secure_cert_match"
1563 #define DEF_LMTP_TLS_SEC_CMATCH	"nexthop"
1564 extern char *var_smtp_tls_sec_cmatch;
1565 
1566 
1567 #define VAR_SMTP_TLS_FPT_CMATCH "smtp_tls_fingerprint_cert_match"
1568 #define DEF_SMTP_TLS_FPT_CMATCH ""
1569 #define VAR_LMTP_TLS_FPT_CMATCH "lmtp_tls_fingerprint_cert_match"
1570 #define DEF_LMTP_TLS_FPT_CMATCH ""
1571 extern char *var_smtp_tls_fpt_cmatch;
1572 
1573 #define VAR_SMTP_TLS_BLK_EARLY_MAIL_REPLY "smtp_tls_block_early_mail_reply"
1574 #define DEF_SMTP_TLS_BLK_EARLY_MAIL_REPLY 0
1575 #define VAR_LMTP_TLS_BLK_EARLY_MAIL_REPLY "lmtp_tls_block_early_mail_reply"
1576 #define DEF_LMTP_TLS_BLK_EARLY_MAIL_REPLY 0
1577 extern bool var_smtp_tls_blk_early_mail_reply;
1578 
1579 #define VAR_SMTP_TLS_FORCE_TLSA "smtp_tls_force_insecure_host_tlsa_lookup"
1580 #define DEF_SMTP_TLS_FORCE_TLSA 0
1581 #define VAR_LMTP_TLS_FORCE_TLSA "lmtp_tls_force_insecure_host_tlsa_lookup"
1582 #define DEF_LMTP_TLS_FORCE_TLSA 0
1583 extern bool var_smtp_tls_force_tlsa;
1584 
1585  /* SMTP only */
1586 #define VAR_SMTP_TLS_INSECURE_MX_POLICY "smtp_tls_dane_insecure_mx_policy"
1587 #define DEF_SMTP_TLS_INSECURE_MX_POLICY "dane"
1588 extern char *var_smtp_tls_insecure_mx_policy;
1589 
1590  /*
1591   * SASL authentication support, SMTP server side.
1592   */
1593 #define VAR_SMTPD_SASL_ENABLE	"smtpd_sasl_auth_enable"
1594 #define DEF_SMTPD_SASL_ENABLE	0
1595 extern bool var_smtpd_sasl_enable;
1596 
1597 #define VAR_SMTPD_SASL_AUTH_HDR	"smtpd_sasl_authenticated_header"
1598 #define DEF_SMTPD_SASL_AUTH_HDR	0
1599 extern bool var_smtpd_sasl_auth_hdr;
1600 
1601 #define VAR_SMTPD_SASL_OPTS	"smtpd_sasl_security_options"
1602 #define DEF_SMTPD_SASL_OPTS	"noanonymous"
1603 extern char *var_smtpd_sasl_opts;
1604 
1605 #define VAR_SMTPD_SASL_PATH	"smtpd_sasl_path"
1606 #define DEF_SMTPD_SASL_PATH	"smtpd"
1607 extern char *var_smtpd_sasl_path;
1608 
1609 #define VAR_SMTPD_SASL_SERVICE	"smtpd_sasl_service"
1610 #define DEF_SMTPD_SASL_SERVICE	"smtp"
1611 extern char *var_smtpd_sasl_service;
1612 
1613 #define VAR_CYRUS_CONF_PATH	"cyrus_sasl_config_path"
1614 #define DEF_CYRUS_CONF_PATH	""
1615 extern char *var_cyrus_conf_path;
1616 
1617 #define VAR_SMTPD_SASL_TLS_OPTS	"smtpd_sasl_tls_security_options"
1618 #define DEF_SMTPD_SASL_TLS_OPTS	"$" VAR_SMTPD_SASL_OPTS
1619 extern char *var_smtpd_sasl_tls_opts;
1620 
1621 #define VAR_SMTPD_SASL_REALM	"smtpd_sasl_local_domain"
1622 #define DEF_SMTPD_SASL_REALM	""
1623 extern char *var_smtpd_sasl_realm;
1624 
1625 #define VAR_SMTPD_SASL_EXCEPTIONS_NETWORKS	"smtpd_sasl_exceptions_networks"
1626 #define DEF_SMTPD_SASL_EXCEPTIONS_NETWORKS	""
1627 extern char *var_smtpd_sasl_exceptions_networks;
1628 
1629 #ifndef DEF_SERVER_SASL_TYPE
1630 #define DEF_SERVER_SASL_TYPE	"cyrus"
1631 #endif
1632 
1633 #define VAR_SMTPD_SASL_TYPE	"smtpd_sasl_type"
1634 #define DEF_SMTPD_SASL_TYPE	DEF_SERVER_SASL_TYPE
1635 extern char *var_smtpd_sasl_type;
1636 
1637 #define VAR_SMTPD_SND_AUTH_MAPS	"smtpd_sender_login_maps"
1638 #define DEF_SMTPD_SND_AUTH_MAPS	""
1639 extern char *var_smtpd_snd_auth_maps;
1640 
1641 #define REJECT_SENDER_LOGIN_MISMATCH	"reject_sender_login_mismatch"
1642 #define REJECT_AUTH_SENDER_LOGIN_MISMATCH \
1643 				"reject_authenticated_sender_login_mismatch"
1644 #define REJECT_KNOWN_SENDER_LOGIN_MISMATCH \
1645 				"reject_known_sender_login_mismatch"
1646 #define REJECT_UNAUTH_SENDER_LOGIN_MISMATCH \
1647 				"reject_unauthenticated_sender_login_mismatch"
1648 
1649  /*
1650   * SASL authentication support, SMTP client side.
1651   */
1652 #define VAR_SMTP_SASL_ENABLE	"smtp_sasl_auth_enable"
1653 #define DEF_SMTP_SASL_ENABLE	0
1654 extern bool var_smtp_sasl_enable;
1655 
1656 #define VAR_SMTP_SASL_PASSWD	"smtp_sasl_password_maps"
1657 #define DEF_SMTP_SASL_PASSWD	""
1658 extern char *var_smtp_sasl_passwd;
1659 
1660 #define VAR_SMTP_SASL_OPTS	"smtp_sasl_security_options"
1661 #define DEF_SMTP_SASL_OPTS	"noplaintext, noanonymous"
1662 extern char *var_smtp_sasl_opts;
1663 
1664 #define VAR_SMTP_SASL_PATH	"smtp_sasl_path"
1665 #define DEF_SMTP_SASL_PATH	""
1666 extern char *var_smtp_sasl_path;
1667 
1668 #define VAR_SMTP_SASL_MECHS	"smtp_sasl_mechanism_filter"
1669 #define DEF_SMTP_SASL_MECHS	""
1670 #define VAR_LMTP_SASL_MECHS	"lmtp_sasl_mechanism_filter"
1671 #define DEF_LMTP_SASL_MECHS	""
1672 extern char *var_smtp_sasl_mechs;
1673 
1674 #ifndef DEF_CLIENT_SASL_TYPE
1675 #define DEF_CLIENT_SASL_TYPE	"cyrus"
1676 #endif
1677 
1678 #define VAR_SMTP_SASL_TYPE	"smtp_sasl_type"
1679 #define DEF_SMTP_SASL_TYPE	DEF_CLIENT_SASL_TYPE
1680 #define VAR_LMTP_SASL_TYPE	"lmtp_sasl_type"
1681 #define DEF_LMTP_SASL_TYPE	DEF_CLIENT_SASL_TYPE
1682 extern char *var_smtp_sasl_type;
1683 
1684 #define VAR_SMTP_SASL_TLS_OPTS	"smtp_sasl_tls_security_options"
1685 #define DEF_SMTP_SASL_TLS_OPTS	"$" VAR_SMTP_SASL_OPTS
1686 #define VAR_LMTP_SASL_TLS_OPTS	"lmtp_sasl_tls_security_options"
1687 #define DEF_LMTP_SASL_TLS_OPTS	"$" VAR_LMTP_SASL_OPTS
1688 extern char *var_smtp_sasl_tls_opts;
1689 
1690 #define VAR_SMTP_SASL_TLSV_OPTS	"smtp_sasl_tls_verified_security_options"
1691 #define DEF_SMTP_SASL_TLSV_OPTS	"$" VAR_SMTP_SASL_TLS_OPTS
1692 #define VAR_LMTP_SASL_TLSV_OPTS	"lmtp_sasl_tls_verified_security_options"
1693 #define DEF_LMTP_SASL_TLSV_OPTS	"$" VAR_LMTP_SASL_TLS_OPTS
1694 extern char *var_smtp_sasl_tlsv_opts;
1695 
1696 #define VAR_SMTP_DUMMY_MAIL_AUTH	"smtp_send_dummy_mail_auth"
1697 #define DEF_SMTP_DUMMY_MAIL_AUTH	0
1698 extern bool var_smtp_dummy_mail_auth;
1699 
1700  /*
1701   * LMTP server. The soft error limit determines how many errors an LMTP
1702   * client may make before we start to slow down; the hard error limit
1703   * determines after how many client errors we disconnect.
1704   */
1705 #define VAR_LMTPD_BANNER	"lmtpd_banner"
1706 #define DEF_LMTPD_BANNER	"$myhostname $mail_name"
1707 extern char *var_lmtpd_banner;
1708 
1709 #define VAR_LMTPD_TMOUT		"lmtpd_timeout"
1710 #define DEF_LMTPD_TMOUT		"300s"
1711 extern int var_lmtpd_tmout;
1712 
1713 #define VAR_LMTPD_RCPT_LIMIT	"lmtpd_recipient_limit"
1714 #define DEF_LMTPD_RCPT_LIMIT	1000
1715 extern int var_lmtpd_rcpt_limit;
1716 
1717 #define VAR_LMTPD_SOFT_ERLIM	"lmtpd_soft_error_limit"
1718 #define DEF_LMTPD_SOFT_ERLIM	10
1719 extern int var_lmtpd_soft_erlim;
1720 
1721 #define VAR_LMTPD_HARD_ERLIM	"lmtpd_hard_error_limit"
1722 #define DEF_LMTPD_HARD_ERLIM	100
1723 extern int var_lmtpd_hard_erlim;
1724 
1725 #define VAR_LMTPD_ERR_SLEEP	"lmtpd_error_sleep_time"
1726 #define DEF_LMTPD_ERR_SLEEP	"5s"
1727 extern int var_lmtpd_err_sleep;
1728 
1729 #define VAR_LMTPD_JUNK_CMD	"lmtpd_junk_command_limit"
1730 #define DEF_LMTPD_JUNK_CMD	1000
1731 extern int var_lmtpd_junk_cmd_limit;
1732 
1733  /*
1734   * SASL authentication support, LMTP server side.
1735   */
1736 #define VAR_LMTPD_SASL_ENABLE	"lmtpd_sasl_auth_enable"
1737 #define DEF_LMTPD_SASL_ENABLE	0
1738 extern bool var_lmtpd_sasl_enable;
1739 
1740 #define VAR_LMTPD_SASL_OPTS	"lmtpd_sasl_security_options"
1741 #define DEF_LMTPD_SASL_OPTS	"noanonymous"
1742 extern char *var_lmtpd_sasl_opts;
1743 
1744 #define VAR_LMTPD_SASL_REALM	"lmtpd_sasl_local_domain"
1745 #define DEF_LMTPD_SASL_REALM	"$myhostname"
1746 extern char *var_lmtpd_sasl_realm;
1747 
1748  /*
1749   * SASL authentication support, LMTP client side.
1750   */
1751 #define VAR_LMTP_SASL_ENABLE	"lmtp_sasl_auth_enable"
1752 #define DEF_LMTP_SASL_ENABLE	0
1753 extern bool var_lmtp_sasl_enable;
1754 
1755 #define VAR_LMTP_SASL_PASSWD	"lmtp_sasl_password_maps"
1756 #define DEF_LMTP_SASL_PASSWD	""
1757 extern char *var_lmtp_sasl_passwd;
1758 
1759 #define VAR_LMTP_SASL_OPTS	"lmtp_sasl_security_options"
1760 #define DEF_LMTP_SASL_OPTS	"noplaintext, noanonymous"
1761 extern char *var_lmtp_sasl_opts;
1762 
1763 #define VAR_LMTP_SASL_PATH	"lmtp_sasl_path"
1764 #define DEF_LMTP_SASL_PATH	""
1765 extern char *var_lmtp_sasl_path;
1766 
1767 #define VAR_LMTP_DUMMY_MAIL_AUTH	"lmtp_send_dummy_mail_auth"
1768 #define DEF_LMTP_DUMMY_MAIL_AUTH	0
1769 extern bool var_lmtp_dummy_mail_auth;
1770 
1771  /*
1772   * SASL-based relay etc. control.
1773   */
1774 #define PERMIT_SASL_AUTH	"permit_sasl_authenticated"
1775 
1776 #define VAR_CYRUS_SASL_AUTHZID	"send_cyrus_sasl_authzid"
1777 #define DEF_CYRUS_SASL_AUTHZID	0
1778 extern int var_cyrus_sasl_authzid;
1779 
1780  /*
1781   * Special handling of AUTH 535 failures.
1782   */
1783 #define VAR_SMTP_SASL_AUTH_SOFT_BOUNCE	"smtp_sasl_auth_soft_bounce"
1784 #define DEF_SMTP_SASL_AUTH_SOFT_BOUNCE	1
1785 #define VAR_LMTP_SASL_AUTH_SOFT_BOUNCE	"lmtp_sasl_auth_soft_bounce"
1786 #define DEF_LMTP_SASL_AUTH_SOFT_BOUNCE	1
1787 extern bool var_smtp_sasl_auth_soft_bounce;
1788 
1789 #define VAR_SMTP_SASL_AUTH_CACHE_NAME	"smtp_sasl_auth_cache_name"
1790 #define DEF_SMTP_SASL_AUTH_CACHE_NAME	""
1791 #define VAR_LMTP_SASL_AUTH_CACHE_NAME	"lmtp_sasl_auth_cache_name"
1792 #define DEF_LMTP_SASL_AUTH_CACHE_NAME	""
1793 extern char *var_smtp_sasl_auth_cache_name;
1794 
1795 #define VAR_SMTP_SASL_AUTH_CACHE_TIME	"smtp_sasl_auth_cache_time"
1796 #define DEF_SMTP_SASL_AUTH_CACHE_TIME	"90d"
1797 #define VAR_LMTP_SASL_AUTH_CACHE_TIME	"lmtp_sasl_auth_cache_time"
1798 #define DEF_LMTP_SASL_AUTH_CACHE_TIME	"90d"
1799 extern int var_smtp_sasl_auth_cache_time;
1800 
1801  /*
1802   * LMTP client. Timeouts inspired by RFC 1123. The LMTP recipient limit
1803   * determines how many recipient addresses the LMTP client sends along with
1804   * each message. Unfortunately, some mailers misbehave and disconnect (smap)
1805   * when given more recipients than they are willing to handle.
1806   */
1807 #define VAR_LMTP_TCP_PORT	"lmtp_tcp_port"
1808 #define DEF_LMTP_TCP_PORT	"24"
1809 extern char *var_lmtp_tcp_port;
1810 
1811 #define VAR_LMTP_ASSUME_FINAL	"lmtp_assume_final"
1812 #define DEF_LMTP_ASSUME_FINAL	0
1813 extern bool var_lmtp_assume_final;
1814 
1815 #define VAR_LMTP_CACHE_CONN	"lmtp_cache_connection"
1816 #define DEF_LMTP_CACHE_CONN	1
1817 extern bool var_lmtp_cache_conn;
1818 
1819 #define VAR_LMTP_SKIP_QUIT_RESP	"lmtp_skip_quit_response"
1820 #define DEF_LMTP_SKIP_QUIT_RESP	0
1821 extern bool var_lmtp_skip_quit_resp;
1822 
1823 #define VAR_LMTP_CONN_TMOUT	"lmtp_connect_timeout"
1824 #define DEF_LMTP_CONN_TMOUT	"0s"
1825 extern int var_lmtp_conn_tmout;
1826 
1827 #define VAR_LMTP_RSET_TMOUT	"lmtp_rset_timeout"
1828 #define DEF_LMTP_RSET_TMOUT	"20s"
1829 extern int var_lmtp_rset_tmout;
1830 
1831 #define VAR_LMTP_LHLO_TMOUT	"lmtp_lhlo_timeout"
1832 #define DEF_LMTP_LHLO_TMOUT	"300s"
1833 extern int var_lmtp_lhlo_tmout;
1834 
1835 #define VAR_LMTP_XFWD_TMOUT	"lmtp_xforward_timeout"
1836 #define DEF_LMTP_XFWD_TMOUT	"300s"
1837 extern int var_lmtp_xfwd_tmout;
1838 
1839 #define VAR_LMTP_MAIL_TMOUT	"lmtp_mail_timeout"
1840 #define DEF_LMTP_MAIL_TMOUT	"300s"
1841 extern int var_lmtp_mail_tmout;
1842 
1843 #define VAR_LMTP_RCPT_TMOUT	"lmtp_rcpt_timeout"
1844 #define DEF_LMTP_RCPT_TMOUT	"300s"
1845 extern int var_lmtp_rcpt_tmout;
1846 
1847 #define VAR_LMTP_DATA0_TMOUT	"lmtp_data_init_timeout"
1848 #define DEF_LMTP_DATA0_TMOUT	"120s"
1849 extern int var_lmtp_data0_tmout;
1850 
1851 #define VAR_LMTP_DATA1_TMOUT	"lmtp_data_xfer_timeout"
1852 #define DEF_LMTP_DATA1_TMOUT	"180s"
1853 extern int var_lmtp_data1_tmout;
1854 
1855 #define VAR_LMTP_DATA2_TMOUT	"lmtp_data_done_timeout"
1856 #define DEF_LMTP_DATA2_TMOUT	"600s"
1857 extern int var_lmtp_data2_tmout;
1858 
1859 #define VAR_LMTP_QUIT_TMOUT	"lmtp_quit_timeout"
1860 #define DEF_LMTP_QUIT_TMOUT	"300s"
1861 extern int var_lmtp_quit_tmout;
1862 
1863 #define VAR_LMTP_SEND_XFORWARD	"lmtp_send_xforward_command"
1864 #define DEF_LMTP_SEND_XFORWARD	0
1865 extern bool var_lmtp_send_xforward;
1866 
1867  /*
1868   * Cleanup service. Header info that exceeds $header_size_limit bytes or
1869   * $header_address_token_limit tokens is discarded.
1870   */
1871 #define VAR_HOPCOUNT_LIMIT	"hopcount_limit"
1872 #define DEF_HOPCOUNT_LIMIT	50
1873 extern int var_hopcount_limit;
1874 
1875 #define VAR_HEADER_LIMIT	"header_size_limit"
1876 #define DEF_HEADER_LIMIT	102400
1877 extern int var_header_limit;
1878 
1879 #define VAR_TOKEN_LIMIT		"header_address_token_limit"
1880 #define DEF_TOKEN_LIMIT		10240
1881 extern int var_token_limit;
1882 
1883 #define VAR_VIRT_RECUR_LIMIT	"virtual_alias_recursion_limit"
1884 #define DEF_VIRT_RECUR_LIMIT	1000
1885 extern int var_virt_recur_limit;
1886 
1887 #define VAR_VIRT_EXPAN_LIMIT	"virtual_alias_expansion_limit"
1888 #define DEF_VIRT_EXPAN_LIMIT	1000
1889 extern int var_virt_expan_limit;
1890 
1891 #define VAR_VIRT_ADDRLEN_LIMIT	"virtual_alias_address_length_limit"
1892 #define DEF_VIRT_ADDRLEN_LIMIT	1000
1893 extern int var_virt_addrlen_limit;
1894 
1895  /*
1896   * Message/queue size limits.
1897   */
1898 #define VAR_MESSAGE_LIMIT	"message_size_limit"
1899 #define DEF_MESSAGE_LIMIT	10240000
1900 extern long var_message_limit;
1901 
1902 #define VAR_QUEUE_MINFREE	"queue_minfree"
1903 #define DEF_QUEUE_MINFREE	0
1904 extern int var_queue_minfree;
1905 
1906 #define VAR_HEADER_CHECKS	"header_checks"
1907 #define DEF_HEADER_CHECKS	""
1908 extern char *var_header_checks;
1909 
1910 #define VAR_MIMEHDR_CHECKS	"mime_header_checks"
1911 #define DEF_MIMEHDR_CHECKS	"$header_checks"
1912 extern char *var_mimehdr_checks;
1913 
1914 #define VAR_NESTHDR_CHECKS	"nested_header_checks"
1915 #define DEF_NESTHDR_CHECKS	"$header_checks"
1916 extern char *var_nesthdr_checks;
1917 
1918 #define VAR_BODY_CHECKS		"body_checks"
1919 #define DEF_BODY_CHECKS		""
1920 extern char *var_body_checks;
1921 
1922 #define VAR_BODY_CHECK_LEN	"body_checks_size_limit"
1923 #define DEF_BODY_CHECK_LEN	(50*1024)
1924 extern int var_body_check_len;
1925 
1926  /*
1927   * Bounce service: truncate bounce message that exceed $bounce_size_limit.
1928   */
1929 #define VAR_BOUNCE_LIMIT	"bounce_size_limit"
1930 #define DEF_BOUNCE_LIMIT	50000
1931 extern int var_bounce_limit;
1932 
1933  /*
1934   * Bounce service: reserved sender address for double bounces. The local
1935   * delivery service discards undeliverable double bounces.
1936   */
1937 #define VAR_DOUBLE_BOUNCE	"double_bounce_sender"
1938 #define DEF_DOUBLE_BOUNCE	"double-bounce"
1939 extern char *var_double_bounce_sender;
1940 
1941  /*
1942   * When forking a process, how often to try and how long to wait.
1943   */
1944 #define VAR_FORK_TRIES		"fork_attempts"
1945 #define DEF_FORK_TRIES		5
1946 extern int var_fork_tries;
1947 
1948 #define VAR_FORK_DELAY		"fork_delay"
1949 #define DEF_FORK_DELAY		"1s"
1950 extern int var_fork_delay;
1951 
1952  /*
1953   * When locking a mailbox, how often to try and how long to wait.
1954   */
1955 #define VAR_FLOCK_TRIES          "deliver_lock_attempts"
1956 #define DEF_FLOCK_TRIES          20
1957 extern int var_flock_tries;
1958 
1959 #define VAR_FLOCK_DELAY          "deliver_lock_delay"
1960 #define DEF_FLOCK_DELAY          "1s"
1961 extern int var_flock_delay;
1962 
1963 #define VAR_FLOCK_STALE		"stale_lock_time"
1964 #define DEF_FLOCK_STALE		"500s"
1965 extern int var_flock_stale;
1966 
1967 #define VAR_MAILTOOL_COMPAT	"sun_mailtool_compatibility"
1968 #define DEF_MAILTOOL_COMPAT	0
1969 extern int var_mailtool_compat;
1970 
1971  /*
1972   * How long a daemon command may take to receive or deliver a message etc.
1973   * before we assume it is wegded (should never happen).
1974   */
1975 #define VAR_DAEMON_TIMEOUT	"daemon_timeout"
1976 #define DEF_DAEMON_TIMEOUT	"18000s"
1977 extern int var_daemon_timeout;
1978 
1979 #define VAR_QMGR_DAEMON_TIMEOUT	"qmgr_daemon_timeout"
1980 #define DEF_QMGR_DAEMON_TIMEOUT	"1000s"
1981 extern int var_qmgr_daemon_timeout;
1982 
1983  /*
1984   * How long an intra-mail command may take before we assume the mail system
1985   * is in deadlock (should never happen).
1986   */
1987 #define VAR_IPC_TIMEOUT		"ipc_timeout"
1988 #define DEF_IPC_TIMEOUT		"3600s"
1989 extern int var_ipc_timeout;
1990 
1991 #define VAR_QMGR_IPC_TIMEOUT	"qmgr_ipc_timeout"
1992 #define DEF_QMGR_IPC_TIMEOUT	"60s"
1993 extern int var_qmgr_ipc_timeout;
1994 
1995  /*
1996   * Time limit on intra-mail triggers.
1997   */
1998 #define VAR_TRIGGER_TIMEOUT	"trigger_timeout"
1999 #define DEF_TRIGGER_TIMEOUT	"10s"
2000 extern int var_trigger_timeout;
2001 
2002  /*
2003   * SMTP server restrictions. What networks I am willing to relay from, what
2004   * domains I am willing to forward mail from or to, what clients I refuse to
2005   * talk to, and what domains I never want to see in the sender address.
2006   */
2007 #define VAR_MYNETWORKS		"mynetworks"
2008 extern char *var_mynetworks;
2009 
2010 #define VAR_MYNETWORKS_STYLE	"mynetworks_style"
2011 #define DEF_MYNETWORKS_STYLE	"${{$compatibility_level} < {2} ? " \
2012 				"{" MYNETWORKS_STYLE_SUBNET "} : " \
2013 				"{" MYNETWORKS_STYLE_HOST "}}"
2014 extern char *var_mynetworks_style;
2015 
2016 #define	MYNETWORKS_STYLE_CLASS	"class"
2017 #define	MYNETWORKS_STYLE_SUBNET	"subnet"
2018 #define	MYNETWORKS_STYLE_HOST	"host"
2019 
2020 #define VAR_RELAY_DOMAINS	"relay_domains"
2021 #define DEF_RELAY_DOMAINS	"${{$compatibility_level} < {2} ? " \
2022 				"{$mydestination} : {}}"
2023 extern char *var_relay_domains;
2024 
2025 #define VAR_RELAY_TRANSPORT	"relay_transport"
2026 #define DEF_RELAY_TRANSPORT	MAIL_SERVICE_RELAY
2027 extern char *var_relay_transport;
2028 
2029 #define VAR_RELAY_RCPT_MAPS	"relay_recipient_maps"
2030 #define DEF_RELAY_RCPT_MAPS	""
2031 extern char *var_relay_rcpt_maps;
2032 
2033 #define VAR_RELAY_RCPT_CODE	"unknown_relay_recipient_reject_code"
2034 #define DEF_RELAY_RCPT_CODE	550
2035 extern int var_relay_rcpt_code;
2036 
2037 #define VAR_RELAY_CCERTS	"relay_clientcerts"
2038 #define DEF_RELAY_CCERTS	""
2039 extern char *var_smtpd_relay_ccerts;
2040 
2041 #define VAR_CLIENT_CHECKS	"smtpd_client_restrictions"
2042 #define DEF_CLIENT_CHECKS	""
2043 extern char *var_client_checks;
2044 
2045 #define VAR_HELO_REQUIRED	"smtpd_helo_required"
2046 #define DEF_HELO_REQUIRED	0
2047 extern bool var_helo_required;
2048 
2049 #define VAR_HELO_CHECKS		"smtpd_helo_restrictions"
2050 #define DEF_HELO_CHECKS		""
2051 extern char *var_helo_checks;
2052 
2053 #define VAR_MAIL_CHECKS		"smtpd_sender_restrictions"
2054 #define DEF_MAIL_CHECKS		""
2055 extern char *var_mail_checks;
2056 
2057 #define VAR_RELAY_CHECKS	"smtpd_relay_restrictions"
2058 #define DEF_RELAY_CHECKS	PERMIT_MYNETWORKS ", " \
2059 				PERMIT_SASL_AUTH ", " \
2060 				DEFER_UNAUTH_DEST
2061 extern char *var_relay_checks;
2062 
2063 #define VAR_RCPT_CHECKS		"smtpd_recipient_restrictions"
2064 #define DEF_RCPT_CHECKS		""
2065 extern char *var_rcpt_checks;
2066 
2067 #define VAR_ETRN_CHECKS		"smtpd_etrn_restrictions"
2068 #define DEF_ETRN_CHECKS		""
2069 extern char *var_etrn_checks;
2070 
2071 #define VAR_DATA_CHECKS		"smtpd_data_restrictions"
2072 #define DEF_DATA_CHECKS		""
2073 extern char *var_data_checks;
2074 
2075 #define VAR_EOD_CHECKS		"smtpd_end_of_data_restrictions"
2076 #define DEF_EOD_CHECKS		""
2077 extern char *var_eod_checks;
2078 
2079 #define VAR_REST_CLASSES	"smtpd_restriction_classes"
2080 #define DEF_REST_CLASSES	""
2081 extern char *var_rest_classes;
2082 
2083 #define VAR_ALLOW_UNTRUST_ROUTE	"allow_untrusted_routing"
2084 #define DEF_ALLOW_UNTRUST_ROUTE	0
2085 extern bool var_allow_untrust_route;
2086 
2087  /*
2088   * Names of specific restrictions, and the corresponding configuration
2089   * parameters that control the status codes sent in response to rejected
2090   * requests.
2091   */
2092 #define PERMIT_ALL		"permit"
2093 #define REJECT_ALL		"reject"
2094 #define VAR_REJECT_CODE		"reject_code"
2095 #define DEF_REJECT_CODE		554
2096 extern int var_reject_code;
2097 
2098 #define DEFER_ALL		"defer"
2099 #define VAR_DEFER_CODE		"defer_code"
2100 #define DEF_DEFER_CODE		450
2101 extern int var_defer_code;
2102 
2103 #define DEFER_IF_PERMIT		"defer_if_permit"
2104 #define DEFER_IF_REJECT		"defer_if_reject"
2105 
2106 #define VAR_REJECT_TMPF_ACT	"reject_tempfail_action"
2107 #define DEF_REJECT_TMPF_ACT	DEFER_IF_PERMIT
2108 extern char *var_reject_tmpf_act;
2109 
2110 #define SLEEP			"sleep"
2111 
2112 #define REJECT_PLAINTEXT_SESSION "reject_plaintext_session"
2113 #define VAR_PLAINTEXT_CODE	"plaintext_reject_code"
2114 #define DEF_PLAINTEXT_CODE	450
2115 extern int var_plaintext_code;
2116 
2117 #define REJECT_UNKNOWN_CLIENT	"reject_unknown_client"
2118 #define REJECT_UNKNOWN_CLIENT_HOSTNAME "reject_unknown_client_hostname"
2119 #define REJECT_UNKNOWN_REVERSE_HOSTNAME "reject_unknown_reverse_client_hostname"
2120 #define REJECT_UNKNOWN_FORWARD_HOSTNAME "reject_unknown_forward_client_hostname"
2121 #define VAR_UNK_CLIENT_CODE	"unknown_client_reject_code"
2122 #define DEF_UNK_CLIENT_CODE	450
2123 extern int var_unk_client_code;
2124 
2125 #define PERMIT_INET_INTERFACES	"permit_inet_interfaces"
2126 
2127 #define PERMIT_MYNETWORKS	"permit_mynetworks"
2128 
2129 #define PERMIT_NAKED_IP_ADDR	"permit_naked_ip_address"
2130 
2131 #define REJECT_INVALID_HELO_HOSTNAME	"reject_invalid_helo_hostname"
2132 #define REJECT_INVALID_HOSTNAME	"reject_invalid_hostname"
2133 #define VAR_BAD_NAME_CODE	"invalid_hostname_reject_code"
2134 #define DEF_BAD_NAME_CODE	501	/* SYNTAX */
2135 extern int var_bad_name_code;
2136 
2137 #define REJECT_UNKNOWN_HELO_HOSTNAME "reject_unknown_helo_hostname"
2138 #define REJECT_UNKNOWN_HOSTNAME	"reject_unknown_hostname"
2139 #define VAR_UNK_NAME_CODE	"unknown_hostname_reject_code"
2140 #define DEF_UNK_NAME_CODE	450
2141 extern int var_unk_name_code;
2142 
2143 #define VAR_UNK_NAME_TF_ACT	"unknown_helo_hostname_tempfail_action"
2144 #define DEF_UNK_NAME_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2145 extern char *var_unk_name_tf_act;
2146 
2147 #define REJECT_NON_FQDN_HELO_HOSTNAME "reject_non_fqdn_helo_hostname"
2148 #define REJECT_NON_FQDN_HOSTNAME "reject_non_fqdn_hostname"
2149 #define REJECT_NON_FQDN_SENDER	"reject_non_fqdn_sender"
2150 #define REJECT_NON_FQDN_RCPT	"reject_non_fqdn_recipient"
2151 #define VAR_NON_FQDN_CODE	"non_fqdn_reject_code"
2152 #define DEF_NON_FQDN_CODE	504	/* POLICY */
2153 extern int var_non_fqdn_code;
2154 
2155 #define REJECT_UNKNOWN_SENDDOM	"reject_unknown_sender_domain"
2156 #define REJECT_UNKNOWN_RCPTDOM	"reject_unknown_recipient_domain"
2157 #define REJECT_UNKNOWN_ADDRESS	"reject_unknown_address"
2158 #define REJECT_UNLISTED_SENDER	"reject_unlisted_sender"
2159 #define REJECT_UNLISTED_RCPT	"reject_unlisted_recipient"
2160 #define CHECK_RCPT_MAPS		"check_recipient_maps"
2161 
2162 #define VAR_UNK_ADDR_CODE	"unknown_address_reject_code"
2163 #define DEF_UNK_ADDR_CODE	450
2164 extern int var_unk_addr_code;
2165 
2166 #define VAR_UNK_ADDR_TF_ACT	"unknown_address_tempfail_action"
2167 #define DEF_UNK_ADDR_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2168 extern char *var_unk_addr_tf_act;
2169 
2170 #define VAR_SMTPD_REJ_UNL_FROM	"smtpd_reject_unlisted_sender"
2171 #define DEF_SMTPD_REJ_UNL_FROM	0
2172 extern bool var_smtpd_rej_unl_from;
2173 
2174 #define VAR_SMTPD_REJ_UNL_RCPT	"smtpd_reject_unlisted_recipient"
2175 #define DEF_SMTPD_REJ_UNL_RCPT	1
2176 extern bool var_smtpd_rej_unl_rcpt;
2177 
2178 #define REJECT_UNVERIFIED_RECIP "reject_unverified_recipient"
2179 #define VAR_UNV_RCPT_RCODE	"unverified_recipient_reject_code"
2180 #define DEF_UNV_RCPT_RCODE	450
2181 extern int var_unv_rcpt_rcode;
2182 
2183 #define REJECT_UNVERIFIED_SENDER "reject_unverified_sender"
2184 #define VAR_UNV_FROM_RCODE	"unverified_sender_reject_code"
2185 #define DEF_UNV_FROM_RCODE	450
2186 extern int var_unv_from_rcode;
2187 
2188 #define VAR_UNV_RCPT_DCODE	"unverified_recipient_defer_code"
2189 #define DEF_UNV_RCPT_DCODE	450
2190 extern int var_unv_rcpt_dcode;
2191 
2192 #define VAR_UNV_FROM_DCODE	"unverified_sender_defer_code"
2193 #define DEF_UNV_FROM_DCODE	450
2194 extern int var_unv_from_dcode;
2195 
2196 #define VAR_UNV_RCPT_TF_ACT	"unverified_recipient_tempfail_action"
2197 #define DEF_UNV_RCPT_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2198 extern char *var_unv_rcpt_tf_act;
2199 
2200 #define VAR_UNV_FROM_TF_ACT	"unverified_sender_tempfail_action"
2201 #define DEF_UNV_FROM_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2202 extern char *var_unv_from_tf_act;
2203 
2204 #define VAR_UNV_RCPT_WHY	"unverified_recipient_reject_reason"
2205 #define DEF_UNV_RCPT_WHY	""
2206 extern char *var_unv_rcpt_why;
2207 
2208 #define VAR_UNV_FROM_WHY	"unverified_sender_reject_reason"
2209 #define DEF_UNV_FROM_WHY	""
2210 extern char *var_unv_from_why;
2211 
2212 #define REJECT_MUL_RCPT_BOUNCE	"reject_multi_recipient_bounce"
2213 #define VAR_MUL_RCPT_CODE	"multi_recipient_bounce_reject_code"
2214 #define DEF_MUL_RCPT_CODE	550
2215 extern int var_mul_rcpt_code;
2216 
2217 #define PERMIT_AUTH_DEST	"permit_auth_destination"
2218 #define REJECT_UNAUTH_DEST	"reject_unauth_destination"
2219 #define DEFER_UNAUTH_DEST	"defer_unauth_destination"
2220 #define CHECK_RELAY_DOMAINS	"check_relay_domains"
2221 #define PERMIT_TLS_CLIENTCERTS	"permit_tls_clientcerts"
2222 #define PERMIT_TLS_ALL_CLIENTCERTS	"permit_tls_all_clientcerts"
2223 #define VAR_RELAY_CODE		"relay_domains_reject_code"
2224 #define DEF_RELAY_CODE		554
2225 extern int var_relay_code;
2226 
2227 #define PERMIT_MX_BACKUP	"permit_mx_backup"
2228 
2229 #define VAR_PERM_MX_NETWORKS	"permit_mx_backup_networks"
2230 #define DEF_PERM_MX_NETWORKS	""
2231 extern char *var_perm_mx_networks;
2232 
2233 #define VAR_MAP_REJECT_CODE	"access_map_reject_code"
2234 #define DEF_MAP_REJECT_CODE	554
2235 extern int var_map_reject_code;
2236 
2237 #define VAR_MAP_DEFER_CODE	"access_map_defer_code"
2238 #define DEF_MAP_DEFER_CODE	450
2239 extern int var_map_defer_code;
2240 
2241 #define CHECK_CLIENT_ACL	"check_client_access"
2242 #define CHECK_REVERSE_CLIENT_ACL "check_reverse_client_hostname_access"
2243 #define CHECK_CCERT_ACL		"check_ccert_access"
2244 #define CHECK_SASL_ACL		"check_sasl_access"
2245 #define CHECK_HELO_ACL		"check_helo_access"
2246 #define CHECK_SENDER_ACL	"check_sender_access"
2247 #define CHECK_RECIP_ACL		"check_recipient_access"
2248 #define CHECK_ETRN_ACL		"check_etrn_access"
2249 
2250 #define CHECK_CLIENT_MX_ACL	"check_client_mx_access"
2251 #define CHECK_REVERSE_CLIENT_MX_ACL "check_reverse_client_hostname_mx_access"
2252 #define CHECK_HELO_MX_ACL	"check_helo_mx_access"
2253 #define CHECK_SENDER_MX_ACL	"check_sender_mx_access"
2254 #define CHECK_RECIP_MX_ACL	"check_recipient_mx_access"
2255 #define CHECK_CLIENT_NS_ACL	"check_client_ns_access"
2256 #define CHECK_REVERSE_CLIENT_NS_ACL "check_reverse_client_hostname_ns_access"
2257 #define CHECK_HELO_NS_ACL	"check_helo_ns_access"
2258 #define CHECK_SENDER_NS_ACL	"check_sender_ns_access"
2259 #define CHECK_RECIP_NS_ACL	"check_recipient_ns_access"
2260 #define CHECK_CLIENT_A_ACL	"check_client_a_access"
2261 #define CHECK_REVERSE_CLIENT_A_ACL "check_reverse_client_hostname_a_access"
2262 #define CHECK_HELO_A_ACL	"check_helo_a_access"
2263 #define CHECK_SENDER_A_ACL	"check_sender_a_access"
2264 #define CHECK_RECIP_A_ACL	"check_recipient_a_access"
2265 
2266 #define WARN_IF_REJECT		"warn_if_reject"
2267 
2268 #define REJECT_RBL		"reject_rbl"	/* LaMont compatibility */
2269 #define REJECT_RBL_CLIENT	"reject_rbl_client"
2270 #define REJECT_RHSBL_CLIENT	"reject_rhsbl_client"
2271 #define REJECT_RHSBL_REVERSE_CLIENT	"reject_rhsbl_reverse_client"
2272 #define REJECT_RHSBL_HELO	"reject_rhsbl_helo"
2273 #define REJECT_RHSBL_SENDER	"reject_rhsbl_sender"
2274 #define REJECT_RHSBL_RECIPIENT	"reject_rhsbl_recipient"
2275 
2276 #define PERMIT_DNSWL_CLIENT	"permit_dnswl_client"
2277 #define PERMIT_RHSWL_CLIENT	"permit_rhswl_client"
2278 
2279 #define VAR_RBL_REPLY_MAPS	"rbl_reply_maps"
2280 #define DEF_RBL_REPLY_MAPS	""
2281 extern char *var_rbl_reply_maps;
2282 
2283 #define VAR_DEF_RBL_REPLY	"default_rbl_reply"
2284 #define DEF_DEF_RBL_REPLY	"$rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}"
2285 extern char *var_def_rbl_reply;
2286 
2287 #define REJECT_MAPS_RBL		"reject_maps_rbl"	/* backwards compat */
2288 #define VAR_MAPS_RBL_CODE	"maps_rbl_reject_code"
2289 #define DEF_MAPS_RBL_CODE	554
2290 extern int var_maps_rbl_code;
2291 
2292 #define VAR_MAPS_RBL_DOMAINS	"maps_rbl_domains"	/* backwards compat */
2293 #define DEF_MAPS_RBL_DOMAINS	""
2294 extern char *var_maps_rbl_domains;
2295 
2296 #define VAR_SMTPD_DELAY_REJECT	"smtpd_delay_reject"
2297 #define DEF_SMTPD_DELAY_REJECT	1
2298 extern int var_smtpd_delay_reject;
2299 
2300 #define REJECT_UNAUTH_PIPE	"reject_unauth_pipelining"
2301 
2302 #define VAR_SMTPD_NULL_KEY	"smtpd_null_access_lookup_key"
2303 #define DEF_SMTPD_NULL_KEY	"<>"
2304 extern char *var_smtpd_null_key;
2305 
2306 #define VAR_SMTPD_EXP_FILTER	"smtpd_expansion_filter"
2307 #define DEF_SMTPD_EXP_FILTER	"\\t\\40!\"#$%&'()*+,-./0123456789:;<=>?@\
2308 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`\
2309 abcdefghijklmnopqrstuvwxyz{|}~"
2310 extern char *var_smtpd_exp_filter;
2311 
2312 #define VAR_SMTPD_PEERNAME_LOOKUP	"smtpd_peername_lookup"
2313 #define DEF_SMTPD_PEERNAME_LOOKUP	1
2314 extern bool var_smtpd_peername_lookup;
2315 
2316  /*
2317   * Heuristic to reject unknown local recipients at the SMTP port.
2318   */
2319 #define VAR_LOCAL_RCPT_MAPS	"local_recipient_maps"
2320 #define DEF_LOCAL_RCPT_MAPS	"proxy:unix:passwd.byname $" VAR_ALIAS_MAPS
2321 extern char *var_local_rcpt_maps;
2322 
2323 #define VAR_LOCAL_RCPT_CODE	"unknown_local_recipient_reject_code"
2324 #define DEF_LOCAL_RCPT_CODE	550
2325 extern int var_local_rcpt_code;
2326 
2327  /*
2328   * List of pre-approved maps that are OK to open with the proxymap service.
2329   */
2330 #define VAR_PROXY_READ_MAPS	"proxy_read_maps"
2331 #define DEF_PROXY_READ_MAPS	"$" VAR_LOCAL_RCPT_MAPS \
2332 				" $" VAR_MYDEST \
2333 				" $" VAR_VIRT_ALIAS_MAPS \
2334 				" $" VAR_VIRT_ALIAS_DOMS \
2335 				" $" VAR_VIRT_MAILBOX_MAPS \
2336 				" $" VAR_VIRT_MAILBOX_DOMS \
2337 				" $" VAR_RELAY_RCPT_MAPS \
2338 				" $" VAR_RELAY_DOMAINS \
2339 				" $" VAR_CANONICAL_MAPS \
2340 				" $" VAR_SEND_CANON_MAPS \
2341 				" $" VAR_RCPT_CANON_MAPS \
2342 				" $" VAR_RELOCATED_MAPS \
2343 				" $" VAR_TRANSPORT_MAPS \
2344 				" $" VAR_MYNETWORKS \
2345 				" $" VAR_SMTPD_SND_AUTH_MAPS \
2346 				" $" VAR_SEND_BCC_MAPS \
2347 				" $" VAR_RCPT_BCC_MAPS \
2348 				" $" VAR_SMTP_GENERIC_MAPS \
2349 				" $" VAR_LMTP_GENERIC_MAPS \
2350 				" $" VAR_ALIAS_MAPS \
2351 				" $" VAR_CLIENT_CHECKS \
2352 				" $" VAR_HELO_CHECKS \
2353 				" $" VAR_MAIL_CHECKS \
2354 				" $" VAR_RELAY_CHECKS \
2355 				" $" VAR_RCPT_CHECKS
2356 extern char *var_proxy_read_maps;
2357 
2358 #define VAR_PROXY_WRITE_MAPS	"proxy_write_maps"
2359 #define DEF_PROXY_WRITE_MAPS	"$" VAR_SMTP_SASL_AUTH_CACHE_NAME \
2360 				" $" VAR_LMTP_SASL_AUTH_CACHE_NAME \
2361 				" $" VAR_VERIFY_MAP \
2362 				" $" VAR_PSC_CACHE_MAP
2363 extern char *var_proxy_write_maps;
2364 
2365 #define VAR_PROXY_READ_ACL	"proxy_read_access_list"
2366 #define DEF_PROXY_READ_ACL	"reject"
2367 extern char *var_proxy_read_acl;
2368 
2369 #define VAR_PROXY_WRITE_ACL	"proxy_write_access_list"
2370 #define DEF_PROXY_WRITE_ACL	"reject"
2371 extern char *var_proxy_write_acl;
2372 
2373  /*
2374   * Other.
2375   */
2376 #define VAR_PROCNAME		"process_name"
2377 extern char *var_procname;
2378 
2379 #define VAR_PID			"process_id"
2380 extern int var_pid;
2381 
2382 #define VAR_DEBUG_COMMAND	"debugger_command"
2383 
2384  /*
2385   * Paranoia: save files instead of deleting them.
2386   */
2387 #define VAR_DONT_REMOVE		"dont_remove"
2388 #define DEF_DONT_REMOVE		0
2389 extern bool var_dont_remove;
2390 
2391  /*
2392   * Paranoia: defer messages instead of bouncing them.
2393   */
2394 #define VAR_SOFT_BOUNCE		"soft_bounce"
2395 #define DEF_SOFT_BOUNCE		0
2396 extern bool var_soft_bounce;
2397 
2398  /*
2399   * Give special treatment to owner- and -request.
2400   */
2401 #define VAR_OWNREQ_SPECIAL		"owner_request_special"
2402 #define DEF_OWNREQ_SPECIAL		1
2403 extern bool var_ownreq_special;
2404 
2405  /*
2406   * Allow/disallow recipient addresses starting with `-'.
2407   */
2408 #define VAR_ALLOW_MIN_USER		"allow_min_user"
2409 #define DEF_ALLOW_MIN_USER		0
2410 extern bool var_allow_min_user;
2411 
2412 extern void mail_params_init(void);
2413 
2414  /*
2415   * Content inspection and filtering.
2416   */
2417 #define VAR_FILTER_XPORT		"content_filter"
2418 #define DEF_FILTER_XPORT		""
2419 extern char *var_filter_xport;
2420 
2421 #define VAR_DEF_FILTER_NEXTHOP		"default_filter_nexthop"
2422 #define DEF_DEF_FILTER_NEXTHOP		""
2423 extern char *var_def_filter_nexthop;
2424 
2425  /*
2426   * Fast flush service support.
2427   */
2428 #define VAR_FFLUSH_DOMAINS		"fast_flush_domains"
2429 #define DEF_FFLUSH_DOMAINS		"$relay_domains"
2430 extern char *var_fflush_domains;
2431 
2432 #define VAR_FFLUSH_PURGE		"fast_flush_purge_time"
2433 #define DEF_FFLUSH_PURGE		"7d"
2434 extern int var_fflush_purge;
2435 
2436 #define VAR_FFLUSH_REFRESH		"fast_flush_refresh_time"
2437 #define DEF_FFLUSH_REFRESH		"12h"
2438 extern int var_fflush_refresh;
2439 
2440  /*
2441   * Environmental management - what Postfix imports from the external world,
2442   * and what Postfix exports to the external world.
2443   */
2444 #define VAR_IMPORT_ENVIRON		"import_environment"
2445 #define DEF_IMPORT_ENVIRON		"MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C"
2446 extern char *var_import_environ;
2447 
2448 #define VAR_EXPORT_ENVIRON		"export_environment"
2449 #define DEF_EXPORT_ENVIRON		"TZ MAIL_CONFIG LANG"
2450 extern char *var_export_environ;
2451 
2452  /*
2453   * Tunables for the "virtual" local delivery agent
2454   */
2455 #define VAR_VIRT_TRANSPORT		"virtual_transport"
2456 #define DEF_VIRT_TRANSPORT		MAIL_SERVICE_VIRTUAL
2457 extern char *var_virt_transport;
2458 
2459 #define VAR_VIRT_MAILBOX_MAPS		"virtual_mailbox_maps"
2460 #define DEF_VIRT_MAILBOX_MAPS		""
2461 extern char *var_virt_mailbox_maps;
2462 
2463 #define VAR_VIRT_MAILBOX_DOMS		"virtual_mailbox_domains"
2464 #define DEF_VIRT_MAILBOX_DOMS		"$virtual_mailbox_maps"
2465 extern char *var_virt_mailbox_doms;
2466 
2467 #define VAR_VIRT_MAILBOX_CODE		"unknown_virtual_mailbox_reject_code"
2468 #define DEF_VIRT_MAILBOX_CODE		550
2469 extern int var_virt_mailbox_code;
2470 
2471 #define VAR_VIRT_UID_MAPS		"virtual_uid_maps"
2472 #define DEF_VIRT_UID_MAPS		""
2473 extern char *var_virt_uid_maps;
2474 
2475 #define VAR_VIRT_GID_MAPS		"virtual_gid_maps"
2476 #define DEF_VIRT_GID_MAPS		""
2477 extern char *var_virt_gid_maps;
2478 
2479 #define VAR_VIRT_MINUID			"virtual_minimum_uid"
2480 #define DEF_VIRT_MINUID			100
2481 extern int var_virt_minimum_uid;
2482 
2483 #define VAR_VIRT_MAILBOX_BASE		"virtual_mailbox_base"
2484 #define DEF_VIRT_MAILBOX_BASE		""
2485 extern char *var_virt_mailbox_base;
2486 
2487 #define VAR_VIRT_MAILBOX_LIMIT		"virtual_mailbox_limit"
2488 #define DEF_VIRT_MAILBOX_LIMIT		(5 * DEF_MESSAGE_LIMIT)
2489 extern long var_virt_mailbox_limit;
2490 
2491 #define VAR_VIRT_MAILBOX_LOCK		"virtual_mailbox_lock"
2492 #define DEF_VIRT_MAILBOX_LOCK		"fcntl, dotlock"
2493 extern char *var_virt_mailbox_lock;
2494 
2495  /*
2496   * Distinct logging tag for multiple Postfix instances.
2497   */
2498 #define VAR_SYSLOG_NAME			"syslog_name"
2499 #if 1
2500 #define DEF_SYSLOG_NAME			\
2501     "${" VAR_MULTI_NAME "?{$" VAR_MULTI_NAME "}:{postfix}}"
2502 #else
2503 #define DEF_SYSLOG_NAME			"postfix"
2504 #endif
2505 extern char *var_syslog_name;
2506 
2507  /*
2508   * QMQPD
2509   */
2510 #define VAR_QMQPD_CLIENTS		"qmqpd_authorized_clients"
2511 #define DEF_QMQPD_CLIENTS		""
2512 extern char *var_qmqpd_clients;
2513 
2514 #define VAR_QMTPD_TMOUT			"qmqpd_timeout"
2515 #define DEF_QMTPD_TMOUT			"300s"
2516 extern int var_qmqpd_timeout;
2517 
2518 #define VAR_QMTPD_ERR_SLEEP		"qmqpd_error_delay"
2519 #define DEF_QMTPD_ERR_SLEEP		"1s"
2520 extern int var_qmqpd_err_sleep;
2521 
2522  /*
2523   * VERP, more DJB intellectual cross-pollination. However, we prefer + as
2524   * the default recipient delimiter.
2525   */
2526 #define VAR_VERP_DELIMS			"default_verp_delimiters"
2527 #define DEF_VERP_DELIMS			"+="
2528 extern char *var_verp_delims;
2529 
2530 #define VAR_VERP_FILTER			"verp_delimiter_filter"
2531 #define DEF_VERP_FILTER			"-=+"
2532 extern char *var_verp_filter;
2533 
2534 #define VAR_VERP_BOUNCE_OFF		"disable_verp_bounces"
2535 #define DEF_VERP_BOUNCE_OFF		0
2536 extern bool var_verp_bounce_off;
2537 
2538 #define VAR_VERP_CLIENTS		"smtpd_authorized_verp_clients"
2539 #define DEF_VERP_CLIENTS		"$authorized_verp_clients"
2540 extern char *var_verp_clients;
2541 
2542  /*
2543   * XCLIENT, for rule testing and fetchmail like apps.
2544   */
2545 #define VAR_XCLIENT_HOSTS		"smtpd_authorized_xclient_hosts"
2546 #define DEF_XCLIENT_HOSTS		""
2547 extern char *var_xclient_hosts;
2548 
2549  /*
2550   * XFORWARD, for improved post-filter logging.
2551   */
2552 #define VAR_XFORWARD_HOSTS		"smtpd_authorized_xforward_hosts"
2553 #define DEF_XFORWARD_HOSTS		""
2554 extern char *var_xforward_hosts;
2555 
2556  /*
2557   * Inbound mail flow control. This allows for a stiffer coupling between
2558   * receiving mail and sending mail. A sending process produces one token for
2559   * each message that it takes from the incoming queue; a receiving process
2560   * consumes one token for each message that it adds to the incoming queue.
2561   * When no token is available (Postfix receives more mail than it is able to
2562   * deliver) a receiving process pauses for $in_flow_delay seconds so that
2563   * the sending processes get a chance to access the disk.
2564   */
2565 #define VAR_IN_FLOW_DELAY			"in_flow_delay"
2566 #ifdef PIPES_CANT_FIONREAD
2567 #define DEF_IN_FLOW_DELAY			"0s"
2568 #else
2569 #define DEF_IN_FLOW_DELAY			"1s"
2570 #endif
2571 extern int var_in_flow_delay;
2572 
2573  /*
2574   * Backwards compatibility: foo.com matches itself and names below foo.com.
2575   */
2576 #define VAR_PAR_DOM_MATCH		"parent_domain_matches_subdomains"
2577 #define DEF_PAR_DOM_MATCH		VAR_DEBUG_PEER_LIST "," \
2578 					VAR_FFLUSH_DOMAINS "," \
2579 					VAR_MYNETWORKS "," \
2580 					VAR_PERM_MX_NETWORKS "," \
2581 					VAR_QMQPD_CLIENTS "," \
2582 					VAR_RELAY_DOMAINS "," \
2583 					SMTPD_ACCESS_MAPS
2584 extern char *var_par_dom_match;
2585 
2586 #define SMTPD_ACCESS_MAPS		"smtpd_access_maps"
2587 
2588  /*
2589   * Run-time fault injection.
2590   */
2591 #define VAR_FAULT_INJ_CODE		"fault_injection_code"
2592 #define DEF_FAULT_INJ_CODE		0
2593 extern int var_fault_inj_code;
2594 
2595  /*
2596   * Install/upgrade information.
2597   */
2598 #define VAR_SENDMAIL_PATH		"sendmail_path"
2599 #ifndef DEF_SENDMAIL_PATH
2600 #define DEF_SENDMAIL_PATH		"/usr/sbin/sendmail"
2601 #endif
2602 
2603 #define VAR_MAILQ_PATH			"mailq_path"
2604 #ifndef DEF_MAILQ_PATH
2605 #define DEF_MAILQ_PATH			"/usr/bin/mailq"
2606 #endif
2607 
2608 #define VAR_NEWALIAS_PATH		"newaliases_path"
2609 #ifndef DEF_NEWALIAS_PATH
2610 #define DEF_NEWALIAS_PATH		"/usr/bin/newaliases"
2611 #endif
2612 
2613 #define VAR_OPENSSL_PATH		"openssl_path"
2614 #ifndef DEF_OPENSSL_PATH
2615 #define DEF_OPENSSL_PATH		"openssl"
2616 #endif
2617 
2618 #define VAR_MANPAGE_DIR			"manpage_directory"
2619 #ifndef DEF_MANPAGE_DIR
2620 #define DEF_MANPAGE_DIR			"/usr/local/man"
2621 #endif
2622 
2623 #define VAR_SAMPLE_DIR			"sample_directory"
2624 #ifndef DEF_SAMPLE_DIR
2625 #define DEF_SAMPLE_DIR			DEF_CONFIG_DIR
2626 #endif
2627 
2628 #define VAR_README_DIR			"readme_directory"
2629 #ifndef DEF_README_DIR
2630 #define DEF_README_DIR			"no"
2631 #endif
2632 
2633 #define VAR_HTML_DIR			"html_directory"
2634 #ifndef DEF_HTML_DIR
2635 #define DEF_HTML_DIR			"no"
2636 #endif
2637 
2638  /*
2639   * Safety: resolve the address with unquoted localpart (default, but
2640   * technically incorrect), instead of resolving the address with quoted
2641   * localpart (technically correct, but unsafe). The default prevents mail
2642   * relay loopholes with "user@domain"@domain when relaying mail to a
2643   * Sendmail system.
2644   */
2645 #define VAR_RESOLVE_DEQUOTED		"resolve_dequoted_address"
2646 #define DEF_RESOLVE_DEQUOTED		1
2647 extern bool var_resolve_dequoted;
2648 
2649 #define VAR_RESOLVE_NULLDOM		"resolve_null_domain"
2650 #define DEF_RESOLVE_NULLDOM		0
2651 extern bool var_resolve_nulldom;
2652 
2653 #define VAR_RESOLVE_NUM_DOM		"resolve_numeric_domain"
2654 #define DEF_RESOLVE_NUM_DOM		0
2655 extern bool var_resolve_num_dom;
2656 
2657  /*
2658   * Service names. The transport (TCP, FIFO or UNIX-domain) type is frozen
2659   * because you cannot simply mix them, and accessibility (private/public) is
2660   * frozen for security reasons. We list only the internal services, not the
2661   * externally visible SMTP server, or the delivery agents that can already
2662   * be chosen via transport mappings etc.
2663   */
2664 #define VAR_BOUNCE_SERVICE		"bounce_service_name"
2665 #define DEF_BOUNCE_SERVICE		MAIL_SERVICE_BOUNCE
2666 extern char *var_bounce_service;
2667 
2668 #define VAR_CLEANUP_SERVICE		"cleanup_service_name"
2669 #define DEF_CLEANUP_SERVICE		MAIL_SERVICE_CLEANUP
2670 extern char *var_cleanup_service;
2671 
2672 #define VAR_DEFER_SERVICE		"defer_service_name"
2673 #define DEF_DEFER_SERVICE		MAIL_SERVICE_DEFER
2674 extern char *var_defer_service;
2675 
2676 #define VAR_PICKUP_SERVICE		"pickup_service_name"
2677 #define DEF_PICKUP_SERVICE		MAIL_SERVICE_PICKUP
2678 extern char *var_pickup_service;
2679 
2680 #define VAR_QUEUE_SERVICE		"queue_service_name"
2681 #define DEF_QUEUE_SERVICE		MAIL_SERVICE_QUEUE
2682 extern char *var_queue_service;
2683 
2684  /* XXX resolve does not exist as a separate service */
2685 
2686 #define VAR_REWRITE_SERVICE		"rewrite_service_name"
2687 #define DEF_REWRITE_SERVICE		MAIL_SERVICE_REWRITE
2688 extern char *var_rewrite_service;
2689 
2690 #define VAR_SHOWQ_SERVICE		"showq_service_name"
2691 #define DEF_SHOWQ_SERVICE		MAIL_SERVICE_SHOWQ
2692 extern char *var_showq_service;
2693 
2694 #define VAR_ERROR_SERVICE		"error_service_name"
2695 #define DEF_ERROR_SERVICE		MAIL_SERVICE_ERROR
2696 extern char *var_error_service;
2697 
2698 #define VAR_FLUSH_SERVICE		"flush_service_name"
2699 #define DEF_FLUSH_SERVICE		MAIL_SERVICE_FLUSH
2700 extern char *var_flush_service;
2701 
2702  /*
2703   * Session cache service.
2704   */
2705 #define VAR_SCACHE_SERVICE		"connection_cache_service_name"
2706 #define DEF_SCACHE_SERVICE		"scache"
2707 extern char *var_scache_service;
2708 
2709 #define VAR_SCACHE_PROTO_TMOUT		"connection_cache_protocol_timeout"
2710 #define DEF_SCACHE_PROTO_TMOUT		"5s"
2711 extern int var_scache_proto_tmout;
2712 
2713 #define VAR_SCACHE_TTL_LIM		"connection_cache_ttl_limit"
2714 #define DEF_SCACHE_TTL_LIM		"2s"
2715 extern int var_scache_ttl_lim;
2716 
2717 #define VAR_SCACHE_STAT_TIME		"connection_cache_status_update_time"
2718 #define DEF_SCACHE_STAT_TIME		"600s"
2719 extern int var_scache_stat_time;
2720 
2721 #define VAR_VRFY_PEND_LIMIT		"address_verify_pending_request_limit"
2722 #define DEF_VRFY_PEND_LIMIT		(DEF_QMGR_ACT_LIMIT / 4)
2723 extern int var_vrfy_pend_limit;
2724 
2725  /*
2726   * Address verification service.
2727   */
2728 #define VAR_VERIFY_SERVICE		"address_verify_service_name"
2729 #define DEF_VERIFY_SERVICE		MAIL_SERVICE_VERIFY
2730 extern char *var_verify_service;
2731 
2732 #define VAR_VERIFY_MAP			"address_verify_map"
2733 #define DEF_VERIFY_MAP			"btree:$data_directory/verify_cache"
2734 extern char *var_verify_map;
2735 
2736 #define VAR_VERIFY_POS_EXP		"address_verify_positive_expire_time"
2737 #define DEF_VERIFY_POS_EXP		"31d"
2738 extern int var_verify_pos_exp;
2739 
2740 #define VAR_VERIFY_POS_TRY		"address_verify_positive_refresh_time"
2741 #define DEF_VERIFY_POS_TRY		"7d"
2742 extern int var_verify_pos_try;
2743 
2744 #define VAR_VERIFY_NEG_EXP		"address_verify_negative_expire_time"
2745 #define DEF_VERIFY_NEG_EXP		"3d"
2746 extern int var_verify_neg_exp;
2747 
2748 #define VAR_VERIFY_NEG_TRY		"address_verify_negative_refresh_time"
2749 #define DEF_VERIFY_NEG_TRY		"3h"
2750 extern int var_verify_neg_try;
2751 
2752 #define VAR_VERIFY_NEG_CACHE		"address_verify_negative_cache"
2753 #define DEF_VERIFY_NEG_CACHE		1
2754 extern bool var_verify_neg_cache;
2755 
2756 #define VAR_VERIFY_SCAN_CACHE		"address_verify_cache_cleanup_interval"
2757 #define DEF_VERIFY_SCAN_CACHE		"12h"
2758 extern int var_verify_scan_cache;
2759 
2760 #define VAR_VERIFY_SENDER		"address_verify_sender"
2761 #define DEF_VERIFY_SENDER		"$" VAR_DOUBLE_BOUNCE
2762 extern char *var_verify_sender;
2763 
2764 #define VAR_VERIFY_SENDER_TTL		"address_verify_sender_ttl"
2765 #define DEF_VERIFY_SENDER_TTL		"0s"
2766 extern int var_verify_sender_ttl;
2767 
2768 #define VAR_VERIFY_POLL_COUNT		"address_verify_poll_count"
2769 #define DEF_VERIFY_POLL_COUNT		"${stress?{1}:{3}}"
2770 extern int var_verify_poll_count;
2771 
2772 #define VAR_VERIFY_POLL_DELAY		"address_verify_poll_delay"
2773 #define DEF_VERIFY_POLL_DELAY		"3s"
2774 extern int var_verify_poll_delay;
2775 
2776 #define VAR_VRFY_LOCAL_XPORT		"address_verify_local_transport"
2777 #define DEF_VRFY_LOCAL_XPORT		"$" VAR_LOCAL_TRANSPORT
2778 extern char *var_vrfy_local_xport;
2779 
2780 #define VAR_VRFY_VIRT_XPORT		"address_verify_virtual_transport"
2781 #define DEF_VRFY_VIRT_XPORT		"$" VAR_VIRT_TRANSPORT
2782 extern char *var_vrfy_virt_xport;
2783 
2784 #define VAR_VRFY_RELAY_XPORT		"address_verify_relay_transport"
2785 #define DEF_VRFY_RELAY_XPORT		"$" VAR_RELAY_TRANSPORT
2786 extern char *var_vrfy_relay_xport;
2787 
2788 #define VAR_VRFY_DEF_XPORT		"address_verify_default_transport"
2789 #define DEF_VRFY_DEF_XPORT		"$" VAR_DEF_TRANSPORT
2790 extern char *var_vrfy_def_xport;
2791 
2792 #define VAR_VRFY_SND_DEF_XPORT_MAPS	"address_verify_" VAR_SND_DEF_XPORT_MAPS
2793 #define DEF_VRFY_SND_DEF_XPORT_MAPS	"$" VAR_SND_DEF_XPORT_MAPS
2794 extern char *var_snd_def_xport_maps;
2795 
2796 #define VAR_VRFY_RELAYHOST		"address_verify_relayhost"
2797 #define DEF_VRFY_RELAYHOST		"$" VAR_RELAYHOST
2798 extern char *var_vrfy_relayhost;
2799 
2800 #define VAR_VRFY_RELAY_MAPS		"address_verify_sender_dependent_relayhost_maps"
2801 #define DEF_VRFY_RELAY_MAPS		"$" VAR_SND_RELAY_MAPS
2802 extern char *var_vrfy_relay_maps;
2803 
2804 #define VAR_VRFY_XPORT_MAPS		"address_verify_transport_maps"
2805 #define DEF_VRFY_XPORT_MAPS		"$" VAR_TRANSPORT_MAPS
2806 extern char *var_vrfy_xport_maps;
2807 
2808 #define SMTP_VRFY_TGT_RCPT		"rcpt"
2809 #define SMTP_VRFY_TGT_DATA		"data"
2810 #define VAR_LMTP_VRFY_TGT		"lmtp_address_verify_target"
2811 #define DEF_LMTP_VRFY_TGT		SMTP_VRFY_TGT_RCPT
2812 #define VAR_SMTP_VRFY_TGT		"smtp_address_verify_target"
2813 #define DEF_SMTP_VRFY_TGT		SMTP_VRFY_TGT_RCPT
2814 extern char *var_smtp_vrfy_tgt;
2815 
2816  /*
2817   * Message delivery trace service.
2818   */
2819 #define VAR_TRACE_SERVICE		"trace_service_name"
2820 #define DEF_TRACE_SERVICE		MAIL_SERVICE_TRACE
2821 extern char *var_trace_service;
2822 
2823  /*
2824   * Proxymappers.
2825   */
2826 #define VAR_PROXYMAP_SERVICE		"proxymap_service_name"
2827 #define DEF_PROXYMAP_SERVICE		MAIL_SERVICE_PROXYMAP
2828 extern char *var_proxymap_service;
2829 
2830 #define VAR_PROXYWRITE_SERVICE		"proxywrite_service_name"
2831 #define DEF_PROXYWRITE_SERVICE		MAIL_SERVICE_PROXYWRITE
2832 extern char *var_proxywrite_service;
2833 
2834  /*
2835   * Mailbox/maildir delivery errors that cause delivery to be tried again.
2836   */
2837 #define VAR_MBX_DEFER_ERRS		"mailbox_defer_errors"
2838 #define DEF_MBX_DEFER_ERRS		"eagain, enospc, estale"
2839 extern char *var_mbx_defer_errs;
2840 
2841 #define VAR_MDR_DEFER_ERRS		"maildir_defer_errors"
2842 #define DEF_MDR_DEFER_ERRS		"enospc, estale"
2843 extern char *var_mdr_defer_errs;
2844 
2845  /*
2846   * Berkeley DB memory pool sizes.
2847   */
2848 #define	VAR_DB_CREATE_BUF		"berkeley_db_create_buffer_size"
2849 #define DEF_DB_CREATE_BUF		(16 * 1024 *1024)
2850 extern int var_db_create_buf;
2851 
2852 #define	VAR_DB_READ_BUF			"berkeley_db_read_buffer_size"
2853 #define DEF_DB_READ_BUF			(128 *1024)
2854 extern int var_db_read_buf;
2855 
2856  /*
2857   * OpenLDAP LMDB settings.
2858   */
2859 #define VAR_LMDB_MAP_SIZE		"lmdb_map_size"
2860 #define DEF_LMDB_MAP_SIZE		(16 * 1024 *1024)
2861 extern long var_lmdb_map_size;
2862 
2863  /*
2864   * Named queue file attributes.
2865   */
2866 #define VAR_QATTR_COUNT_LIMIT		"queue_file_attribute_count_limit"
2867 #define DEF_QATTR_COUNT_LIMIT		100
2868 extern int var_qattr_count_limit;
2869 
2870  /*
2871   * MIME support.
2872   */
2873 #define VAR_MIME_MAXDEPTH		"mime_nesting_limit"
2874 #define DEF_MIME_MAXDEPTH		100
2875 extern int var_mime_maxdepth;
2876 
2877 #define VAR_MIME_BOUND_LEN		"mime_boundary_length_limit"
2878 #define DEF_MIME_BOUND_LEN		2048
2879 extern int var_mime_bound_len;
2880 
2881 #define VAR_DISABLE_MIME_INPUT		"disable_mime_input_processing"
2882 #define DEF_DISABLE_MIME_INPUT		0
2883 extern bool var_disable_mime_input;
2884 
2885 #define VAR_DISABLE_MIME_OCONV		"disable_mime_output_conversion"
2886 #define DEF_DISABLE_MIME_OCONV		0
2887 extern bool var_disable_mime_oconv;
2888 
2889 #define VAR_STRICT_8BITMIME		"strict_8bitmime"
2890 #define DEF_STRICT_8BITMIME		0
2891 extern bool var_strict_8bitmime;
2892 
2893 #define VAR_STRICT_7BIT_HDRS		"strict_7bit_headers"
2894 #define DEF_STRICT_7BIT_HDRS		0
2895 extern bool var_strict_7bit_hdrs;
2896 
2897 #define VAR_STRICT_8BIT_BODY		"strict_8bitmime_body"
2898 #define DEF_STRICT_8BIT_BODY		0
2899 extern bool var_strict_8bit_body;
2900 
2901 #define VAR_STRICT_ENCODING		"strict_mime_encoding_domain"
2902 #define DEF_STRICT_ENCODING		0
2903 extern bool var_strict_encoding;
2904 
2905 #define VAR_AUTO_8BIT_ENC_HDR		"detect_8bit_encoding_header"
2906 #define DEF_AUTO_8BIT_ENC_HDR		1
2907 extern int var_auto_8bit_enc_hdr;
2908 
2909  /*
2910   * Bizarre.
2911   */
2912 #define VAR_SENDER_ROUTING		"sender_based_routing"
2913 #define DEF_SENDER_ROUTING		0
2914 extern bool var_sender_routing;
2915 
2916 #define VAR_XPORT_NULL_KEY	"transport_null_address_lookup_key"
2917 #define DEF_XPORT_NULL_KEY	"<>"
2918 extern char *var_xport_null_key;
2919 
2920  /*
2921   * Bounce service controls.
2922   */
2923 #define VAR_OLDLOG_COMPAT		"backwards_bounce_logfile_compatibility"
2924 #define DEF_OLDLOG_COMPAT		1
2925 extern bool var_oldlog_compat;
2926 
2927  /*
2928   * SMTPD content proxy.
2929   */
2930 #define VAR_SMTPD_PROXY_FILT		"smtpd_proxy_filter"
2931 #define DEF_SMTPD_PROXY_FILT		""
2932 extern char *var_smtpd_proxy_filt;
2933 
2934 #define VAR_SMTPD_PROXY_EHLO		"smtpd_proxy_ehlo"
2935 #define DEF_SMTPD_PROXY_EHLO		"$" VAR_MYHOSTNAME
2936 extern char *var_smtpd_proxy_ehlo;
2937 
2938 #define VAR_SMTPD_PROXY_TMOUT		"smtpd_proxy_timeout"
2939 #define DEF_SMTPD_PROXY_TMOUT		"100s"
2940 extern int var_smtpd_proxy_tmout;
2941 
2942 #define VAR_SMTPD_PROXY_OPTS		"smtpd_proxy_options"
2943 #define DEF_SMTPD_PROXY_OPTS		""
2944 extern char *var_smtpd_proxy_opts;
2945 
2946  /*
2947   * Transparency options for mail input interfaces and for the cleanup server
2948   * behind them. These should turn off stuff we don't want to happen, because
2949   * the default is to do a lot of things.
2950   */
2951 #define VAR_INPUT_TRANSP		"receive_override_options"
2952 #define DEF_INPUT_TRANSP		""
2953 extern char *var_smtpd_input_transp;
2954 
2955  /*
2956   * SMTP server policy delegation.
2957   */
2958 #define VAR_SMTPD_POLICY_TMOUT		"smtpd_policy_service_timeout"
2959 #define DEF_SMTPD_POLICY_TMOUT		"100s"
2960 extern int var_smtpd_policy_tmout;
2961 
2962 #define VAR_SMTPD_POLICY_REQ_LIMIT	"smtpd_policy_service_request_limit"
2963 #define DEF_SMTPD_POLICY_REQ_LIMIT	0
2964 extern int var_smtpd_policy_req_limit;
2965 
2966 #define VAR_SMTPD_POLICY_IDLE		"smtpd_policy_service_max_idle"
2967 #define DEF_SMTPD_POLICY_IDLE		"300s"
2968 extern int var_smtpd_policy_idle;
2969 
2970 #define VAR_SMTPD_POLICY_TTL		"smtpd_policy_service_max_ttl"
2971 #define DEF_SMTPD_POLICY_TTL		"1000s"
2972 extern int var_smtpd_policy_ttl;
2973 
2974 #define VAR_SMTPD_POLICY_TRY_LIMIT	"smtpd_policy_service_try_limit"
2975 #define DEF_SMTPD_POLICY_TRY_LIMIT	2
2976 extern int var_smtpd_policy_try_limit;
2977 
2978 #define VAR_SMTPD_POLICY_TRY_DELAY	"smtpd_policy_service_retry_delay"
2979 #define DEF_SMTPD_POLICY_TRY_DELAY	"1s"
2980 extern int var_smtpd_policy_try_delay;
2981 
2982 #define VAR_SMTPD_POLICY_DEF_ACTION	"smtpd_policy_service_default_action"
2983 #define DEF_SMTPD_POLICY_DEF_ACTION	"451 4.3.5 Server configuration problem"
2984 extern char *var_smtpd_policy_def_action;
2985 
2986 #define VAR_SMTPD_POLICY_CONTEXT	"smtpd_policy_service_policy_context"
2987 #define DEF_SMTPD_POLICY_CONTEXT	""
2988 extern char *var_smtpd_policy_context;
2989 
2990 #define CHECK_POLICY_SERVICE		"check_policy_service"
2991 
2992  /*
2993   * Client rate control.
2994   */
2995 #define VAR_SMTPD_CRATE_LIMIT		"smtpd_client_connection_rate_limit"
2996 #define DEF_SMTPD_CRATE_LIMIT		0
2997 extern int var_smtpd_crate_limit;
2998 
2999 #define VAR_SMTPD_CCONN_LIMIT		"smtpd_client_connection_count_limit"
3000 #define DEF_SMTPD_CCONN_LIMIT		((DEF_PROC_LIMIT + 1) / 2)
3001 extern int var_smtpd_cconn_limit;
3002 
3003 #define VAR_SMTPD_CMAIL_LIMIT		"smtpd_client_message_rate_limit"
3004 #define DEF_SMTPD_CMAIL_LIMIT		0
3005 extern int var_smtpd_cmail_limit;
3006 
3007 #define VAR_SMTPD_CRCPT_LIMIT		"smtpd_client_recipient_rate_limit"
3008 #define DEF_SMTPD_CRCPT_LIMIT		0
3009 extern int var_smtpd_crcpt_limit;
3010 
3011 #define VAR_SMTPD_CNTLS_LIMIT		"smtpd_client_new_tls_session_rate_limit"
3012 #define DEF_SMTPD_CNTLS_LIMIT		0
3013 extern int var_smtpd_cntls_limit;
3014 
3015 #define VAR_SMTPD_CAUTH_LIMIT		"smtpd_client_auth_rate_limit"
3016 #define DEF_SMTPD_CAUTH_LIMIT		0
3017 extern int var_smtpd_cauth_limit;
3018 
3019 #define VAR_SMTPD_HOGGERS		"smtpd_client_event_limit_exceptions"
3020 #define DEF_SMTPD_HOGGERS		"${smtpd_client_connection_limit_exceptions:$" VAR_MYNETWORKS "}"
3021 extern char *var_smtpd_hoggers;
3022 
3023 #define VAR_ANVIL_TIME_UNIT		"anvil_rate_time_unit"
3024 #define DEF_ANVIL_TIME_UNIT		"60s"
3025 extern int var_anvil_time_unit;
3026 
3027 #define VAR_ANVIL_STAT_TIME		"anvil_status_update_time"
3028 #define DEF_ANVIL_STAT_TIME		"600s"
3029 extern int var_anvil_stat_time;
3030 
3031  /*
3032   * Temporary stop gap.
3033   */
3034 #if 0
3035 #include <anvil_clnt.h>
3036 
3037 #define VAR_ANVIL_SERVICE		"client_connection_rate_service_name"
3038 #define DEF_ANVIL_SERVICE		"local:" ANVIL_CLASS "/" ANVIL_SERVICE
3039 extern char *var_anvil_service;
3040 
3041 #endif
3042 
3043  /*
3044   * What domain names to assume when no valid domain context exists.
3045   */
3046 #define VAR_REM_RWR_DOMAIN		"remote_header_rewrite_domain"
3047 #define DEF_REM_RWR_DOMAIN		""
3048 extern char *var_remote_rwr_domain;
3049 
3050 #define CHECK_ADDR_MAP			"check_address_map"
3051 
3052 #define VAR_LOC_RWR_CLIENTS		"local_header_rewrite_clients"
3053 #define DEF_LOC_RWR_CLIENTS		PERMIT_INET_INTERFACES
3054 extern char *var_local_rwr_clients;
3055 
3056  /*
3057   * EHLO keyword filter.
3058   */
3059 #define VAR_SMTPD_EHLO_DIS_WORDS	"smtpd_discard_ehlo_keywords"
3060 #define DEF_SMTPD_EHLO_DIS_WORDS	""
3061 extern char *var_smtpd_ehlo_dis_words;
3062 
3063 #define VAR_SMTPD_EHLO_DIS_MAPS		"smtpd_discard_ehlo_keyword_address_maps"
3064 #define DEF_SMTPD_EHLO_DIS_MAPS		""
3065 extern char *var_smtpd_ehlo_dis_maps;
3066 
3067 #define VAR_SMTP_EHLO_DIS_WORDS		"smtp_discard_ehlo_keywords"
3068 #define DEF_SMTP_EHLO_DIS_WORDS		""
3069 #define VAR_LMTP_EHLO_DIS_WORDS		"lmtp_discard_lhlo_keywords"
3070 #define DEF_LMTP_EHLO_DIS_WORDS		""
3071 extern char *var_smtp_ehlo_dis_words;
3072 
3073 #define VAR_SMTP_EHLO_DIS_MAPS		"smtp_discard_ehlo_keyword_address_maps"
3074 #define DEF_SMTP_EHLO_DIS_MAPS		""
3075 #define VAR_LMTP_EHLO_DIS_MAPS		"lmtp_discard_lhlo_keyword_address_maps"
3076 #define DEF_LMTP_EHLO_DIS_MAPS		""
3077 extern char *var_smtp_ehlo_dis_maps;
3078 
3079  /*
3080   * gcc workaround for warnings about empty or null format strings.
3081   */
3082 extern const char null_format_string[1];
3083 
3084  /*
3085   * Characters to reject or strip.
3086   */
3087 #define VAR_MSG_REJECT_CHARS		"message_reject_characters"
3088 #define DEF_MSG_REJECT_CHARS		""
3089 extern char *var_msg_reject_chars;
3090 
3091 #define VAR_MSG_STRIP_CHARS		"message_strip_characters"
3092 #define DEF_MSG_STRIP_CHARS		""
3093 extern char *var_msg_strip_chars;
3094 
3095  /*
3096   * Local forwarding complexity controls.
3097   */
3098 #define VAR_FROZEN_DELIVERED		"frozen_delivered_to"
3099 #define DEF_FROZEN_DELIVERED		1
3100 extern bool var_frozen_delivered;
3101 
3102 #define VAR_RESET_OWNER_ATTR		"reset_owner_alias"
3103 #define DEF_RESET_OWNER_ATTR		0
3104 extern bool var_reset_owner_attr;
3105 
3106  /*
3107   * Delay logging time roundup.
3108   */
3109 #define VAR_DELAY_MAX_RES		"delay_logging_resolution_limit"
3110 #define MAX_DELAY_MAX_RES		6
3111 #define DEF_DELAY_MAX_RES		2
3112 #define MIN_DELAY_MAX_RES		0
3113 extern int var_delay_max_res;
3114 
3115  /*
3116   * Bounce message templates.
3117   */
3118 #define VAR_BOUNCE_TMPL			"bounce_template_file"
3119 #define DEF_BOUNCE_TMPL			""
3120 extern char *var_bounce_tmpl;
3121 
3122  /*
3123   * Sender-dependent authentication.
3124   */
3125 #define VAR_SMTP_SENDER_AUTH	"smtp_sender_dependent_authentication"
3126 #define DEF_SMTP_SENDER_AUTH	0
3127 #define VAR_LMTP_SENDER_AUTH	"lmtp_sender_dependent_authentication"
3128 #define DEF_LMTP_SENDER_AUTH	0
3129 extern bool var_smtp_sender_auth;
3130 
3131  /*
3132   * Allow CNAME lookup result to override the server hostname.
3133   */
3134 #define VAR_SMTP_CNAME_OVERR		"smtp_cname_overrides_servername"
3135 #define DEF_SMTP_CNAME_OVERR		0
3136 #define VAR_LMTP_CNAME_OVERR		"lmtp_cname_overrides_servername"
3137 #define DEF_LMTP_CNAME_OVERR		0
3138 extern bool var_smtp_cname_overr;
3139 
3140  /*
3141   * TLS cipherlists
3142   */
3143 #ifdef USE_TLS
3144 #include <openssl/opensslv.h>
3145 #if OPENSSL_VERSION_NUMBER >= 0x1000000fL
3146 #define PREFER_aNULL "aNULL:-aNULL:"
3147 #else
3148 #define PREFER_aNULL ""
3149 #endif
3150 #else
3151 #define PREFER_aNULL ""
3152 #endif
3153 
3154 #define VAR_TLS_HIGH_CLIST	"tls_high_cipherlist"
3155 #define DEF_TLS_HIGH_CLIST	PREFER_aNULL "HIGH:@STRENGTH"
3156 extern char *var_tls_high_clist;
3157 
3158 #define VAR_TLS_MEDIUM_CLIST	"tls_medium_cipherlist"
3159 #define DEF_TLS_MEDIUM_CLIST	PREFER_aNULL "HIGH:MEDIUM:+RC4:@STRENGTH"
3160 extern char *var_tls_medium_clist;
3161 
3162 #define VAR_TLS_LOW_CLIST	"tls_low_cipherlist"
3163 #define DEF_TLS_LOW_CLIST	PREFER_aNULL "HIGH:MEDIUM:LOW:+RC4:@STRENGTH"
3164 extern char *var_tls_low_clist;
3165 
3166 #define VAR_TLS_EXPORT_CLIST	"tls_export_cipherlist"
3167 #define DEF_TLS_EXPORT_CLIST	PREFER_aNULL "HIGH:MEDIUM:LOW:EXPORT:+RC4:@STRENGTH"
3168 extern char *var_tls_export_clist;
3169 
3170 #define VAR_TLS_NULL_CLIST	"tls_null_cipherlist"
3171 #define DEF_TLS_NULL_CLIST	"eNULL:!aNULL"
3172 extern char *var_tls_null_clist;
3173 
3174 #define VAR_TLS_EECDH_STRONG	"tls_eecdh_strong_curve"
3175 #define DEF_TLS_EECDH_STRONG	"prime256v1"
3176 extern char *var_tls_eecdh_strong;
3177 
3178 #define VAR_TLS_EECDH_ULTRA	"tls_eecdh_ultra_curve"
3179 #define DEF_TLS_EECDH_ULTRA	"secp384r1"
3180 extern char *var_tls_eecdh_ultra;
3181 
3182 #define VAR_TLS_PREEMPT_CLIST	"tls_preempt_cipherlist"
3183 #define DEF_TLS_PREEMPT_CLIST	0
3184 extern bool var_tls_preempt_clist;
3185 
3186 #define VAR_TLS_MULTI_WILDCARD	"tls_wildcard_matches_multiple_labels"
3187 #define DEF_TLS_MULTI_WILDCARD	1
3188 extern bool var_tls_multi_wildcard;
3189 
3190  /* The tweak for CVE-2010-4180 is needed in some versions prior to 1.0.1 */
3191  /* The tweak for CVE-2005-2969 is needed in some versions prior to 1.0.0 */
3192 #if defined(USE_TLS) && (OPENSSL_VERSION_NUMBER < 0x1000100fL)
3193 #if (OPENSSL_VERSION_NUMBER < 0x1000000fL)
3194 #define TLS_BUG_TWEAKS		"CVE-2005-2969 CVE-2010-4180"
3195 #else
3196 #define TLS_BUG_TWEAKS		"CVE-2010-4180"
3197 #endif
3198 #else
3199 #define TLS_BUG_TWEAKS		""
3200 #endif
3201 
3202 #define VAR_TLS_BUG_TWEAKS	"tls_disable_workarounds"
3203 #define DEF_TLS_BUG_TWEAKS	TLS_BUG_TWEAKS
3204 extern char *var_tls_bug_tweaks;
3205 
3206 #define VAR_TLS_SSL_OPTIONS	"tls_ssl_options"
3207 #define DEF_TLS_SSL_OPTIONS	""
3208 extern char *var_tls_ssl_options;
3209 
3210 #define VAR_TLS_TKT_CIPHER	"tls_session_ticket_cipher"
3211 #define DEF_TLS_TKT_CIPHER	"aes-256-cbc"
3212 extern char *var_tls_tkt_cipher;
3213 
3214 #define VAR_TLS_BC_PKEY_FPRINT	"tls_legacy_public_key_fingerprints"
3215 #define DEF_TLS_BC_PKEY_FPRINT	0
3216 extern bool var_tls_bc_pkey_fprint;
3217 
3218  /*
3219   * Ordered list of DANE digest algorithms.
3220   */
3221 #define TLS_DANE_AGILITY_OFF	"off"
3222 #define TLS_DANE_AGILITY_ON	"on"
3223 #define TLS_DANE_AGILITY_MAYBE	"maybe"
3224 #define VAR_TLS_DANE_AGILITY	"tls_dane_digest_agility"
3225 #define DEF_TLS_DANE_AGILITY	TLS_DANE_AGILITY_ON
3226 extern char *var_tls_dane_agility;
3227 
3228  /*
3229   * Ordered list of DANE digest algorithms.
3230   */
3231 #define VAR_TLS_DANE_DIGESTS	"tls_dane_digests"
3232 #define DEF_TLS_DANE_DIGESTS	"sha512 sha256"
3233 extern char *var_tls_dane_digests;
3234 
3235  /*
3236   * External interface for enabling trust-anchor digests, which are risky
3237   * when the corresponding certificate is missing from the peer chain (this
3238   * can't happen with the leaf certificate).
3239   */
3240 #define VAR_TLS_DANE_TAA_DGST	"tls_dane_trust_anchor_digest_enable"
3241 #define DEF_TLS_DANE_TAA_DGST	1
3242 extern bool var_tls_dane_taa_dgst;
3243 
3244  /*
3245   * Sendmail-style mail filter support.
3246   */
3247 #define VAR_SMTPD_MILTERS		"smtpd_milters"
3248 #define DEF_SMTPD_MILTERS		""
3249 extern char *var_smtpd_milters;
3250 
3251 #define VAR_CLEANUP_MILTERS		"non_smtpd_milters"
3252 #define DEF_CLEANUP_MILTERS		""
3253 extern char *var_cleanup_milters;
3254 
3255 #define VAR_MILT_DEF_ACTION		"milter_default_action"
3256 #define DEF_MILT_DEF_ACTION		"tempfail"
3257 extern char *var_milt_def_action;
3258 
3259 #define VAR_MILT_CONN_MACROS		"milter_connect_macros"
3260 #define DEF_MILT_CONN_MACROS		"j {daemon_name} v"
3261 extern char *var_milt_conn_macros;
3262 
3263 #define VAR_MILT_HELO_MACROS		"milter_helo_macros"
3264 #define DEF_MILT_HELO_MACROS		"{tls_version} {cipher} {cipher_bits}" \
3265 					" {cert_subject} {cert_issuer}"
3266 extern char *var_milt_helo_macros;
3267 
3268 #define VAR_MILT_MAIL_MACROS		"milter_mail_macros"
3269 #define DEF_MILT_MAIL_MACROS		"i {auth_type} {auth_authen}" \
3270 					" {auth_author} {mail_addr}" \
3271 					" {mail_host} {mail_mailer}"
3272 extern char *var_milt_mail_macros;
3273 
3274 #define VAR_MILT_RCPT_MACROS		"milter_rcpt_macros"
3275 #define DEF_MILT_RCPT_MACROS		"i {rcpt_addr} {rcpt_host}" \
3276 					" {rcpt_mailer}"
3277 extern char *var_milt_rcpt_macros;
3278 
3279 #define VAR_MILT_DATA_MACROS		"milter_data_macros"
3280 #define DEF_MILT_DATA_MACROS		"i"
3281 extern char *var_milt_data_macros;
3282 
3283 #define VAR_MILT_UNK_MACROS		"milter_unknown_command_macros"
3284 #define DEF_MILT_UNK_MACROS		""
3285 extern char *var_milt_unk_macros;
3286 
3287 #define VAR_MILT_EOH_MACROS		"milter_end_of_header_macros"
3288 #define DEF_MILT_EOH_MACROS		"i"
3289 extern char *var_milt_eoh_macros;
3290 
3291 #define VAR_MILT_EOD_MACROS		"milter_end_of_data_macros"
3292 #define DEF_MILT_EOD_MACROS		"i"
3293 extern char *var_milt_eod_macros;
3294 
3295 #define VAR_MILT_CONN_TIME		"milter_connect_timeout"
3296 #define DEF_MILT_CONN_TIME		"30s"
3297 extern int var_milt_conn_time;
3298 
3299 #define VAR_MILT_CMD_TIME		"milter_command_timeout"
3300 #define DEF_MILT_CMD_TIME		"30s"
3301 extern int var_milt_cmd_time;
3302 
3303 #define VAR_MILT_MSG_TIME		"milter_content_timeout"
3304 #define DEF_MILT_MSG_TIME		"300s"
3305 extern int var_milt_msg_time;
3306 
3307 #define VAR_MILT_PROTOCOL		"milter_protocol"
3308 #define DEF_MILT_PROTOCOL		"6"
3309 extern char *var_milt_protocol;
3310 
3311 #define VAR_MILT_DEF_ACTION		"milter_default_action"
3312 #define DEF_MILT_DEF_ACTION		"tempfail"
3313 extern char *var_milt_def_action;
3314 
3315 #define VAR_MILT_DAEMON_NAME		"milter_macro_daemon_name"
3316 #define DEF_MILT_DAEMON_NAME		"$" VAR_MYHOSTNAME
3317 extern char *var_milt_daemon_name;
3318 
3319 #define VAR_MILT_V			"milter_macro_v"
3320 #define DEF_MILT_V			"$" VAR_MAIL_NAME " $" VAR_MAIL_VERSION
3321 extern char *var_milt_v;
3322 
3323 #define VAR_MILT_HEAD_CHECKS		"milter_header_checks"
3324 #define DEF_MILT_HEAD_CHECKS		""
3325 extern char *var_milt_head_checks;
3326 
3327 #define VAR_MILT_MACRO_DEFLTS		"milter_macro_defaults"
3328 #define DEF_MILT_MACRO_DEFLTS		""
3329 extern char *var_milt_macro_deflts;
3330 
3331  /*
3332   * What internal mail do we inspect/stamp/etc.? This is not yet safe enough
3333   * to enable world-wide.
3334   */
3335 #define INT_FILT_CLASS_NONE		""
3336 #define INT_FILT_CLASS_NOTIFY		"notify"
3337 #define INT_FILT_CLASS_BOUNCE		"bounce"
3338 
3339 #define VAR_INT_FILT_CLASSES		"internal_mail_filter_classes"
3340 #define DEF_INT_FILT_CLASSES		INT_FILT_CLASS_NONE
3341 extern char *var_int_filt_classes;
3342 
3343  /*
3344   * This could break logfile processors, so it's off by default.
3345   */
3346 #define VAR_SMTPD_CLIENT_PORT_LOG		"smtpd_client_port_logging"
3347 #define DEF_SMTPD_CLIENT_PORT_LOG		0
3348 extern bool var_smtpd_client_port_log;
3349 
3350 #define VAR_QMQPD_CLIENT_PORT_LOG		"qmqpd_client_port_logging"
3351 #define DEF_QMQPD_CLIENT_PORT_LOG		0
3352 extern bool var_qmqpd_client_port_log;
3353 
3354  /*
3355   * Header/body checks in delivery agents.
3356   */
3357 #define VAR_SMTP_HEAD_CHKS	"smtp_header_checks"
3358 #define DEF_SMTP_HEAD_CHKS	""
3359 extern char *var_smtp_head_chks;
3360 
3361 #define VAR_SMTP_MIME_CHKS	"smtp_mime_header_checks"
3362 #define DEF_SMTP_MIME_CHKS	""
3363 extern char *var_smtp_mime_chks;
3364 
3365 #define VAR_SMTP_NEST_CHKS	"smtp_nested_header_checks"
3366 #define DEF_SMTP_NEST_CHKS	""
3367 extern char *var_smtp_nest_chks;
3368 
3369 #define VAR_SMTP_BODY_CHKS	"smtp_body_checks"
3370 #define DEF_SMTP_BODY_CHKS	""
3371 extern char *var_smtp_body_chks;
3372 
3373 #define VAR_LMTP_HEAD_CHKS	"lmtp_header_checks"
3374 #define DEF_LMTP_HEAD_CHKS	""
3375 #define VAR_LMTP_MIME_CHKS	"lmtp_mime_header_checks"
3376 #define DEF_LMTP_MIME_CHKS	""
3377 #define VAR_LMTP_NEST_CHKS	"lmtp_nested_header_checks"
3378 #define DEF_LMTP_NEST_CHKS	""
3379 #define VAR_LMTP_BODY_CHKS	"lmtp_body_checks"
3380 #define DEF_LMTP_BODY_CHKS	""
3381 
3382 #define VAR_SMTP_ADDR_PREF	"smtp_address_preference"
3383 #ifdef HAS_IPV6
3384 #define DEF_SMTP_ADDR_PREF	INET_PROTO_NAME_ANY
3385 #else
3386 #define DEF_SMTP_ADDR_PREF	INET_PROTO_NAME_IPV4
3387 #endif
3388 extern char *var_smtp_addr_pref;
3389 
3390 #define VAR_LMTP_ADDR_PREF	"lmtp_address_preference"
3391 #define DEF_LMTP_ADDR_PREF	DEF_SMTP_ADDR_PREF
3392 
3393  /*
3394   * Scheduler concurrency feedback algorithms.
3395   */
3396 #define VAR_CONC_POS_FDBACK	"default_destination_concurrency_positive_feedback"
3397 #define _CONC_POS_FDBACK	"_destination_concurrency_positive_feedback"
3398 #define DEF_CONC_POS_FDBACK	"1"
3399 extern char *var_conc_pos_feedback;
3400 
3401 #define VAR_CONC_NEG_FDBACK	"default_destination_concurrency_negative_feedback"
3402 #define _CONC_NEG_FDBACK	"_destination_concurrency_negative_feedback"
3403 #define DEF_CONC_NEG_FDBACK	"1"
3404 extern char *var_conc_neg_feedback;
3405 
3406 #define CONC_FDBACK_NAME_WIN	"concurrency"
3407 #define CONC_FDBACK_NAME_SQRT_WIN "sqrt_concurrency"
3408 
3409 #define VAR_CONC_COHORT_LIM	"default_destination_concurrency_failed_cohort_limit"
3410 #define _CONC_COHORT_LIM	"_destination_concurrency_failed_cohort_limit"
3411 #define DEF_CONC_COHORT_LIM	1
3412 extern int var_conc_cohort_limit;
3413 
3414 #define VAR_CONC_FDBACK_DEBUG	"destination_concurrency_feedback_debug"
3415 #define DEF_CONC_FDBACK_DEBUG	0
3416 extern bool var_conc_feedback_debug;
3417 
3418 #define VAR_DEST_RATE_DELAY	"default_destination_rate_delay"
3419 #define _DEST_RATE_DELAY	"_destination_rate_delay"
3420 #define DEF_DEST_RATE_DELAY	"0s"
3421 extern int var_dest_rate_delay;
3422 
3423 #define VAR_XPORT_RATE_DELAY	"default_transport_rate_delay"
3424 #define _XPORT_RATE_DELAY	"_transport_rate_delay"
3425 #define DEF_XPORT_RATE_DELAY	"0s"
3426 extern int var_xport_rate_delay;
3427 
3428  /*
3429   * Stress handling.
3430   */
3431 #define VAR_STRESS		"stress"
3432 #define DEF_STRESS		""
3433 extern char *var_stress;
3434 
3435  /*
3436   * Mailbox ownership.
3437   */
3438 #define VAR_STRICT_MBOX_OWNER	"strict_mailbox_ownership"
3439 #define DEF_STRICT_MBOX_OWNER	1
3440 extern bool var_strict_mbox_owner;
3441 
3442  /*
3443   * Window scaling workaround.
3444   */
3445 #define VAR_INET_WINDOW		"tcp_windowsize"
3446 #define DEF_INET_WINDOW		0
3447 extern int var_inet_windowsize;
3448 
3449  /*
3450   * Plug-in multi-instance support. Only the first two paramaters are used by
3451   * Postfix itself; the other ones are reserved for the instance manager.
3452   */
3453 #define VAR_MULTI_CONF_DIRS	"multi_instance_directories"
3454 #define DEF_MULTI_CONF_DIRS	""
3455 extern char *var_multi_conf_dirs;
3456 
3457 #define VAR_MULTI_WRAPPER	"multi_instance_wrapper"
3458 #define DEF_MULTI_WRAPPER	""
3459 extern char *var_multi_wrapper;
3460 
3461 #define VAR_MULTI_NAME		"multi_instance_name"
3462 #define DEF_MULTI_NAME		""
3463 extern char *var_multi_name;
3464 
3465 #define VAR_MULTI_GROUP		"multi_instance_group"
3466 #define DEF_MULTI_GROUP		""
3467 extern char *var_multi_group;
3468 
3469 #define VAR_MULTI_ENABLE	"multi_instance_enable"
3470 #define DEF_MULTI_ENABLE	0
3471 extern bool var_multi_enable;
3472 
3473  /*
3474   * postmulti(1) instance manager
3475   */
3476 #define VAR_MULTI_START_CMDS	"postmulti_start_commands"
3477 #define DEF_MULTI_START_CMDS	"start"
3478 extern char *var_multi_start_cmds;
3479 
3480 #define VAR_MULTI_STOP_CMDS	"postmulti_stop_commands"
3481 #define DEF_MULTI_STOP_CMDS	"stop abort drain quick-stop"
3482 extern char *var_multi_stop_cmds;
3483 
3484 #define VAR_MULTI_CNTRL_CMDS	"postmulti_control_commands"
3485 #define DEF_MULTI_CNTRL_CMDS	"reload flush"
3486 extern char *var_multi_cntrl_cmds;
3487 
3488  /*
3489   * postscreen(8)
3490   */
3491 #define VAR_PSC_CACHE_MAP	"postscreen_cache_map"
3492 #define DEF_PSC_CACHE_MAP	"btree:$data_directory/postscreen_cache"
3493 extern char *var_psc_cache_map;
3494 
3495 #define VAR_SMTPD_SERVICE	"smtpd_service_name"
3496 #define DEF_SMTPD_SERVICE	"smtpd"
3497 extern char *var_smtpd_service;
3498 
3499 #define VAR_PSC_POST_QLIMIT	"postscreen_post_queue_limit"
3500 #define DEF_PSC_POST_QLIMIT	"$" VAR_PROC_LIMIT
3501 extern int var_psc_post_queue_limit;
3502 
3503 #define VAR_PSC_PRE_QLIMIT	"postscreen_pre_queue_limit"
3504 #define DEF_PSC_PRE_QLIMIT	"$" VAR_PROC_LIMIT
3505 extern int var_psc_pre_queue_limit;
3506 
3507 #define VAR_PSC_CACHE_RET	"postscreen_cache_retention_time"
3508 #define DEF_PSC_CACHE_RET	"7d"
3509 extern int var_psc_cache_ret;
3510 
3511 #define VAR_PSC_CACHE_SCAN	"postscreen_cache_cleanup_interval"
3512 #define DEF_PSC_CACHE_SCAN	"12h"
3513 extern int var_psc_cache_scan;
3514 
3515 #define VAR_PSC_GREET_WAIT	"postscreen_greet_wait"
3516 #define DEF_PSC_GREET_WAIT	"${stress?{2}:{6}}s"
3517 extern int var_psc_greet_wait;
3518 
3519 #define VAR_PSC_PREGR_BANNER	"postscreen_greet_banner"
3520 #define DEF_PSC_PREGR_BANNER	"$" VAR_SMTPD_BANNER
3521 extern char *var_psc_pregr_banner;
3522 
3523 #define VAR_PSC_PREGR_ENABLE	"postscreen_greet_enable"
3524 #define DEF_PSC_PREGR_ENABLE	no
3525 extern char *var_psc_pregr_enable;
3526 
3527 #define VAR_PSC_PREGR_ACTION	"postscreen_greet_action"
3528 #define DEF_PSC_PREGR_ACTION	"ignore"
3529 extern char *var_psc_pregr_action;
3530 
3531 #define VAR_PSC_PREGR_TTL	"postscreen_greet_ttl"
3532 #define DEF_PSC_PREGR_TTL	"1d"
3533 extern int var_psc_pregr_ttl;
3534 
3535 #define VAR_PSC_DNSBL_SITES	"postscreen_dnsbl_sites"
3536 #define DEF_PSC_DNSBL_SITES	""
3537 extern char *var_psc_dnsbl_sites;
3538 
3539 #define VAR_PSC_DNSBL_THRESH	"postscreen_dnsbl_threshold"
3540 #define DEF_PSC_DNSBL_THRESH	1
3541 extern int var_psc_dnsbl_thresh;
3542 
3543 #define VAR_PSC_DNSBL_WTHRESH	"postscreen_dnsbl_whitelist_threshold"
3544 #define DEF_PSC_DNSBL_WTHRESH	0
3545 extern int var_psc_dnsbl_wthresh;
3546 
3547 #define VAR_PSC_DNSBL_ENABLE	"postscreen_dnsbl_enable"
3548 #define DEF_PSC_DNSBL_ENABLE	0
3549 extern char *var_psc_dnsbl_enable;
3550 
3551 #define VAR_PSC_DNSBL_ACTION	"postscreen_dnsbl_action"
3552 #define DEF_PSC_DNSBL_ACTION	"ignore"
3553 extern char *var_psc_dnsbl_action;
3554 
3555 #define VAR_PSC_DNSBL_MIN_TTL	"postscreen_dnsbl_min_ttl"
3556 #define DEF_PSC_DNSBL_MIN_TTL	"60s"
3557 extern int var_psc_dnsbl_min_ttl;
3558 
3559 #define VAR_PSC_DNSBL_MAX_TTL	"postscreen_dnsbl_max_ttl"
3560 #define DEF_PSC_DNSBL_MAX_TTL	"${postscreen_dnsbl_ttl?{$postscreen_dnsbl_ttl}:{1}}h"
3561 extern int var_psc_dnsbl_max_ttl;
3562 
3563 #define	VAR_PSC_DNSBL_REPLY	"postscreen_dnsbl_reply_map"
3564 #define	DEF_PSC_DNSBL_REPLY	""
3565 extern char *var_psc_dnsbl_reply;
3566 
3567 #define VAR_PSC_DNSBL_TMOUT	"postscreen_dnsbl_timeout"
3568 #define DEF_PSC_DNSBL_TMOUT	"10s"
3569 extern int var_psc_dnsbl_tmout;
3570 
3571 #define VAR_PSC_PIPEL_ENABLE	"postscreen_pipelining_enable"
3572 #define DEF_PSC_PIPEL_ENABLE	0
3573 extern bool var_psc_pipel_enable;
3574 
3575 #define VAR_PSC_PIPEL_ACTION	"postscreen_pipelining_action"
3576 #define DEF_PSC_PIPEL_ACTION	"enforce"
3577 extern char *var_psc_pipel_action;
3578 
3579 #define VAR_PSC_PIPEL_TTL	"postscreen_pipelining_ttl"
3580 #define DEF_PSC_PIPEL_TTL	"30d"
3581 extern int var_psc_pipel_ttl;
3582 
3583 #define VAR_PSC_NSMTP_ENABLE	"postscreen_non_smtp_command_enable"
3584 #define DEF_PSC_NSMTP_ENABLE	0
3585 extern bool var_psc_nsmtp_enable;
3586 
3587 #define VAR_PSC_NSMTP_ACTION	"postscreen_non_smtp_command_action"
3588 #define DEF_PSC_NSMTP_ACTION	"drop"
3589 extern char *var_psc_nsmtp_action;
3590 
3591 #define VAR_PSC_NSMTP_TTL	"postscreen_non_smtp_command_ttl"
3592 #define DEF_PSC_NSMTP_TTL	"30d"
3593 extern int var_psc_nsmtp_ttl;
3594 
3595 #define VAR_PSC_BARLF_ENABLE	"postscreen_bare_newline_enable"
3596 #define DEF_PSC_BARLF_ENABLE	0
3597 extern bool var_psc_barlf_enable;
3598 
3599 #define VAR_PSC_BARLF_ACTION	"postscreen_bare_newline_action"
3600 #define DEF_PSC_BARLF_ACTION	"ignore"
3601 extern char *var_psc_barlf_action;
3602 
3603 #define VAR_PSC_BARLF_TTL	"postscreen_bare_newline_ttl"
3604 #define DEF_PSC_BARLF_TTL	"30d"
3605 extern int var_psc_barlf_ttl;
3606 
3607 #define VAR_PSC_BLIST_ACTION	"postscreen_blacklist_action"
3608 #define DEF_PSC_BLIST_ACTION	"ignore"
3609 extern char *var_psc_blist_nets;
3610 
3611 #define VAR_PSC_CMD_COUNT	"postscreen_command_count_limit"
3612 #define DEF_PSC_CMD_COUNT	20
3613 extern int var_psc_cmd_count;
3614 
3615 #define VAR_PSC_CMD_TIME		"postscreen_command_time_limit"
3616 #define DEF_PSC_CMD_TIME		DEF_SMTPD_TMOUT
3617 extern char *var_psc_cmd_time;
3618 
3619 #define VAR_PSC_WATCHDOG		"postscreen_watchdog_timeout"
3620 #define DEF_PSC_WATCHDOG		"10s"
3621 extern int var_psc_watchdog;
3622 
3623 #define VAR_PSC_EHLO_DIS_WORDS	"postscreen_discard_ehlo_keywords"
3624 #define DEF_PSC_EHLO_DIS_WORDS	"$" VAR_SMTPD_EHLO_DIS_WORDS
3625 extern char *var_psc_ehlo_dis_words;
3626 
3627 #define VAR_PSC_EHLO_DIS_MAPS	"postscreen_discard_ehlo_keyword_address_maps"
3628 #define DEF_PSC_EHLO_DIS_MAPS	"$" VAR_SMTPD_EHLO_DIS_MAPS
3629 extern char *var_psc_ehlo_dis_maps;
3630 
3631 #define VAR_PSC_TLS_LEVEL	"postscreen_tls_security_level"
3632 #define DEF_PSC_TLS_LEVEL	"$" VAR_SMTPD_TLS_LEVEL
3633 extern char *var_psc_tls_level;
3634 
3635 #define VAR_PSC_USE_TLS		"postscreen_use_tls"
3636 #define DEF_PSC_USE_TLS		"$" VAR_SMTPD_USE_TLS
3637 extern bool var_psc_use_tls;
3638 
3639 #define VAR_PSC_ENFORCE_TLS	"postscreen_enforce_tls"
3640 #define DEF_PSC_ENFORCE_TLS	"$" VAR_SMTPD_ENFORCE_TLS
3641 extern bool var_psc_enforce_tls;
3642 
3643 #define VAR_PSC_FORBID_CMDS	"postscreen_forbidden_commands"
3644 #define DEF_PSC_FORBID_CMDS	"$" VAR_SMTPD_FORBID_CMDS
3645 extern char *var_psc_forbid_cmds;
3646 
3647 #define VAR_PSC_HELO_REQUIRED	"postscreen_helo_required"
3648 #define DEF_PSC_HELO_REQUIRED	"$" VAR_HELO_REQUIRED
3649 extern bool var_psc_helo_required;
3650 
3651 #define VAR_PSC_DISABLE_VRFY	"postscreen_disable_vrfy_command"
3652 #define DEF_PSC_DISABLE_VRFY	"$" VAR_DISABLE_VRFY_CMD
3653 extern bool var_psc_disable_vrfy;
3654 
3655 #define VAR_PSC_CCONN_LIMIT	"postscreen_client_connection_count_limit"
3656 #define DEF_PSC_CCONN_LIMIT	"$" VAR_SMTPD_CCONN_LIMIT
3657 extern int var_psc_cconn_limit;
3658 
3659 #define VAR_PSC_REJ_FOOTER	"postscreen_reject_footer"
3660 #define DEF_PSC_REJ_FOOTER	"$" VAR_SMTPD_REJ_FOOTER
3661 extern char *var_psc_rej_footer;
3662 
3663 #define VAR_PSC_EXP_FILTER	"postscreen_expansion_filter"
3664 #define DEF_PSC_EXP_FILTER	"$" VAR_SMTPD_EXP_FILTER
3665 extern char *var_psc_exp_filter;
3666 
3667 #define VAR_PSC_CMD_FILTER	"postscreen_command_filter"
3668 #define DEF_PSC_CMD_FILTER	""
3669 extern char *var_psc_cmd_filter;
3670 
3671 #define VAR_PSC_ACL		"postscreen_access_list"
3672 #define DEF_PSC_ACL		SERVER_ACL_NAME_WL_MYNETWORKS
3673 extern char *var_psc_acl;
3674 
3675 #define VAR_PSC_WLIST_IF	"postscreen_whitelist_interfaces"
3676 #define DEF_PSC_WLIST_IF	"static:all"
3677 extern char *var_psc_wlist_if;
3678 
3679 #define NOPROXY_PROTO_NAME	""
3680 
3681 #define VAR_PSC_UPROXY_PROTO	"postscreen_upstream_proxy_protocol"
3682 #define DEF_PSC_UPROXY_PROTO	NOPROXY_PROTO_NAME
3683 extern char *var_psc_uproxy_proto;
3684 
3685 #define VAR_PSC_UPROXY_TMOUT	"postscreen_upstream_proxy_timeout"
3686 #define DEF_PSC_UPROXY_TMOUT	"5s"
3687 extern int var_psc_uproxy_tmout;
3688 
3689 #define VAR_DNSBLOG_SERVICE	"dnsblog_service_name"
3690 #define DEF_DNSBLOG_SERVICE	MAIL_SERVICE_DNSBLOG
3691 extern char *var_dnsblog_service;
3692 
3693 #define VAR_DNSBLOG_DELAY	"dnsblog_reply_delay"
3694 #define DEF_DNSBLOG_DELAY	"0s"
3695 extern int var_dnsblog_delay;
3696 
3697 #define VAR_TLSPROXY_SERVICE	"tlsproxy_service_name"
3698 #define DEF_TLSPROXY_SERVICE	MAIL_SERVICE_TLSPROXY
3699 extern char *var_tlsproxy_service;
3700 
3701 #define VAR_TLSP_WATCHDOG	"tlsproxy_watchdog_timeout"
3702 #define DEF_TLSP_WATCHDOG	"10s"
3703 extern int var_tlsp_watchdog;
3704 
3705 #define VAR_TLSP_TLS_LEVEL	"tlsproxy_tls_security_level"
3706 #define DEF_TLSP_TLS_LEVEL	"$" VAR_SMTPD_TLS_LEVEL
3707 extern char *var_tlsp_tls_level;
3708 
3709 #define VAR_TLSP_USE_TLS	"tlsproxy_use_tls"
3710 #define DEF_TLSP_USE_TLS	"$" VAR_SMTPD_USE_TLS
3711 extern bool var_tlsp_use_tls;
3712 
3713 #define VAR_TLSP_ENFORCE_TLS	"tlsproxy_enforce_tls"
3714 #define DEF_TLSP_ENFORCE_TLS	"$" VAR_SMTPD_ENFORCE_TLS
3715 extern bool var_tlsp_enforce_tls;
3716 
3717 #define VAR_TLSP_TLS_ACERT	"tlsproxy_tls_ask_ccert"
3718 #define DEF_TLSP_TLS_ACERT	"$" VAR_SMTPD_TLS_ACERT
3719 extern bool var_tlsp_tls_ask_ccert;
3720 
3721 #define VAR_TLSP_TLS_RCERT	"tlsproxy_tls_req_ccert"
3722 #define DEF_TLSP_TLS_RCERT	"$" VAR_SMTPD_TLS_RCERT
3723 extern bool var_tlsp_tls_req_ccert;
3724 
3725 #define VAR_TLSP_TLS_CCERT_VD	"tlsproxy_tls_ccert_verifydepth"
3726 #define DEF_TLSP_TLS_CCERT_VD	"$" VAR_SMTPD_TLS_CCERT_VD
3727 extern int var_tlsp_tls_ccert_vd;
3728 
3729 #define VAR_TLSP_TLS_CERT_FILE	"tlsproxy_tls_cert_file"
3730 #define DEF_TLSP_TLS_CERT_FILE	"$" VAR_SMTPD_TLS_CERT_FILE
3731 extern char *var_tlsp_tls_cert_file;
3732 
3733 #define VAR_TLSP_TLS_KEY_FILE	"tlsproxy_tls_key_file"
3734 #define DEF_TLSP_TLS_KEY_FILE	"$" VAR_SMTPD_TLS_KEY_FILE
3735 extern char *var_tlsp_tls_key_file;
3736 
3737 #define VAR_TLSP_TLS_DCERT_FILE "tlsproxy_tls_dcert_file"
3738 #define DEF_TLSP_TLS_DCERT_FILE	"$" VAR_SMTPD_TLS_DCERT_FILE
3739 extern char *var_tlsp_tls_dcert_file;
3740 
3741 #define VAR_TLSP_TLS_DKEY_FILE	"tlsproxy_tls_dkey_file"
3742 #define DEF_TLSP_TLS_DKEY_FILE	"$" VAR_SMTPD_TLS_DKEY_FILE
3743 extern char *var_tlsp_tls_dkey_file;
3744 
3745 #define VAR_TLSP_TLS_ECCERT_FILE "tlsproxy_tls_eccert_file"
3746 #define DEF_TLSP_TLS_ECCERT_FILE	"$" VAR_SMTPD_TLS_ECCERT_FILE
3747 extern char *var_tlsp_tls_eccert_file;
3748 
3749 #define VAR_TLSP_TLS_ECKEY_FILE	"tlsproxy_tls_eckey_file"
3750 #define DEF_TLSP_TLS_ECKEY_FILE	"$" VAR_SMTPD_TLS_ECKEY_FILE
3751 extern char *var_tlsp_tls_eckey_file;
3752 
3753 #define DEF_TLSP_TLS_ECKEY_FILE	"$" VAR_SMTPD_TLS_ECKEY_FILE
3754 extern char *var_tlsp_tls_eckey_file;
3755 
3756 #define VAR_TLSP_TLS_CA_FILE	"tlsproxy_tls_CAfile"
3757 #define DEF_TLSP_TLS_CA_FILE	"$" VAR_SMTPD_TLS_CA_FILE
3758 extern char *var_tlsp_tls_CAfile;
3759 
3760 #define VAR_TLSP_TLS_CA_PATH	"tlsproxy_tls_CApath"
3761 #define DEF_TLSP_TLS_CA_PATH	"$" VAR_SMTPD_TLS_CA_PATH
3762 extern char *var_tlsp_tls_CApath;
3763 
3764 #define VAR_TLSP_TLS_PROTO	"tlsproxy_tls_protocols"
3765 #define DEF_TLSP_TLS_PROTO	"$" VAR_SMTPD_TLS_PROTO
3766 extern char *var_tlsp_tls_proto;
3767 
3768 #define VAR_TLSP_TLS_MAND_PROTO	"tlsproxy_tls_mandatory_protocols"
3769 #define DEF_TLSP_TLS_MAND_PROTO	"$" VAR_SMTPD_TLS_MAND_PROTO
3770 extern char *var_tlsp_tls_mand_proto;
3771 
3772 #define VAR_TLSP_TLS_CIPH	"tlsproxy_tls_ciphers"
3773 #define DEF_TLSP_TLS_CIPH	"$" VAR_SMTPD_TLS_CIPH
3774 extern char *var_tlsp_tls_ciph;
3775 
3776 #define VAR_TLSP_TLS_MAND_CIPH	"tlsproxy_tls_mandatory_ciphers"
3777 #define DEF_TLSP_TLS_MAND_CIPH	"$" VAR_SMTPD_TLS_MAND_CIPH
3778 extern char *var_tlsp_tls_mand_ciph;
3779 
3780 #define VAR_TLSP_TLS_EXCL_CIPH  "tlsproxy_tls_exclude_ciphers"
3781 #define DEF_TLSP_TLS_EXCL_CIPH	"$" VAR_SMTPD_TLS_EXCL_CIPH
3782 extern char *var_tlsp_tls_excl_ciph;
3783 
3784 #define VAR_TLSP_TLS_MAND_EXCL  "tlsproxy_tls_mandatory_exclude_ciphers"
3785 #define DEF_TLSP_TLS_MAND_EXCL	"$" VAR_SMTPD_TLS_MAND_EXCL
3786 extern char *var_tlsp_tls_mand_excl;
3787 
3788 #define VAR_TLSP_TLS_FPT_DGST	"tlsproxy_tls_fingerprint_digest"
3789 #define DEF_TLSP_TLS_FPT_DGST	"$" VAR_SMTPD_TLS_FPT_DGST
3790 extern char *var_tlsp_tls_fpt_dgst;
3791 
3792 #define VAR_TLSP_TLS_512_FILE	"tlsproxy_tls_dh512_param_file"
3793 #define DEF_TLSP_TLS_512_FILE	"$" VAR_SMTPD_TLS_512_FILE
3794 extern char *var_tlsp_tls_dh512_param_file;
3795 
3796 #define VAR_TLSP_TLS_1024_FILE	"tlsproxy_tls_dh1024_param_file"
3797 #define DEF_TLSP_TLS_1024_FILE	"$" VAR_SMTPD_TLS_1024_FILE
3798 extern char *var_tlsp_tls_dh1024_param_file;
3799 
3800 #define VAR_TLSP_TLS_EECDH	"tlsproxy_tls_eecdh_grade"
3801 #define DEF_TLSP_TLS_EECDH	"$" VAR_SMTPD_TLS_EECDH
3802 extern char *var_tlsp_tls_eecdh;
3803 
3804 #define VAR_TLSP_TLS_LOGLEVEL	"tlsproxy_tls_loglevel"
3805 #define DEF_TLSP_TLS_LOGLEVEL	"$" VAR_SMTPD_TLS_LOGLEVEL
3806 extern char *var_tlsp_tls_loglevel;
3807 
3808 #define VAR_TLSP_TLS_RECHEAD	"tlsproxy_tls_received_header"
3809 #define DEF_TLSP_TLS_RECHEAD	"$" VAR_SMTPD_TLS_RECHEAD
3810 extern bool var_tlsp_tls_received_header;
3811 
3812 #define VAR_TLSP_TLS_SET_SESSID	"tlsproxy_tls_always_issue_session_ids"
3813 #define DEF_TLSP_TLS_SET_SESSID	"$" VAR_SMTPD_TLS_SET_SESSID
3814 extern bool var_tlsp_tls_set_sessid;
3815 
3816  /*
3817   * SMTPD "reject" contact info.
3818   */
3819 #define VAR_SMTPD_REJ_FOOTER	"smtpd_reject_footer"
3820 #define DEF_SMTPD_REJ_FOOTER	""
3821 extern char *var_smtpd_rej_footer;
3822 
3823  /*
3824   * Per-record time limit support.
3825   */
3826 #define VAR_SMTPD_REC_DEADLINE	"smtpd_per_record_deadline"
3827 #define DEF_SMTPD_REC_DEADLINE	"${stress?{yes}:{no}}"
3828 extern bool var_smtpd_rec_deadline;
3829 
3830 #define VAR_SMTP_REC_DEADLINE	"smtp_per_record_deadline"
3831 #define DEF_SMTP_REC_DEADLINE	0
3832 #define VAR_LMTP_REC_DEADLINE	"lmtp_per_record_deadline"
3833 #define DEF_LMTP_REC_DEADLINE	0
3834 extern bool var_smtp_rec_deadline;
3835 
3836  /*
3837   * Permit logging.
3838   */
3839 #define VAR_SMTPD_ACL_PERM_LOG	"smtpd_log_access_permit_actions"
3840 #define DEF_SMTPD_ACL_PERM_LOG	""
3841 extern char *var_smtpd_acl_perm_log;
3842 
3843  /*
3844   * Before-smtpd proxy support.
3845   */
3846 #define VAR_SMTPD_UPROXY_PROTO	"smtpd_upstream_proxy_protocol"
3847 #define DEF_SMTPD_UPROXY_PROTO	""
3848 extern char *var_smtpd_uproxy_proto;
3849 
3850 #define VAR_SMTPD_UPROXY_TMOUT	"smtpd_upstream_proxy_timeout"
3851 #define DEF_SMTPD_UPROXY_TMOUT	"5s"
3852 extern int var_smtpd_uproxy_tmout;
3853 
3854  /*
3855   * Postfix sendmail command compatibility features.
3856   */
3857 #define SM_FIX_EOL_STRICT	"strict"
3858 #define SM_FIX_EOL_NEVER	"never"
3859 #define SM_FIX_EOL_ALWAYS	"always"
3860 
3861 #define VAR_SM_FIX_EOL		"sendmail_fix_line_endings"
3862 #define DEF_SM_FIX_EOL		SM_FIX_EOL_ALWAYS
3863 extern char *var_sm_fix_eol;
3864 
3865  /*
3866   * Gradual degradation, or fatal exit after table open error?
3867   */
3868 #define VAR_DAEMON_OPEN_FATAL	"daemon_table_open_error_is_fatal"
3869 #define DEF_DAEMON_OPEN_FATAL	0
3870 extern bool var_daemon_open_fatal;
3871 
3872  /*
3873   * Optional delivery status filter.
3874   */
3875 #define VAR_DSN_FILTER			"default_delivery_status_filter"
3876 #define DEF_DSN_FILTER			""
3877 extern char *var_dsn_filter;
3878 
3879 #define VAR_SMTP_DSN_FILTER		"smtp_delivery_status_filter"
3880 #define DEF_SMTP_DSN_FILTER		"$" VAR_DSN_FILTER
3881 #define VAR_LMTP_DSN_FILTER		"lmtp_delivery_status_filter"
3882 #define DEF_LMTP_DSN_FILTER		"$" VAR_DSN_FILTER
3883 extern char *var_smtp_dsn_filter;
3884 
3885 #define VAR_PIPE_DSN_FILTER		"pipe_delivery_status_filter"
3886 #define DEF_PIPE_DSN_FILTER		"$" VAR_DSN_FILTER
3887 extern char *var_pipe_dsn_filter;
3888 
3889 #define VAR_VIRT_DSN_FILTER		"virtual_delivery_status_filter"
3890 #define DEF_VIRT_DSN_FILTER		"$" VAR_DSN_FILTER
3891 extern char *var_virt_dsn_filter;
3892 
3893 #define VAR_LOCAL_DSN_FILTER		"local_delivery_status_filter"
3894 #define DEF_LOCAL_DSN_FILTER		"$" VAR_DSN_FILTER
3895 extern char *var_local_dsn_filter;
3896 
3897  /*
3898   * Optional DNS reply filter.
3899   */
3900 #define VAR_SMTP_DNS_RE_FILTER		"smtp_dns_reply_filter"
3901 #define DEF_SMTP_DNS_RE_FILTER		""
3902 #define VAR_LMTP_DNS_RE_FILTER		"lmtp_dns_reply_filter"
3903 #define DEF_LMTP_DNS_RE_FILTER		""
3904 extern char *var_smtp_dns_re_filter;
3905 
3906 #define VAR_SMTPD_DNS_RE_FILTER		"smtpd_dns_reply_filter"
3907 #define DEF_SMTPD_DNS_RE_FILTER		""
3908 extern char *var_smtpd_dns_re_filter;
3909 
3910  /*
3911   * Location of shared-library files.
3912   *
3913   * If the files will be installed into a known directory, such as a directory
3914   * that is processed with the ldconfig(1) command, then the shlib_directory
3915   * parameter may be configured at installation time.
3916   *
3917   * Otherwise, the shlib_directory parameter must be specified at compile time,
3918   * and it cannot be changed afterwards.
3919   */
3920 #define VAR_SHLIB_DIR	"shlib_directory"
3921 #ifndef DEF_SHLIB_DIR
3922 #define DEF_SHLIB_DIR	"/usr/lib/postfix"
3923 #endif
3924 extern char *var_shlib_dir;
3925 
3926 #define VAR_META_DIR	"meta_directory"
3927 #ifndef DEF_META_DIR
3928 #define DEF_META_DIR	DEF_DAEMON_DIR
3929 #endif
3930 extern char *var_meta_dir;
3931 
3932  /*
3933   * SMTPUTF8 support.
3934   */
3935 #define VAR_SMTPUTF8_ENABLE		"smtputf8_enable"
3936 #define DEF_SMTPUTF8_ENABLE		"${{$compatibility_level} < {1} ? " \
3937 					"{no} : {yes}}"
3938 extern int var_smtputf8_enable;
3939 
3940 #define VAR_STRICT_SMTPUTF8		"strict_smtputf8"
3941 #define DEF_STRICT_SMTPUTF8		0
3942 extern int var_strict_smtputf8;
3943 
3944 #define VAR_SMTPUTF8_AUTOCLASS		"smtputf8_autodetect_classes"
3945 #define DEF_SMTPUTF8_AUTOCLASS		MAIL_SRC_NAME_SENDMAIL ", " \
3946 					MAIL_SRC_NAME_VERIFY
3947 extern char *var_smtputf8_autoclass;
3948 
3949  /*
3950   * Workaround for future incompatibility. Our implementation of RFC 2308
3951   * negative reply caching relies on the promise that res_query() and
3952   * res_search() invoke res_send(), which returns the server response in an
3953   * application buffer even if the requested record does not exist. If this
3954   * promise is broken, we have a workaround that is good enough for DNS
3955   * reputation lookups.
3956   */
3957 #define VAR_DNS_NCACHE_TTL_FIX		"dns_ncache_ttl_fix_enable"
3958 #define DEF_DNS_NCACHE_TTL_FIX		0
3959 extern bool var_dns_ncache_ttl_fix;
3960 
3961 /* LICENSE
3962 /* .ad
3963 /* .fi
3964 /*	The Secure Mailer license must be distributed with this software.
3965 /* AUTHOR(S)
3966 /*	Wietse Venema
3967 /*	IBM T.J. Watson Research
3968 /*	P.O. Box 704
3969 /*	Yorktown Heights, NY 10598, USA
3970 /*--*/
3971 
3972 #endif
3973