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