xref: /netbsd-src/external/ibm-public/postfix/dist/src/global/mail_params.h (revision 62f324d0121177eaf2e0384f92fd9ca2a751c795)
1 /*	$NetBSD: mail_params.h,v 1.9 2013/01/02 19:18:34 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 long 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   * Short queue IDs contain the time in microseconds and file inode number.
917   * Long queue IDs also contain the time in seconds.
918   */
919 #define VAR_LONG_QUEUE_IDS	"enable_long_queue_ids"
920 #define DEF_LONG_QUEUE_IDS	0
921 extern bool var_long_queue_ids;
922 
923  /*
924   * Multi-protocol support.
925   */
926 #define INET_PROTO_NAME_IPV4	"ipv4"
927 #define INET_PROTO_NAME_IPV6	"ipv6"
928 #define INET_PROTO_NAME_ALL	"all"
929 #define INET_PROTO_NAME_ANY	"any"
930 #define VAR_INET_PROTOCOLS	"inet_protocols"
931 extern char *var_inet_protocols;
932 
933  /*
934   * SMTP client. Timeouts inspired by RFC 1123. The SMTP recipient limit
935   * determines how many recipient addresses the SMTP client sends along with
936   * each message. Unfortunately, some mailers misbehave and disconnect (smap)
937   * when given more recipients than they are willing to handle.
938   *
939   * XXX 2821: A mail system is supposed to use EHLO instead of HELO, and to fall
940   * back to HELO if EHLO is not supported.
941   */
942 #define VAR_BESTMX_TRANSP	"best_mx_transport"
943 #define DEF_BESTMX_TRANSP	""
944 extern char *var_bestmx_transp;
945 
946 #define VAR_SMTP_CACHE_CONNT	"smtp_connection_cache_time_limit"
947 #define DEF_SMTP_CACHE_CONNT	"2s"
948 #define VAR_LMTP_CACHE_CONNT	"lmtp_connection_cache_time_limit"
949 #define DEF_LMTP_CACHE_CONNT	"2s"
950 extern int var_smtp_cache_conn;
951 
952 #define VAR_SMTP_REUSE_TIME	"smtp_connection_reuse_time_limit"
953 #define DEF_SMTP_REUSE_TIME	"300s"
954 #define VAR_LMTP_REUSE_TIME	"lmtp_connection_reuse_time_limit"
955 #define DEF_LMTP_REUSE_TIME	"300s"
956 extern int var_smtp_reuse_time;
957 
958 #define VAR_SMTP_CACHE_DEST	"smtp_connection_cache_destinations"
959 #define DEF_SMTP_CACHE_DEST	""
960 #define VAR_LMTP_CACHE_DEST	"lmtp_connection_cache_destinations"
961 #define DEF_LMTP_CACHE_DEST	""
962 extern char *var_smtp_cache_dest;
963 
964 #define VAR_SMTP_CACHE_DEMAND	"smtp_connection_cache_on_demand"
965 #ifndef DEF_SMTP_CACHE_DEMAND
966 #define DEF_SMTP_CACHE_DEMAND	1
967 #endif
968 #define VAR_LMTP_CACHE_DEMAND	"lmtp_connection_cache_on_demand"
969 #ifndef DEF_LMTP_CACHE_DEMAND
970 #define DEF_LMTP_CACHE_DEMAND	1
971 #endif
972 extern bool var_smtp_cache_demand;
973 
974 #define VAR_SMTP_CONN_TMOUT	"smtp_connect_timeout"
975 #define DEF_SMTP_CONN_TMOUT	"30s"
976 extern int var_smtp_conn_tmout;
977 
978 #define VAR_SMTP_HELO_TMOUT	"smtp_helo_timeout"
979 #define DEF_SMTP_HELO_TMOUT	"300s"
980 #define VAR_LMTP_HELO_TMOUT	"lmtp_lhlo_timeout"
981 #define DEF_LMTP_HELO_TMOUT	"300s"
982 extern int var_smtp_helo_tmout;
983 
984 #define VAR_SMTP_XFWD_TMOUT	"smtp_xforward_timeout"
985 #define DEF_SMTP_XFWD_TMOUT	"300s"
986 extern int var_smtp_xfwd_tmout;
987 
988 #define VAR_SMTP_STARTTLS_TMOUT	"smtp_starttls_timeout"
989 #define DEF_SMTP_STARTTLS_TMOUT	"300s"
990 #define VAR_LMTP_STARTTLS_TMOUT	"lmtp_starttls_timeout"
991 #define DEF_LMTP_STARTTLS_TMOUT	"300s"
992 extern int var_smtp_starttls_tmout;
993 
994 #define VAR_SMTP_MAIL_TMOUT	"smtp_mail_timeout"
995 #define DEF_SMTP_MAIL_TMOUT	"300s"
996 extern int var_smtp_mail_tmout;
997 
998 #define VAR_SMTP_RCPT_TMOUT	"smtp_rcpt_timeout"
999 #define DEF_SMTP_RCPT_TMOUT	"300s"
1000 extern int var_smtp_rcpt_tmout;
1001 
1002 #define VAR_SMTP_DATA0_TMOUT	"smtp_data_init_timeout"
1003 #define DEF_SMTP_DATA0_TMOUT	"120s"
1004 extern int var_smtp_data0_tmout;
1005 
1006 #define VAR_SMTP_DATA1_TMOUT	"smtp_data_xfer_timeout"
1007 #define DEF_SMTP_DATA1_TMOUT	"180s"
1008 extern int var_smtp_data1_tmout;
1009 
1010 #define VAR_SMTP_DATA2_TMOUT	"smtp_data_done_timeout"
1011 #define DEF_SMTP_DATA2_TMOUT	"600s"
1012 extern int var_smtp_data2_tmout;
1013 
1014 #define VAR_SMTP_RSET_TMOUT	"smtp_rset_timeout"
1015 #define DEF_SMTP_RSET_TMOUT	"20s"
1016 extern int var_smtp_rset_tmout;
1017 
1018 #define VAR_SMTP_QUIT_TMOUT	"smtp_quit_timeout"
1019 #define DEF_SMTP_QUIT_TMOUT	"300s"
1020 extern int var_smtp_quit_tmout;
1021 
1022 #define VAR_SMTP_QUOTE_821_ENV	"smtp_quote_rfc821_envelope"
1023 #define DEF_SMTP_QUOTE_821_ENV	1
1024 #define VAR_LMTP_QUOTE_821_ENV	"lmtp_quote_rfc821_envelope"
1025 #define DEF_LMTP_QUOTE_821_ENV	1
1026 extern int var_smtp_quote_821_env;
1027 
1028 #define VAR_SMTP_SKIP_5XX	"smtp_skip_5xx_greeting"
1029 #define DEF_SMTP_SKIP_5XX	1
1030 #define VAR_LMTP_SKIP_5XX	"lmtp_skip_5xx_greeting"
1031 #define DEF_LMTP_SKIP_5XX	1
1032 extern bool var_smtp_skip_5xx_greeting;
1033 
1034 #define VAR_IGN_MX_LOOKUP_ERR	"ignore_mx_lookup_error"
1035 #define DEF_IGN_MX_LOOKUP_ERR	0
1036 extern bool var_ign_mx_lookup_err;
1037 
1038 #define VAR_SMTP_SKIP_QUIT_RESP	"smtp_skip_quit_response"
1039 #define DEF_SMTP_SKIP_QUIT_RESP	1
1040 extern bool var_skip_quit_resp;
1041 
1042 #define VAR_SMTP_ALWAYS_EHLO	"smtp_always_send_ehlo"
1043 #ifdef RFC821_SYNTAX
1044 #define DEF_SMTP_ALWAYS_EHLO	0
1045 #else
1046 #define DEF_SMTP_ALWAYS_EHLO	1
1047 #endif
1048 extern bool var_smtp_always_ehlo;
1049 
1050 #define VAR_SMTP_NEVER_EHLO	"smtp_never_send_ehlo"
1051 #define DEF_SMTP_NEVER_EHLO	0
1052 extern bool var_smtp_never_ehlo;
1053 
1054 #define VAR_SMTP_RESP_FILTER	"smtp_reply_filter"
1055 #define DEF_SMTP_RESP_FILTER	""
1056 #define VAR_LMTP_RESP_FILTER	"lmtp_reply_filter"
1057 #define DEF_LMTP_RESP_FILTER	""
1058 extern char *var_smtp_resp_filter;
1059 
1060 #define VAR_SMTP_BIND_ADDR	"smtp_bind_address"
1061 #define DEF_SMTP_BIND_ADDR	""
1062 #define VAR_LMTP_BIND_ADDR	"lmtp_bind_address"
1063 #define DEF_LMTP_BIND_ADDR	""
1064 extern char *var_smtp_bind_addr;
1065 
1066 #define VAR_SMTP_BIND_ADDR6	"smtp_bind_address6"
1067 #define DEF_SMTP_BIND_ADDR6	""
1068 #define VAR_LMTP_BIND_ADDR6	"lmtp_bind_address6"
1069 #define DEF_LMTP_BIND_ADDR6	""
1070 extern char *var_smtp_bind_addr6;
1071 
1072 #define VAR_SMTP_HELO_NAME	"smtp_helo_name"
1073 #define DEF_SMTP_HELO_NAME	"$myhostname"
1074 #define VAR_LMTP_HELO_NAME	"lmtp_lhlo_name"
1075 #define DEF_LMTP_HELO_NAME	"$myhostname"
1076 extern char *var_smtp_helo_name;
1077 
1078 #define VAR_SMTP_RAND_ADDR	"smtp_randomize_addresses"
1079 #define DEF_SMTP_RAND_ADDR	1
1080 #define VAR_LMTP_RAND_ADDR	"lmtp_randomize_addresses"
1081 #define DEF_LMTP_RAND_ADDR	1
1082 extern bool var_smtp_rand_addr;
1083 
1084 #define VAR_SMTP_LINE_LIMIT	"smtp_line_length_limit"
1085 #define DEF_SMTP_LINE_LIMIT	998
1086 #define VAR_LMTP_LINE_LIMIT	"lmtp_line_length_limit"
1087 #define DEF_LMTP_LINE_LIMIT	998
1088 extern int var_smtp_line_limit;
1089 
1090 #define VAR_SMTP_PIX_THRESH	"smtp_pix_workaround_threshold_time"
1091 #define DEF_SMTP_PIX_THRESH	"500s"
1092 #define VAR_LMTP_PIX_THRESH	"lmtp_pix_workaround_threshold_time"
1093 #define DEF_LMTP_PIX_THRESH	"500s"
1094 extern int var_smtp_pix_thresh;
1095 
1096 #define VAR_SMTP_PIX_DELAY	"smtp_pix_workaround_delay_time"
1097 #define DEF_SMTP_PIX_DELAY	"10s"
1098 #define VAR_LMTP_PIX_DELAY	"lmtp_pix_workaround_delay_time"
1099 #define DEF_LMTP_PIX_DELAY	"10s"
1100 extern int var_smtp_pix_delay;
1101 
1102  /*
1103   * Courageous people may want to turn off PIX bug workarounds.
1104   */
1105 #define	PIX_BUG_DISABLE_ESMTP		"disable_esmtp"
1106 #define	PIX_BUG_DELAY_DOTCRLF		"delay_dotcrlf"
1107 #define VAR_SMTP_PIX_BUG_WORDS		"smtp_pix_workarounds"
1108 #define DEF_SMTP_PIX_BUG_WORDS		PIX_BUG_DISABLE_ESMTP "," \
1109 					PIX_BUG_DELAY_DOTCRLF
1110 #define VAR_LMTP_PIX_BUG_WORDS		"lmtp_pix_workarounds"
1111 #define DEF_LMTP_PIX_BUG_WORDS		DEF_SMTP_PIX_BUG_WORDS
1112 extern char *var_smtp_pix_bug_words;
1113 
1114 #define VAR_SMTP_PIX_BUG_MAPS		"smtp_pix_workaround_maps"
1115 #define DEF_SMTP_PIX_BUG_MAPS		""
1116 #define VAR_LMTP_PIX_BUG_MAPS		"lmtp_pix_workaround_maps"
1117 #define DEF_LMTP_PIX_BUG_MAPS		""
1118 extern char *var_smtp_pix_bug_maps;
1119 
1120 #define VAR_SMTP_DEFER_MXADDR	"smtp_defer_if_no_mx_address_found"
1121 #define DEF_SMTP_DEFER_MXADDR	0
1122 #define VAR_LMTP_DEFER_MXADDR	"lmtp_defer_if_no_mx_address_found"
1123 #define DEF_LMTP_DEFER_MXADDR	0
1124 extern bool var_smtp_defer_mxaddr;
1125 
1126 #define VAR_SMTP_SEND_XFORWARD	"smtp_send_xforward_command"
1127 #define DEF_SMTP_SEND_XFORWARD	0
1128 extern bool var_smtp_send_xforward;
1129 
1130 #define VAR_SMTP_GENERIC_MAPS	"smtp_generic_maps"
1131 #define DEF_SMTP_GENERIC_MAPS	""
1132 #define VAR_LMTP_GENERIC_MAPS	"lmtp_generic_maps"
1133 #define DEF_LMTP_GENERIC_MAPS	""
1134 extern char *var_smtp_generic_maps;
1135 
1136  /*
1137   * SMTP server. The soft error limit determines how many errors an SMTP
1138   * client may make before we start to slow down; the hard error limit
1139   * determines after how many client errors we disconnect.
1140   */
1141 #define VAR_SMTPD_BANNER	"smtpd_banner"
1142 #define DEF_SMTPD_BANNER	"$myhostname ESMTP $mail_name"
1143 extern char *var_smtpd_banner;
1144 
1145 #define VAR_SMTPD_TMOUT		"smtpd_timeout"
1146 #define DEF_SMTPD_TMOUT		"${stress?10}${stress:300}s"
1147 extern int var_smtpd_tmout;
1148 
1149 #define VAR_SMTPD_STARTTLS_TMOUT "smtpd_starttls_timeout"
1150 #define DEF_SMTPD_STARTTLS_TMOUT "${stress?10}${stress:300}s"
1151 extern int var_smtpd_starttls_tmout;
1152 
1153 #define VAR_SMTPD_RCPT_LIMIT	"smtpd_recipient_limit"
1154 #define DEF_SMTPD_RCPT_LIMIT	1000
1155 extern int var_smtpd_rcpt_limit;
1156 
1157 #define VAR_SMTPD_SOFT_ERLIM	"smtpd_soft_error_limit"
1158 #define DEF_SMTPD_SOFT_ERLIM	"10"
1159 extern int var_smtpd_soft_erlim;
1160 
1161 #define VAR_SMTPD_HARD_ERLIM	"smtpd_hard_error_limit"
1162 #define DEF_SMTPD_HARD_ERLIM	"${stress?1}${stress:20}"
1163 extern int var_smtpd_hard_erlim;
1164 
1165 #define VAR_SMTPD_ERR_SLEEP	"smtpd_error_sleep_time"
1166 #define DEF_SMTPD_ERR_SLEEP	"1s"
1167 extern int var_smtpd_err_sleep;
1168 
1169 #define VAR_SMTPD_JUNK_CMD	"smtpd_junk_command_limit"
1170 #define DEF_SMTPD_JUNK_CMD	"${stress?1}${stress:100}"
1171 extern int var_smtpd_junk_cmd_limit;
1172 
1173 #define VAR_SMTPD_RCPT_OVERLIM	"smtpd_recipient_overshoot_limit"
1174 #define DEF_SMTPD_RCPT_OVERLIM	1000
1175 extern int var_smtpd_rcpt_overlim;
1176 
1177 #define VAR_SMTPD_HIST_THRSH	"smtpd_history_flush_threshold"
1178 #define DEF_SMTPD_HIST_THRSH	100
1179 extern int var_smtpd_hist_thrsh;
1180 
1181 #define VAR_SMTPD_NOOP_CMDS	"smtpd_noop_commands"
1182 #define DEF_SMTPD_NOOP_CMDS	""
1183 extern char *var_smtpd_noop_cmds;
1184 
1185 #define VAR_SMTPD_FORBID_CMDS	"smtpd_forbidden_commands"
1186 #define DEF_SMTPD_FORBID_CMDS	"CONNECT GET POST"
1187 extern char *var_smtpd_forbid_cmds;
1188 
1189 #define VAR_SMTPD_CMD_FILTER	"smtpd_command_filter"
1190 #define DEF_SMTPD_CMD_FILTER	""
1191 extern char *var_smtpd_cmd_filter;
1192 
1193 #define VAR_SMTPD_TLS_WRAPPER	"smtpd_tls_wrappermode"
1194 #define DEF_SMTPD_TLS_WRAPPER	0
1195 extern bool var_smtpd_tls_wrappermode;
1196 
1197 #define VAR_SMTPD_TLS_LEVEL	"smtpd_tls_security_level"
1198 #define DEF_SMTPD_TLS_LEVEL	""
1199 extern char *var_smtpd_tls_level;
1200 
1201 #define VAR_SMTPD_USE_TLS	"smtpd_use_tls"
1202 #define DEF_SMTPD_USE_TLS	0
1203 extern bool var_smtpd_use_tls;
1204 
1205 #define VAR_SMTPD_ENFORCE_TLS	"smtpd_enforce_tls"
1206 #define DEF_SMTPD_ENFORCE_TLS	0
1207 extern bool var_smtpd_enforce_tls;
1208 
1209 #define VAR_SMTPD_TLS_AUTH_ONLY	"smtpd_tls_auth_only"
1210 #define DEF_SMTPD_TLS_AUTH_ONLY 0
1211 extern bool var_smtpd_tls_auth_only;
1212 
1213 #define VAR_SMTPD_TLS_ACERT	"smtpd_tls_ask_ccert"
1214 #define DEF_SMTPD_TLS_ACERT	0
1215 extern bool var_smtpd_tls_ask_ccert;
1216 
1217 #define VAR_SMTPD_TLS_RCERT	"smtpd_tls_req_ccert"
1218 #define DEF_SMTPD_TLS_RCERT	0
1219 extern bool var_smtpd_tls_req_ccert;
1220 
1221 #define VAR_SMTPD_TLS_CCERT_VD	"smtpd_tls_ccert_verifydepth"
1222 #define DEF_SMTPD_TLS_CCERT_VD	9
1223 extern int var_smtpd_tls_ccert_vd;
1224 
1225 #define VAR_SMTPD_TLS_CERT_FILE	"smtpd_tls_cert_file"
1226 #define DEF_SMTPD_TLS_CERT_FILE	""
1227 extern char *var_smtpd_tls_cert_file;
1228 
1229 #define VAR_SMTPD_TLS_KEY_FILE	"smtpd_tls_key_file"
1230 #define DEF_SMTPD_TLS_KEY_FILE	"$smtpd_tls_cert_file"
1231 extern char *var_smtpd_tls_key_file;
1232 
1233 #define VAR_SMTPD_TLS_DCERT_FILE "smtpd_tls_dcert_file"
1234 #define DEF_SMTPD_TLS_DCERT_FILE ""
1235 extern char *var_smtpd_tls_dcert_file;
1236 
1237 #define VAR_SMTPD_TLS_DKEY_FILE	"smtpd_tls_dkey_file"
1238 #define DEF_SMTPD_TLS_DKEY_FILE	"$smtpd_tls_dcert_file"
1239 extern char *var_smtpd_tls_dkey_file;
1240 
1241 #define VAR_SMTPD_TLS_ECCERT_FILE "smtpd_tls_eccert_file"
1242 #define DEF_SMTPD_TLS_ECCERT_FILE ""
1243 extern char *var_smtpd_tls_eccert_file;
1244 
1245 #define VAR_SMTPD_TLS_ECKEY_FILE	"smtpd_tls_eckey_file"
1246 #define DEF_SMTPD_TLS_ECKEY_FILE	"$smtpd_tls_eccert_file"
1247 extern char *var_smtpd_tls_eckey_file;
1248 
1249 #define VAR_SMTPD_TLS_CA_FILE	"smtpd_tls_CAfile"
1250 #define DEF_SMTPD_TLS_CA_FILE	""
1251 extern char *var_smtpd_tls_CAfile;
1252 
1253 #define VAR_SMTPD_TLS_CA_PATH	"smtpd_tls_CApath"
1254 #define DEF_SMTPD_TLS_CA_PATH	""
1255 extern char *var_smtpd_tls_CApath;
1256 
1257 #define VAR_SMTPD_TLS_PROTO		"smtpd_tls_protocols"
1258 #define DEF_SMTPD_TLS_PROTO		""
1259 extern char *var_smtpd_tls_proto;
1260 
1261 #define VAR_SMTPD_TLS_MAND_PROTO	"smtpd_tls_mandatory_protocols"
1262 #define DEF_SMTPD_TLS_MAND_PROTO	"!SSLv2"
1263 extern char *var_smtpd_tls_mand_proto;
1264 
1265 #define VAR_SMTPD_TLS_CIPH	"smtpd_tls_ciphers"
1266 #define DEF_SMTPD_TLS_CIPH	"export"
1267 extern char *var_smtpd_tls_ciph;
1268 
1269 #define VAR_SMTPD_TLS_MAND_CIPH	"smtpd_tls_mandatory_ciphers"
1270 #define DEF_SMTPD_TLS_MAND_CIPH	"medium"
1271 extern char *var_smtpd_tls_mand_ciph;
1272 
1273 #define VAR_SMTPD_TLS_EXCL_CIPH  "smtpd_tls_exclude_ciphers"
1274 #define DEF_SMTPD_TLS_EXCL_CIPH  ""
1275 extern char *var_smtpd_tls_excl_ciph;
1276 
1277 #define VAR_SMTPD_TLS_MAND_EXCL  "smtpd_tls_mandatory_exclude_ciphers"
1278 #define DEF_SMTPD_TLS_MAND_EXCL  ""
1279 extern char *var_smtpd_tls_mand_excl;
1280 
1281 #define VAR_SMTPD_TLS_FPT_DGST	"smtpd_tls_fingerprint_digest"
1282 #define DEF_SMTPD_TLS_FPT_DGST	"md5"
1283 extern char *var_smtpd_tls_fpt_dgst;
1284 
1285 #define VAR_SMTPD_TLS_512_FILE	"smtpd_tls_dh512_param_file"
1286 #define DEF_SMTPD_TLS_512_FILE	""
1287 extern char *var_smtpd_tls_dh512_param_file;
1288 
1289 #define VAR_SMTPD_TLS_1024_FILE	"smtpd_tls_dh1024_param_file"
1290 #define DEF_SMTPD_TLS_1024_FILE	""
1291 extern char *var_smtpd_tls_dh1024_param_file;
1292 
1293 #define VAR_SMTPD_TLS_EECDH	"smtpd_tls_eecdh_grade"
1294 #define DEF_SMTPD_TLS_EECDH	"strong"
1295 extern char *var_smtpd_tls_eecdh;
1296 
1297 #define VAR_SMTPD_TLS_LOGLEVEL	"smtpd_tls_loglevel"
1298 #define DEF_SMTPD_TLS_LOGLEVEL	"0"
1299 extern char *var_smtpd_tls_loglevel;
1300 
1301 #define VAR_SMTPD_TLS_RECHEAD	"smtpd_tls_received_header"
1302 #define DEF_SMTPD_TLS_RECHEAD	0
1303 extern bool var_smtpd_tls_received_header;
1304 
1305 #define VAR_SMTPD_TLS_SCACHE_DB	"smtpd_tls_session_cache_database"
1306 #define DEF_SMTPD_TLS_SCACHE_DB	""
1307 extern char *var_smtpd_tls_scache_db;
1308 
1309 #define VAR_SMTPD_TLS_SCACHTIME	"smtpd_tls_session_cache_timeout"
1310 #define DEF_SMTPD_TLS_SCACHTIME	"3600s"
1311 extern int var_smtpd_tls_scache_timeout;
1312 
1313 #define VAR_SMTPD_TLS_SET_SESSID	"smtpd_tls_always_issue_session_ids"
1314 #define DEF_SMTPD_TLS_SET_SESSID	1
1315 extern bool var_smtpd_tls_set_sessid;
1316 
1317 #define VAR_SMTPD_DELAY_OPEN	"smtpd_delay_open_until_valid_rcpt"
1318 #define DEF_SMTPD_DELAY_OPEN	1
1319 extern bool var_smtpd_delay_open;
1320 
1321 #define VAR_SMTP_TLS_PER_SITE	"smtp_tls_per_site"
1322 #define DEF_SMTP_TLS_PER_SITE	""
1323 #define VAR_LMTP_TLS_PER_SITE	"lmtp_tls_per_site"
1324 #define DEF_LMTP_TLS_PER_SITE	""
1325 extern char *var_smtp_tls_per_site;
1326 
1327 #define VAR_SMTP_USE_TLS	"smtp_use_tls"
1328 #define DEF_SMTP_USE_TLS	0
1329 #define VAR_LMTP_USE_TLS	"lmtp_use_tls"
1330 #define DEF_LMTP_USE_TLS	0
1331 extern bool var_smtp_use_tls;
1332 
1333 #define VAR_SMTP_ENFORCE_TLS	"smtp_enforce_tls"
1334 #define DEF_SMTP_ENFORCE_TLS	0
1335 #define VAR_LMTP_ENFORCE_TLS	"lmtp_enforce_tls"
1336 #define DEF_LMTP_ENFORCE_TLS	0
1337 extern bool var_smtp_enforce_tls;
1338 
1339 #define VAR_SMTP_TLS_ENFORCE_PN	"smtp_tls_enforce_peername"
1340 #define DEF_SMTP_TLS_ENFORCE_PN	1
1341 #define VAR_LMTP_TLS_ENFORCE_PN	"lmtp_tls_enforce_peername"
1342 #define DEF_LMTP_TLS_ENFORCE_PN	1
1343 extern bool var_smtp_tls_enforce_peername;
1344 
1345 #define VAR_SMTP_TLS_LEVEL	"smtp_tls_security_level"
1346 #define DEF_SMTP_TLS_LEVEL	""
1347 #define VAR_LMTP_TLS_LEVEL	"lmtp_tls_security_level"
1348 #define DEF_LMTP_TLS_LEVEL	""
1349 extern char *var_smtp_tls_level;
1350 
1351 #define VAR_SMTP_TLS_SCERT_VD	"smtp_tls_scert_verifydepth"
1352 #define DEF_SMTP_TLS_SCERT_VD	9
1353 #define VAR_LMTP_TLS_SCERT_VD	"lmtp_tls_scert_verifydepth"
1354 #define DEF_LMTP_TLS_SCERT_VD	9
1355 extern int var_smtp_tls_scert_vd;
1356 
1357 #define VAR_SMTP_TLS_CERT_FILE	"smtp_tls_cert_file"
1358 #define DEF_SMTP_TLS_CERT_FILE	""
1359 #define VAR_LMTP_TLS_CERT_FILE	"lmtp_tls_cert_file"
1360 #define DEF_LMTP_TLS_CERT_FILE	""
1361 extern char *var_smtp_tls_cert_file;
1362 
1363 #define VAR_SMTP_TLS_KEY_FILE	"smtp_tls_key_file"
1364 #define DEF_SMTP_TLS_KEY_FILE	"$smtp_tls_cert_file"
1365 #define VAR_LMTP_TLS_KEY_FILE	"lmtp_tls_key_file"
1366 #define DEF_LMTP_TLS_KEY_FILE	"$lmtp_tls_cert_file"
1367 extern char *var_smtp_tls_key_file;
1368 
1369 #define VAR_SMTP_TLS_DCERT_FILE "smtp_tls_dcert_file"
1370 #define DEF_SMTP_TLS_DCERT_FILE ""
1371 #define VAR_LMTP_TLS_DCERT_FILE "lmtp_tls_dcert_file"
1372 #define DEF_LMTP_TLS_DCERT_FILE ""
1373 extern char *var_smtp_tls_dcert_file;
1374 
1375 #define VAR_SMTP_TLS_DKEY_FILE	"smtp_tls_dkey_file"
1376 #define DEF_SMTP_TLS_DKEY_FILE	"$smtp_tls_dcert_file"
1377 #define VAR_LMTP_TLS_DKEY_FILE	"lmtp_tls_dkey_file"
1378 #define DEF_LMTP_TLS_DKEY_FILE	"$lmtp_tls_dcert_file"
1379 extern char *var_smtp_tls_dkey_file;
1380 
1381 #define VAR_SMTP_TLS_ECCERT_FILE "smtp_tls_eccert_file"
1382 #define DEF_SMTP_TLS_ECCERT_FILE ""
1383 #define VAR_LMTP_TLS_ECCERT_FILE "lmtp_tls_eccert_file"
1384 #define DEF_LMTP_TLS_ECCERT_FILE ""
1385 extern char *var_smtp_tls_eccert_file;
1386 
1387 #define VAR_SMTP_TLS_ECKEY_FILE	"smtp_tls_eckey_file"
1388 #define DEF_SMTP_TLS_ECKEY_FILE	"$smtp_tls_eccert_file"
1389 #define VAR_LMTP_TLS_ECKEY_FILE	"lmtp_tls_eckey_file"
1390 #define DEF_LMTP_TLS_ECKEY_FILE	"$lmtp_tls_eccert_file"
1391 extern char *var_smtp_tls_eckey_file;
1392 
1393 #define VAR_SMTP_TLS_CA_FILE	"smtp_tls_CAfile"
1394 #define DEF_SMTP_TLS_CA_FILE	""
1395 #define VAR_LMTP_TLS_CA_FILE	"lmtp_tls_CAfile"
1396 #define DEF_LMTP_TLS_CA_FILE	""
1397 extern char *var_smtp_tls_CAfile;
1398 
1399 #define VAR_SMTP_TLS_CA_PATH	"smtp_tls_CApath"
1400 #define DEF_SMTP_TLS_CA_PATH	""
1401 #define VAR_LMTP_TLS_CA_PATH	"lmtp_tls_CApath"
1402 #define DEF_LMTP_TLS_CA_PATH	""
1403 extern char *var_smtp_tls_CApath;
1404 
1405 #define VAR_SMTP_TLS_CIPH	"smtp_tls_ciphers"
1406 #define DEF_SMTP_TLS_CIPH	"export"
1407 #define VAR_LMTP_TLS_CIPH	"lmtp_tls_ciphers"
1408 #define DEF_LMTP_TLS_CIPH	"export"
1409 extern char *var_smtp_tls_ciph;
1410 
1411 #define VAR_SMTP_TLS_MAND_CIPH	"smtp_tls_mandatory_ciphers"
1412 #define DEF_SMTP_TLS_MAND_CIPH	"medium"
1413 #define VAR_LMTP_TLS_MAND_CIPH	"lmtp_tls_mandatory_ciphers"
1414 #define DEF_LMTP_TLS_MAND_CIPH	"medium"
1415 extern char *var_smtp_tls_mand_ciph;
1416 
1417 #define VAR_SMTP_TLS_EXCL_CIPH  "smtp_tls_exclude_ciphers"
1418 #define DEF_SMTP_TLS_EXCL_CIPH  ""
1419 #define VAR_LMTP_TLS_EXCL_CIPH  "lmtp_tls_exclude_ciphers"
1420 #define DEF_LMTP_TLS_EXCL_CIPH  ""
1421 extern char *var_smtp_tls_excl_ciph;
1422 
1423 #define VAR_SMTP_TLS_MAND_EXCL  "smtp_tls_mandatory_exclude_ciphers"
1424 #define DEF_SMTP_TLS_MAND_EXCL  ""
1425 #define VAR_LMTP_TLS_MAND_EXCL  "lmtp_tls_mandatory_exclude_ciphers"
1426 #define DEF_LMTP_TLS_MAND_EXCL  ""
1427 extern char *var_smtp_tls_mand_excl;
1428 
1429 #define VAR_SMTP_TLS_FPT_DGST	"smtp_tls_fingerprint_digest"
1430 #define DEF_SMTP_TLS_FPT_DGST	"md5"
1431 #define VAR_LMTP_TLS_FPT_DGST	"lmtp_tls_fingerprint_digest"
1432 #define DEF_LMTP_TLS_FPT_DGST	"md5"
1433 extern char *var_smtp_tls_fpt_dgst;
1434 
1435 #define VAR_SMTP_TLS_LOGLEVEL	"smtp_tls_loglevel"
1436 #define DEF_SMTP_TLS_LOGLEVEL	"0"
1437 #define VAR_LMTP_TLS_LOGLEVEL	"lmtp_tls_loglevel"
1438 #define DEF_LMTP_TLS_LOGLEVEL	"0"
1439 extern char *var_smtp_tls_loglevel;	/* In smtp(8) and tlsmgr(8) */
1440 extern char *var_lmtp_tls_loglevel;	/* In tlsmgr(8) */
1441 
1442 #define VAR_SMTP_TLS_NOTEOFFER	"smtp_tls_note_starttls_offer"
1443 #define DEF_SMTP_TLS_NOTEOFFER	0
1444 #define VAR_LMTP_TLS_NOTEOFFER	"lmtp_tls_note_starttls_offer"
1445 #define DEF_LMTP_TLS_NOTEOFFER	0
1446 extern bool var_smtp_tls_note_starttls_offer;
1447 
1448 #define VAR_SMTP_TLS_SCACHE_DB	"smtp_tls_session_cache_database"
1449 #define DEF_SMTP_TLS_SCACHE_DB	""
1450 #define VAR_LMTP_TLS_SCACHE_DB	"lmtp_tls_session_cache_database"
1451 #define DEF_LMTP_TLS_SCACHE_DB	""
1452 extern char *var_smtp_tls_scache_db;
1453 extern char *var_lmtp_tls_scache_db;
1454 
1455 #define VAR_SMTP_TLS_SCACHTIME	"smtp_tls_session_cache_timeout"
1456 #define DEF_SMTP_TLS_SCACHTIME	"3600s"
1457 #define VAR_LMTP_TLS_SCACHTIME	"lmtp_tls_session_cache_timeout"
1458 #define DEF_LMTP_TLS_SCACHTIME	"3600s"
1459 extern int var_smtp_tls_scache_timeout;
1460 extern int var_lmtp_tls_scache_timeout;
1461 
1462 #define VAR_SMTP_TLS_POLICY	"smtp_tls_policy_maps"
1463 #define DEF_SMTP_TLS_POLICY	""
1464 #define VAR_LMTP_TLS_POLICY	"lmtp_tls_policy_maps"
1465 #define DEF_LMTP_TLS_POLICY	""
1466 extern char *var_smtp_tls_policy;
1467 
1468 #define VAR_SMTP_TLS_PROTO	"smtp_tls_protocols"
1469 #define DEF_SMTP_TLS_PROTO	"!SSLv2"
1470 #define VAR_LMTP_TLS_PROTO	"lmtp_tls_protocols"
1471 #define DEF_LMTP_TLS_PROTO	"!SSLv2"
1472 extern char *var_smtp_tls_proto;
1473 
1474 #define VAR_SMTP_TLS_MAND_PROTO	"smtp_tls_mandatory_protocols"
1475 #define DEF_SMTP_TLS_MAND_PROTO	"!SSLv2"
1476 #define VAR_LMTP_TLS_MAND_PROTO	"lmtp_tls_mandatory_protocols"
1477 #define DEF_LMTP_TLS_MAND_PROTO	"!SSLv2"
1478 extern char *var_smtp_tls_mand_proto;
1479 
1480 #define VAR_SMTP_TLS_VFY_CMATCH	"smtp_tls_verify_cert_match"
1481 #define DEF_SMTP_TLS_VFY_CMATCH	"hostname"
1482 #define VAR_LMTP_TLS_VFY_CMATCH	"lmtp_tls_verify_cert_match"
1483 #define DEF_LMTP_TLS_VFY_CMATCH	"hostname"
1484 extern char *var_smtp_tls_vfy_cmatch;
1485 
1486  /*
1487   * There are no MX lookups for LMTP, so verify == secure
1488   */
1489 #define VAR_SMTP_TLS_SEC_CMATCH	"smtp_tls_secure_cert_match"
1490 #define DEF_SMTP_TLS_SEC_CMATCH	"nexthop, dot-nexthop"
1491 #define VAR_LMTP_TLS_SEC_CMATCH	"lmtp_tls_secure_cert_match"
1492 #define DEF_LMTP_TLS_SEC_CMATCH	"nexthop"
1493 extern char *var_smtp_tls_sec_cmatch;
1494 
1495 
1496 #define VAR_SMTP_TLS_FPT_CMATCH "smtp_tls_fingerprint_cert_match"
1497 #define DEF_SMTP_TLS_FPT_CMATCH ""
1498 #define VAR_LMTP_TLS_FPT_CMATCH "lmtp_tls_fingerprint_cert_match"
1499 #define DEF_LMTP_TLS_FPT_CMATCH ""
1500 extern char *var_smtp_tls_fpt_cmatch;
1501 
1502 #define VAR_SMTP_TLS_BLK_EARLY_MAIL_REPLY "smtp_tls_block_early_mail_reply"
1503 #define DEF_SMTP_TLS_BLK_EARLY_MAIL_REPLY 0
1504 #define VAR_LMTP_TLS_BLK_EARLY_MAIL_REPLY "lmtp_tls_block_early_mail_reply"
1505 #define DEF_LMTP_TLS_BLK_EARLY_MAIL_REPLY 0
1506 extern bool var_smtp_tls_blk_early_mail_reply;
1507 
1508  /*
1509   * SASL authentication support, SMTP server side.
1510   */
1511 #define VAR_SMTPD_SASL_ENABLE	"smtpd_sasl_auth_enable"
1512 #define DEF_SMTPD_SASL_ENABLE	0
1513 extern bool var_smtpd_sasl_enable;
1514 
1515 #define VAR_SMTPD_SASL_AUTH_HDR	"smtpd_sasl_authenticated_header"
1516 #define DEF_SMTPD_SASL_AUTH_HDR	0
1517 extern bool var_smtpd_sasl_auth_hdr;
1518 
1519 #define VAR_SMTPD_SASL_OPTS	"smtpd_sasl_security_options"
1520 #define DEF_SMTPD_SASL_OPTS	"noanonymous"
1521 extern char *var_smtpd_sasl_opts;
1522 
1523 #define VAR_SMTPD_SASL_PATH	"smtpd_sasl_path"
1524 #define DEF_SMTPD_SASL_PATH	"smtpd"
1525 extern char *var_smtpd_sasl_path;
1526 
1527 #define VAR_CYRUS_CONF_PATH	"cyrus_sasl_config_path"
1528 #define DEF_CYRUS_CONF_PATH	""
1529 extern char *var_cyrus_conf_path;
1530 
1531 #define VAR_SMTPD_SASL_TLS_OPTS	"smtpd_sasl_tls_security_options"
1532 #define DEF_SMTPD_SASL_TLS_OPTS	"$" VAR_SMTPD_SASL_OPTS
1533 extern char *var_smtpd_sasl_tls_opts;
1534 
1535 #define VAR_SMTPD_SASL_REALM	"smtpd_sasl_local_domain"
1536 #define DEF_SMTPD_SASL_REALM	""
1537 extern char *var_smtpd_sasl_realm;
1538 
1539 #define VAR_SMTPD_SASL_EXCEPTIONS_NETWORKS	"smtpd_sasl_exceptions_networks"
1540 #define DEF_SMTPD_SASL_EXCEPTIONS_NETWORKS	""
1541 extern char *var_smtpd_sasl_exceptions_networks;
1542 
1543 #ifndef DEF_SERVER_SASL_TYPE
1544 #define DEF_SERVER_SASL_TYPE	"cyrus"
1545 #endif
1546 
1547 #define VAR_SMTPD_SASL_TYPE	"smtpd_sasl_type"
1548 #define DEF_SMTPD_SASL_TYPE	DEF_SERVER_SASL_TYPE
1549 extern char *var_smtpd_sasl_type;
1550 
1551 #define VAR_SMTPD_SND_AUTH_MAPS	"smtpd_sender_login_maps"
1552 #define DEF_SMTPD_SND_AUTH_MAPS	""
1553 extern char *var_smtpd_snd_auth_maps;
1554 
1555 #define REJECT_SENDER_LOGIN_MISMATCH	"reject_sender_login_mismatch"
1556 #define REJECT_AUTH_SENDER_LOGIN_MISMATCH \
1557 				"reject_authenticated_sender_login_mismatch"
1558 #define REJECT_UNAUTH_SENDER_LOGIN_MISMATCH \
1559 				"reject_unauthenticated_sender_login_mismatch"
1560 
1561  /*
1562   * SASL authentication support, SMTP client side.
1563   */
1564 #define VAR_SMTP_SASL_ENABLE	"smtp_sasl_auth_enable"
1565 #define DEF_SMTP_SASL_ENABLE	0
1566 extern bool var_smtp_sasl_enable;
1567 
1568 #define VAR_SMTP_SASL_PASSWD	"smtp_sasl_password_maps"
1569 #define DEF_SMTP_SASL_PASSWD	""
1570 extern char *var_smtp_sasl_passwd;
1571 
1572 #define VAR_SMTP_SASL_OPTS	"smtp_sasl_security_options"
1573 #define DEF_SMTP_SASL_OPTS	"noplaintext, noanonymous"
1574 extern char *var_smtp_sasl_opts;
1575 
1576 #define VAR_SMTP_SASL_PATH	"smtp_sasl_path"
1577 #define DEF_SMTP_SASL_PATH	""
1578 extern char *var_smtp_sasl_path;
1579 
1580 #define VAR_SMTP_SASL_MECHS	"smtp_sasl_mechanism_filter"
1581 #define DEF_SMTP_SASL_MECHS	""
1582 #define VAR_LMTP_SASL_MECHS	"lmtp_sasl_mechanism_filter"
1583 #define DEF_LMTP_SASL_MECHS	""
1584 extern char *var_smtp_sasl_mechs;
1585 
1586 #ifndef DEF_CLIENT_SASL_TYPE
1587 #define DEF_CLIENT_SASL_TYPE	"cyrus"
1588 #endif
1589 
1590 #define VAR_SMTP_SASL_TYPE	"smtp_sasl_type"
1591 #define DEF_SMTP_SASL_TYPE	DEF_CLIENT_SASL_TYPE
1592 #define VAR_LMTP_SASL_TYPE	"lmtp_sasl_type"
1593 #define DEF_LMTP_SASL_TYPE	DEF_CLIENT_SASL_TYPE
1594 extern char *var_smtp_sasl_type;
1595 
1596 #define VAR_SMTP_SASL_TLS_OPTS	"smtp_sasl_tls_security_options"
1597 #define DEF_SMTP_SASL_TLS_OPTS	"$" VAR_SMTP_SASL_OPTS
1598 #define VAR_LMTP_SASL_TLS_OPTS	"lmtp_sasl_tls_security_options"
1599 #define DEF_LMTP_SASL_TLS_OPTS	"$" VAR_LMTP_SASL_OPTS
1600 extern char *var_smtp_sasl_tls_opts;
1601 
1602 #define VAR_SMTP_SASL_TLSV_OPTS	"smtp_sasl_tls_verified_security_options"
1603 #define DEF_SMTP_SASL_TLSV_OPTS	"$" VAR_SMTP_SASL_TLS_OPTS
1604 #define VAR_LMTP_SASL_TLSV_OPTS	"lmtp_sasl_tls_verified_security_options"
1605 #define DEF_LMTP_SASL_TLSV_OPTS	"$" VAR_LMTP_SASL_TLS_OPTS
1606 extern char *var_smtp_sasl_tlsv_opts;
1607 
1608 #define VAR_SMTP_DUMMY_MAIL_AUTH	"smtp_send_dummy_mail_auth"
1609 #define DEF_SMTP_DUMMY_MAIL_AUTH	0
1610 extern bool var_smtp_dummy_mail_auth;
1611 
1612  /*
1613   * LMTP server. The soft error limit determines how many errors an LMTP
1614   * client may make before we start to slow down; the hard error limit
1615   * determines after how many client errors we disconnect.
1616   */
1617 #define VAR_LMTPD_BANNER	"lmtpd_banner"
1618 #define DEF_LMTPD_BANNER	"$myhostname $mail_name"
1619 extern char *var_lmtpd_banner;
1620 
1621 #define VAR_LMTPD_TMOUT		"lmtpd_timeout"
1622 #define DEF_LMTPD_TMOUT		"300s"
1623 extern int var_lmtpd_tmout;
1624 
1625 #define VAR_LMTPD_RCPT_LIMIT	"lmtpd_recipient_limit"
1626 #define DEF_LMTPD_RCPT_LIMIT	1000
1627 extern int var_lmtpd_rcpt_limit;
1628 
1629 #define VAR_LMTPD_SOFT_ERLIM	"lmtpd_soft_error_limit"
1630 #define DEF_LMTPD_SOFT_ERLIM	10
1631 extern int var_lmtpd_soft_erlim;
1632 
1633 #define VAR_LMTPD_HARD_ERLIM	"lmtpd_hard_error_limit"
1634 #define DEF_LMTPD_HARD_ERLIM	100
1635 extern int var_lmtpd_hard_erlim;
1636 
1637 #define VAR_LMTPD_ERR_SLEEP	"lmtpd_error_sleep_time"
1638 #define DEF_LMTPD_ERR_SLEEP	"5s"
1639 extern int var_lmtpd_err_sleep;
1640 
1641 #define VAR_LMTPD_JUNK_CMD	"lmtpd_junk_command_limit"
1642 #define DEF_LMTPD_JUNK_CMD	1000
1643 extern int var_lmtpd_junk_cmd_limit;
1644 
1645  /*
1646   * SASL authentication support, LMTP server side.
1647   */
1648 #define VAR_LMTPD_SASL_ENABLE	"lmtpd_sasl_auth_enable"
1649 #define DEF_LMTPD_SASL_ENABLE	0
1650 extern bool var_lmtpd_sasl_enable;
1651 
1652 #define VAR_LMTPD_SASL_OPTS	"lmtpd_sasl_security_options"
1653 #define DEF_LMTPD_SASL_OPTS	"noanonymous"
1654 extern char *var_lmtpd_sasl_opts;
1655 
1656 #define VAR_LMTPD_SASL_REALM	"lmtpd_sasl_local_domain"
1657 #define DEF_LMTPD_SASL_REALM	"$myhostname"
1658 extern char *var_lmtpd_sasl_realm;
1659 
1660  /*
1661   * SASL authentication support, LMTP client side.
1662   */
1663 #define VAR_LMTP_SASL_ENABLE	"lmtp_sasl_auth_enable"
1664 #define DEF_LMTP_SASL_ENABLE	0
1665 extern bool var_lmtp_sasl_enable;
1666 
1667 #define VAR_LMTP_SASL_PASSWD	"lmtp_sasl_password_maps"
1668 #define DEF_LMTP_SASL_PASSWD	""
1669 extern char *var_lmtp_sasl_passwd;
1670 
1671 #define VAR_LMTP_SASL_OPTS	"lmtp_sasl_security_options"
1672 #define DEF_LMTP_SASL_OPTS	"noplaintext, noanonymous"
1673 extern char *var_lmtp_sasl_opts;
1674 
1675 #define VAR_LMTP_SASL_PATH	"lmtp_sasl_path"
1676 #define DEF_LMTP_SASL_PATH	""
1677 extern char *var_lmtp_sasl_path;
1678 
1679 #define VAR_LMTP_DUMMY_MAIL_AUTH	"lmtp_send_dummy_mail_auth"
1680 #define DEF_LMTP_DUMMY_MAIL_AUTH	0
1681 extern bool var_lmtp_dummy_mail_auth;
1682 
1683  /*
1684   * SASL-based relay etc. control.
1685   */
1686 #define PERMIT_SASL_AUTH	"permit_sasl_authenticated"
1687 
1688 #define VAR_CYRUS_SASL_AUTHZID	"send_cyrus_sasl_authzid"
1689 #define DEF_CYRUS_SASL_AUTHZID	0
1690 extern int var_cyrus_sasl_authzid;
1691 
1692  /*
1693   * Special handling of AUTH 535 failures.
1694   */
1695 #define VAR_SMTP_SASL_AUTH_SOFT_BOUNCE	"smtp_sasl_auth_soft_bounce"
1696 #define DEF_SMTP_SASL_AUTH_SOFT_BOUNCE	1
1697 #define VAR_LMTP_SASL_AUTH_SOFT_BOUNCE	"lmtp_sasl_auth_soft_bounce"
1698 #define DEF_LMTP_SASL_AUTH_SOFT_BOUNCE	1
1699 extern bool var_smtp_sasl_auth_soft_bounce;
1700 
1701 #define VAR_SMTP_SASL_AUTH_CACHE_NAME	"smtp_sasl_auth_cache_name"
1702 #define DEF_SMTP_SASL_AUTH_CACHE_NAME	""
1703 #define VAR_LMTP_SASL_AUTH_CACHE_NAME	"lmtp_sasl_auth_cache_name"
1704 #define DEF_LMTP_SASL_AUTH_CACHE_NAME	""
1705 extern char *var_smtp_sasl_auth_cache_name;
1706 
1707 #define VAR_SMTP_SASL_AUTH_CACHE_TIME	"smtp_sasl_auth_cache_time"
1708 #define DEF_SMTP_SASL_AUTH_CACHE_TIME	"90d"
1709 #define VAR_LMTP_SASL_AUTH_CACHE_TIME	"lmtp_sasl_auth_cache_time"
1710 #define DEF_LMTP_SASL_AUTH_CACHE_TIME	"90d"
1711 extern int var_smtp_sasl_auth_cache_time;
1712 
1713  /*
1714   * LMTP client. Timeouts inspired by RFC 1123. The LMTP recipient limit
1715   * determines how many recipient addresses the LMTP client sends along with
1716   * each message. Unfortunately, some mailers misbehave and disconnect (smap)
1717   * when given more recipients than they are willing to handle.
1718   */
1719 #define VAR_LMTP_TCP_PORT	"lmtp_tcp_port"
1720 #define DEF_LMTP_TCP_PORT	"24"
1721 extern char *var_lmtp_tcp_port;
1722 
1723 #define VAR_LMTP_ASSUME_FINAL	"lmtp_assume_final"
1724 #define DEF_LMTP_ASSUME_FINAL	0
1725 extern bool var_lmtp_assume_final;
1726 
1727 #define VAR_LMTP_CACHE_CONN	"lmtp_cache_connection"
1728 #define DEF_LMTP_CACHE_CONN	1
1729 extern bool var_lmtp_cache_conn;
1730 
1731 #define VAR_LMTP_SKIP_QUIT_RESP	"lmtp_skip_quit_response"
1732 #define DEF_LMTP_SKIP_QUIT_RESP	0
1733 extern bool var_lmtp_skip_quit_resp;
1734 
1735 #define VAR_LMTP_CONN_TMOUT	"lmtp_connect_timeout"
1736 #define DEF_LMTP_CONN_TMOUT	"0s"
1737 extern int var_lmtp_conn_tmout;
1738 
1739 #define VAR_LMTP_RSET_TMOUT	"lmtp_rset_timeout"
1740 #define DEF_LMTP_RSET_TMOUT	"20s"
1741 extern int var_lmtp_rset_tmout;
1742 
1743 #define VAR_LMTP_LHLO_TMOUT	"lmtp_lhlo_timeout"
1744 #define DEF_LMTP_LHLO_TMOUT	"300s"
1745 extern int var_lmtp_lhlo_tmout;
1746 
1747 #define VAR_LMTP_XFWD_TMOUT	"lmtp_xforward_timeout"
1748 #define DEF_LMTP_XFWD_TMOUT	"300s"
1749 extern int var_lmtp_xfwd_tmout;
1750 
1751 #define VAR_LMTP_MAIL_TMOUT	"lmtp_mail_timeout"
1752 #define DEF_LMTP_MAIL_TMOUT	"300s"
1753 extern int var_lmtp_mail_tmout;
1754 
1755 #define VAR_LMTP_RCPT_TMOUT	"lmtp_rcpt_timeout"
1756 #define DEF_LMTP_RCPT_TMOUT	"300s"
1757 extern int var_lmtp_rcpt_tmout;
1758 
1759 #define VAR_LMTP_DATA0_TMOUT	"lmtp_data_init_timeout"
1760 #define DEF_LMTP_DATA0_TMOUT	"120s"
1761 extern int var_lmtp_data0_tmout;
1762 
1763 #define VAR_LMTP_DATA1_TMOUT	"lmtp_data_xfer_timeout"
1764 #define DEF_LMTP_DATA1_TMOUT	"180s"
1765 extern int var_lmtp_data1_tmout;
1766 
1767 #define VAR_LMTP_DATA2_TMOUT	"lmtp_data_done_timeout"
1768 #define DEF_LMTP_DATA2_TMOUT	"600s"
1769 extern int var_lmtp_data2_tmout;
1770 
1771 #define VAR_LMTP_QUIT_TMOUT	"lmtp_quit_timeout"
1772 #define DEF_LMTP_QUIT_TMOUT	"300s"
1773 extern int var_lmtp_quit_tmout;
1774 
1775 #define VAR_LMTP_SEND_XFORWARD	"lmtp_send_xforward_command"
1776 #define DEF_LMTP_SEND_XFORWARD	0
1777 extern bool var_lmtp_send_xforward;
1778 
1779  /*
1780   * Cleanup service. Header info that exceeds $header_size_limit bytes or
1781   * $header_address_token_limit tokens is discarded.
1782   */
1783 #define VAR_HOPCOUNT_LIMIT	"hopcount_limit"
1784 #define DEF_HOPCOUNT_LIMIT	50
1785 extern int var_hopcount_limit;
1786 
1787 #define VAR_HEADER_LIMIT	"header_size_limit"
1788 #define DEF_HEADER_LIMIT	102400
1789 extern int var_header_limit;
1790 
1791 #define VAR_TOKEN_LIMIT		"header_address_token_limit"
1792 #define DEF_TOKEN_LIMIT		10240
1793 extern int var_token_limit;
1794 
1795 #define VAR_VIRT_RECUR_LIMIT	"virtual_alias_recursion_limit"
1796 #define DEF_VIRT_RECUR_LIMIT	1000
1797 extern int var_virt_recur_limit;
1798 
1799 #define VAR_VIRT_EXPAN_LIMIT	"virtual_alias_expansion_limit"
1800 #define DEF_VIRT_EXPAN_LIMIT	1000
1801 extern int var_virt_expan_limit;
1802 
1803  /*
1804   * Message/queue size limits.
1805   */
1806 #define VAR_MESSAGE_LIMIT	"message_size_limit"
1807 #define DEF_MESSAGE_LIMIT	10240000
1808 extern long var_message_limit;
1809 
1810 #define VAR_QUEUE_MINFREE	"queue_minfree"
1811 #define DEF_QUEUE_MINFREE	0
1812 extern int var_queue_minfree;
1813 
1814 #define VAR_HEADER_CHECKS	"header_checks"
1815 #define DEF_HEADER_CHECKS	""
1816 extern char *var_header_checks;
1817 
1818 #define VAR_MIMEHDR_CHECKS	"mime_header_checks"
1819 #define DEF_MIMEHDR_CHECKS	"$header_checks"
1820 extern char *var_mimehdr_checks;
1821 
1822 #define VAR_NESTHDR_CHECKS	"nested_header_checks"
1823 #define DEF_NESTHDR_CHECKS	"$header_checks"
1824 extern char *var_nesthdr_checks;
1825 
1826 #define VAR_BODY_CHECKS		"body_checks"
1827 #define DEF_BODY_CHECKS		""
1828 extern char *var_body_checks;
1829 
1830 #define VAR_BODY_CHECK_LEN	"body_checks_size_limit"
1831 #define DEF_BODY_CHECK_LEN	(50*1024)
1832 extern int var_body_check_len;
1833 
1834  /*
1835   * Bounce service: truncate bounce message that exceed $bounce_size_limit.
1836   */
1837 #define VAR_BOUNCE_LIMIT	"bounce_size_limit"
1838 #define DEF_BOUNCE_LIMIT	50000
1839 extern int var_bounce_limit;
1840 
1841  /*
1842   * Bounce service: reserved sender address for double bounces. The local
1843   * delivery service discards undeliverable double bounces.
1844   */
1845 #define VAR_DOUBLE_BOUNCE	"double_bounce_sender"
1846 #define DEF_DOUBLE_BOUNCE	"double-bounce"
1847 extern char *var_double_bounce_sender;
1848 
1849  /*
1850   * When forking a process, how often to try and how long to wait.
1851   */
1852 #define VAR_FORK_TRIES		"fork_attempts"
1853 #define DEF_FORK_TRIES		5
1854 extern int var_fork_tries;
1855 
1856 #define VAR_FORK_DELAY		"fork_delay"
1857 #define DEF_FORK_DELAY		"1s"
1858 extern int var_fork_delay;
1859 
1860  /*
1861   * When locking a mailbox, how often to try and how long to wait.
1862   */
1863 #define VAR_FLOCK_TRIES          "deliver_lock_attempts"
1864 #define DEF_FLOCK_TRIES          20
1865 extern int var_flock_tries;
1866 
1867 #define VAR_FLOCK_DELAY          "deliver_lock_delay"
1868 #define DEF_FLOCK_DELAY          "1s"
1869 extern int var_flock_delay;
1870 
1871 #define VAR_FLOCK_STALE		"stale_lock_time"
1872 #define DEF_FLOCK_STALE		"500s"
1873 extern int var_flock_stale;
1874 
1875 #define VAR_MAILTOOL_COMPAT	"sun_mailtool_compatibility"
1876 #define DEF_MAILTOOL_COMPAT	0
1877 extern int var_mailtool_compat;
1878 
1879  /*
1880   * How long a daemon command may take to receive or deliver a message etc.
1881   * before we assume it is wegded (should never happen).
1882   */
1883 #define VAR_DAEMON_TIMEOUT	"daemon_timeout"
1884 #define DEF_DAEMON_TIMEOUT	"18000s"
1885 extern int var_daemon_timeout;
1886 
1887 #define VAR_QMGR_DAEMON_TIMEOUT	"qmgr_daemon_timeout"
1888 #define DEF_QMGR_DAEMON_TIMEOUT	"1000s"
1889 extern int var_qmgr_daemon_timeout;
1890 
1891  /*
1892   * How long an intra-mail command may take before we assume the mail system
1893   * is in deadlock (should never happen).
1894   */
1895 #define VAR_IPC_TIMEOUT		"ipc_timeout"
1896 #define DEF_IPC_TIMEOUT		"3600s"
1897 extern int var_ipc_timeout;
1898 
1899 #define VAR_QMGR_IPC_TIMEOUT	"qmgr_ipc_timeout"
1900 #define DEF_QMGR_IPC_TIMEOUT	"60s"
1901 extern int var_qmgr_ipc_timeout;
1902 
1903  /*
1904   * Time limit on intra-mail triggers.
1905   */
1906 #define VAR_TRIGGER_TIMEOUT	"trigger_timeout"
1907 #define DEF_TRIGGER_TIMEOUT	"10s"
1908 extern int var_trigger_timeout;
1909 
1910  /*
1911   * SMTP server restrictions. What networks I am willing to relay from, what
1912   * domains I am willing to forward mail from or to, what clients I refuse to
1913   * talk to, and what domains I never want to see in the sender address.
1914   */
1915 #define VAR_MYNETWORKS		"mynetworks"
1916 extern char *var_mynetworks;
1917 
1918 #define VAR_MYNETWORKS_STYLE	"mynetworks_style"
1919 #define DEF_MYNETWORKS_STYLE	MYNETWORKS_STYLE_SUBNET
1920 extern char *var_mynetworks_style;
1921 
1922 #define	MYNETWORKS_STYLE_CLASS	"class"
1923 #define	MYNETWORKS_STYLE_SUBNET	"subnet"
1924 #define	MYNETWORKS_STYLE_HOST	"host"
1925 
1926 #define VAR_RELAY_DOMAINS	"relay_domains"
1927 #define DEF_RELAY_DOMAINS	"$mydestination"
1928 extern char *var_relay_domains;
1929 
1930 #define VAR_RELAY_TRANSPORT	"relay_transport"
1931 #define DEF_RELAY_TRANSPORT	MAIL_SERVICE_RELAY
1932 extern char *var_relay_transport;
1933 
1934 #define VAR_RELAY_RCPT_MAPS	"relay_recipient_maps"
1935 #define DEF_RELAY_RCPT_MAPS	""
1936 extern char *var_relay_rcpt_maps;
1937 
1938 #define VAR_RELAY_RCPT_CODE	"unknown_relay_recipient_reject_code"
1939 #define DEF_RELAY_RCPT_CODE	550
1940 extern int var_relay_rcpt_code;
1941 
1942 #define VAR_RELAY_CCERTS	"relay_clientcerts"
1943 #define DEF_RELAY_CCERTS	""
1944 extern char *var_smtpd_relay_ccerts;
1945 
1946 #define VAR_CLIENT_CHECKS	"smtpd_client_restrictions"
1947 #define DEF_CLIENT_CHECKS	""
1948 extern char *var_client_checks;
1949 
1950 #define VAR_HELO_REQUIRED	"smtpd_helo_required"
1951 #define DEF_HELO_REQUIRED	0
1952 extern bool var_helo_required;
1953 
1954 #define VAR_HELO_CHECKS		"smtpd_helo_restrictions"
1955 #define DEF_HELO_CHECKS		""
1956 extern char *var_helo_checks;
1957 
1958 #define VAR_MAIL_CHECKS		"smtpd_sender_restrictions"
1959 #define DEF_MAIL_CHECKS		""
1960 extern char *var_mail_checks;
1961 
1962 #define VAR_RCPT_CHECKS		"smtpd_recipient_restrictions"
1963 #define DEF_RCPT_CHECKS		PERMIT_MYNETWORKS ", " REJECT_UNAUTH_DEST
1964 extern char *var_rcpt_checks;
1965 
1966 #define VAR_ETRN_CHECKS		"smtpd_etrn_restrictions"
1967 #define DEF_ETRN_CHECKS		""
1968 extern char *var_etrn_checks;
1969 
1970 #define VAR_DATA_CHECKS		"smtpd_data_restrictions"
1971 #define DEF_DATA_CHECKS		""
1972 extern char *var_data_checks;
1973 
1974 #define VAR_EOD_CHECKS		"smtpd_end_of_data_restrictions"
1975 #define DEF_EOD_CHECKS		""
1976 extern char *var_eod_checks;
1977 
1978 #define VAR_REST_CLASSES	"smtpd_restriction_classes"
1979 #define DEF_REST_CLASSES	""
1980 extern char *var_rest_classes;
1981 
1982 #define VAR_ALLOW_UNTRUST_ROUTE	"allow_untrusted_routing"
1983 #define DEF_ALLOW_UNTRUST_ROUTE	0
1984 extern bool var_allow_untrust_route;
1985 
1986  /*
1987   * Names of specific restrictions, and the corresponding configuration
1988   * parameters that control the status codes sent in response to rejected
1989   * requests.
1990   */
1991 #define PERMIT_ALL		"permit"
1992 #define REJECT_ALL		"reject"
1993 #define VAR_REJECT_CODE		"reject_code"
1994 #define DEF_REJECT_CODE		554
1995 extern int var_reject_code;
1996 
1997 #define DEFER_ALL		"defer"
1998 #define VAR_DEFER_CODE		"defer_code"
1999 #define DEF_DEFER_CODE		450
2000 extern int var_defer_code;
2001 
2002 #define DEFER_IF_PERMIT		"defer_if_permit"
2003 #define DEFER_IF_REJECT		"defer_if_reject"
2004 
2005 #define VAR_REJECT_TMPF_ACT	"reject_tempfail_action"
2006 #define DEF_REJECT_TMPF_ACT	DEFER_IF_PERMIT
2007 extern char *var_reject_tmpf_act;
2008 
2009 #define SLEEP			"sleep"
2010 
2011 #define REJECT_PLAINTEXT_SESSION "reject_plaintext_session"
2012 #define VAR_PLAINTEXT_CODE	"plaintext_reject_code"
2013 #define DEF_PLAINTEXT_CODE	450
2014 extern int var_plaintext_code;
2015 
2016 #define REJECT_UNKNOWN_CLIENT	"reject_unknown_client"
2017 #define REJECT_UNKNOWN_CLIENT_HOSTNAME "reject_unknown_client_hostname"
2018 #define REJECT_UNKNOWN_REVERSE_HOSTNAME "reject_unknown_reverse_client_hostname"
2019 #define REJECT_UNKNOWN_FORWARD_HOSTNAME "reject_unknown_forward_client_hostname"
2020 #define VAR_UNK_CLIENT_CODE	"unknown_client_reject_code"
2021 #define DEF_UNK_CLIENT_CODE	450
2022 extern int var_unk_client_code;
2023 
2024 #define PERMIT_INET_INTERFACES	"permit_inet_interfaces"
2025 
2026 #define PERMIT_MYNETWORKS	"permit_mynetworks"
2027 
2028 #define PERMIT_NAKED_IP_ADDR	"permit_naked_ip_address"
2029 
2030 #define REJECT_INVALID_HELO_HOSTNAME	"reject_invalid_helo_hostname"
2031 #define REJECT_INVALID_HOSTNAME	"reject_invalid_hostname"
2032 #define VAR_BAD_NAME_CODE	"invalid_hostname_reject_code"
2033 #define DEF_BAD_NAME_CODE	501	/* SYNTAX */
2034 extern int var_bad_name_code;
2035 
2036 #define REJECT_UNKNOWN_HELO_HOSTNAME "reject_unknown_helo_hostname"
2037 #define REJECT_UNKNOWN_HOSTNAME	"reject_unknown_hostname"
2038 #define VAR_UNK_NAME_CODE	"unknown_hostname_reject_code"
2039 #define DEF_UNK_NAME_CODE	450
2040 extern int var_unk_name_code;
2041 
2042 #define VAR_UNK_NAME_TF_ACT	"unknown_helo_hostname_tempfail_action"
2043 #define DEF_UNK_NAME_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2044 extern char *var_unk_name_tf_act;
2045 
2046 #define REJECT_NON_FQDN_HELO_HOSTNAME "reject_non_fqdn_helo_hostname"
2047 #define REJECT_NON_FQDN_HOSTNAME "reject_non_fqdn_hostname"
2048 #define REJECT_NON_FQDN_SENDER	"reject_non_fqdn_sender"
2049 #define REJECT_NON_FQDN_RCPT	"reject_non_fqdn_recipient"
2050 #define VAR_NON_FQDN_CODE	"non_fqdn_reject_code"
2051 #define DEF_NON_FQDN_CODE	504	/* POLICY */
2052 extern int var_non_fqdn_code;
2053 
2054 #define REJECT_UNKNOWN_SENDDOM	"reject_unknown_sender_domain"
2055 #define REJECT_UNKNOWN_RCPTDOM	"reject_unknown_recipient_domain"
2056 #define REJECT_UNKNOWN_ADDRESS	"reject_unknown_address"
2057 #define REJECT_UNLISTED_SENDER	"reject_unlisted_sender"
2058 #define REJECT_UNLISTED_RCPT	"reject_unlisted_recipient"
2059 #define CHECK_RCPT_MAPS		"check_recipient_maps"
2060 
2061 #define VAR_UNK_ADDR_CODE	"unknown_address_reject_code"
2062 #define DEF_UNK_ADDR_CODE	450
2063 extern int var_unk_addr_code;
2064 
2065 #define VAR_UNK_ADDR_TF_ACT	"unknown_address_tempfail_action"
2066 #define DEF_UNK_ADDR_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2067 extern char *var_unk_addr_tf_act;
2068 
2069 #define VAR_SMTPD_REJ_UNL_FROM	"smtpd_reject_unlisted_sender"
2070 #define DEF_SMTPD_REJ_UNL_FROM	0
2071 extern bool var_smtpd_rej_unl_from;
2072 
2073 #define VAR_SMTPD_REJ_UNL_RCPT	"smtpd_reject_unlisted_recipient"
2074 #define DEF_SMTPD_REJ_UNL_RCPT	1
2075 extern bool var_smtpd_rej_unl_rcpt;
2076 
2077 #define REJECT_UNVERIFIED_RECIP "reject_unverified_recipient"
2078 #define VAR_UNV_RCPT_RCODE	"unverified_recipient_reject_code"
2079 #define DEF_UNV_RCPT_RCODE	450
2080 extern int var_unv_rcpt_rcode;
2081 
2082 #define REJECT_UNVERIFIED_SENDER "reject_unverified_sender"
2083 #define VAR_UNV_FROM_RCODE	"unverified_sender_reject_code"
2084 #define DEF_UNV_FROM_RCODE	450
2085 extern int var_unv_from_rcode;
2086 
2087 #define VAR_UNV_RCPT_DCODE	"unverified_recipient_defer_code"
2088 #define DEF_UNV_RCPT_DCODE	450
2089 extern int var_unv_rcpt_dcode;
2090 
2091 #define VAR_UNV_FROM_DCODE	"unverified_sender_defer_code"
2092 #define DEF_UNV_FROM_DCODE	450
2093 extern int var_unv_from_dcode;
2094 
2095 #define VAR_UNV_RCPT_TF_ACT	"unverified_recipient_tempfail_action"
2096 #define DEF_UNV_RCPT_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2097 extern char *var_unv_rcpt_tf_act;
2098 
2099 #define VAR_UNV_FROM_TF_ACT	"unverified_sender_tempfail_action"
2100 #define DEF_UNV_FROM_TF_ACT	"$" VAR_REJECT_TMPF_ACT
2101 extern char *var_unv_from_tf_act;
2102 
2103 #define VAR_UNV_RCPT_WHY	"unverified_recipient_reject_reason"
2104 #define DEF_UNV_RCPT_WHY	""
2105 extern char *var_unv_rcpt_why;
2106 
2107 #define VAR_UNV_FROM_WHY	"unverified_sender_reject_reason"
2108 #define DEF_UNV_FROM_WHY	""
2109 extern char *var_unv_from_why;
2110 
2111 #define REJECT_MUL_RCPT_BOUNCE	"reject_multi_recipient_bounce"
2112 #define VAR_MUL_RCPT_CODE	"multi_recipient_bounce_reject_code"
2113 #define DEF_MUL_RCPT_CODE	550
2114 extern int var_mul_rcpt_code;
2115 
2116 #define PERMIT_AUTH_DEST	"permit_auth_destination"
2117 #define REJECT_UNAUTH_DEST	"reject_unauth_destination"
2118 #define CHECK_RELAY_DOMAINS	"check_relay_domains"
2119 #define PERMIT_TLS_CLIENTCERTS	"permit_tls_clientcerts"
2120 #define PERMIT_TLS_ALL_CLIENTCERTS	"permit_tls_all_clientcerts"
2121 #define VAR_RELAY_CODE		"relay_domains_reject_code"
2122 #define DEF_RELAY_CODE		554
2123 extern int var_relay_code;
2124 
2125 #define PERMIT_MX_BACKUP	"permit_mx_backup"
2126 
2127 #define VAR_PERM_MX_NETWORKS	"permit_mx_backup_networks"
2128 #define DEF_PERM_MX_NETWORKS	""
2129 extern char *var_perm_mx_networks;
2130 
2131 #define VAR_MAP_REJECT_CODE	"access_map_reject_code"
2132 #define DEF_MAP_REJECT_CODE	554
2133 extern int var_map_reject_code;
2134 
2135 #define VAR_MAP_DEFER_CODE	"access_map_defer_code"
2136 #define DEF_MAP_DEFER_CODE	450
2137 extern int var_map_defer_code;
2138 
2139 #define CHECK_CLIENT_ACL	"check_client_access"
2140 #define CHECK_REVERSE_CLIENT_ACL "check_reverse_client_hostname_access"
2141 #define CHECK_CCERT_ACL		"check_ccert_access"
2142 #define CHECK_HELO_ACL		"check_helo_access"
2143 #define CHECK_SENDER_ACL	"check_sender_access"
2144 #define CHECK_RECIP_ACL		"check_recipient_access"
2145 #define CHECK_ETRN_ACL		"check_etrn_access"
2146 
2147 #define CHECK_CLIENT_MX_ACL	"check_client_mx_access"
2148 #define CHECK_REVERSE_CLIENT_MX_ACL "check_reverse_client_hostname_mx_access"
2149 #define CHECK_HELO_MX_ACL	"check_helo_mx_access"
2150 #define CHECK_SENDER_MX_ACL	"check_sender_mx_access"
2151 #define CHECK_RECIP_MX_ACL	"check_recipient_mx_access"
2152 #define CHECK_CLIENT_NS_ACL	"check_client_ns_access"
2153 #define CHECK_REVERSE_CLIENT_NS_ACL "check_reverse_client_hostname_ns_access"
2154 #define CHECK_HELO_NS_ACL	"check_helo_ns_access"
2155 #define CHECK_SENDER_NS_ACL	"check_sender_ns_access"
2156 #define CHECK_RECIP_NS_ACL	"check_recipient_ns_access"
2157 
2158 #define WARN_IF_REJECT		"warn_if_reject"
2159 
2160 #define REJECT_RBL		"reject_rbl"	/* LaMont compatibility */
2161 #define REJECT_RBL_CLIENT	"reject_rbl_client"
2162 #define REJECT_RHSBL_CLIENT	"reject_rhsbl_client"
2163 #define REJECT_RHSBL_REVERSE_CLIENT	"reject_rhsbl_reverse_client"
2164 #define REJECT_RHSBL_HELO	"reject_rhsbl_helo"
2165 #define REJECT_RHSBL_SENDER	"reject_rhsbl_sender"
2166 #define REJECT_RHSBL_RECIPIENT	"reject_rhsbl_recipient"
2167 
2168 #define PERMIT_DNSWL_CLIENT	"permit_dnswl_client"
2169 #define PERMIT_RHSWL_CLIENT	"permit_rhswl_client"
2170 
2171 #define VAR_RBL_REPLY_MAPS	"rbl_reply_maps"
2172 #define DEF_RBL_REPLY_MAPS	""
2173 extern char *var_rbl_reply_maps;
2174 
2175 #define VAR_DEF_RBL_REPLY	"default_rbl_reply"
2176 #define DEF_DEF_RBL_REPLY	"$rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}"
2177 extern char *var_def_rbl_reply;
2178 
2179 #define REJECT_MAPS_RBL		"reject_maps_rbl"	/* backwards compat */
2180 #define VAR_MAPS_RBL_CODE	"maps_rbl_reject_code"
2181 #define DEF_MAPS_RBL_CODE	554
2182 extern int var_maps_rbl_code;
2183 
2184 #define VAR_MAPS_RBL_DOMAINS	"maps_rbl_domains"	/* backwards compat */
2185 #define DEF_MAPS_RBL_DOMAINS	""
2186 extern char *var_maps_rbl_domains;
2187 
2188 #define VAR_SMTPD_DELAY_REJECT	"smtpd_delay_reject"
2189 #define DEF_SMTPD_DELAY_REJECT	1
2190 extern int var_smtpd_delay_reject;
2191 
2192 #define REJECT_UNAUTH_PIPE	"reject_unauth_pipelining"
2193 
2194 #define VAR_SMTPD_NULL_KEY	"smtpd_null_access_lookup_key"
2195 #define DEF_SMTPD_NULL_KEY	"<>"
2196 extern char *var_smtpd_null_key;
2197 
2198 #define VAR_SMTPD_EXP_FILTER	"smtpd_expansion_filter"
2199 #define DEF_SMTPD_EXP_FILTER	"\\t\\40!\"#$%&'()*+,-./0123456789:;<=>?@\
2200 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`\
2201 abcdefghijklmnopqrstuvwxyz{|}~"
2202 extern char *var_smtpd_exp_filter;
2203 
2204 #define VAR_SMTPD_PEERNAME_LOOKUP	"smtpd_peername_lookup"
2205 #define DEF_SMTPD_PEERNAME_LOOKUP	1
2206 extern bool var_smtpd_peername_lookup;
2207 
2208  /*
2209   * Heuristic to reject unknown local recipients at the SMTP port.
2210   */
2211 #define VAR_LOCAL_RCPT_MAPS	"local_recipient_maps"
2212 #define DEF_LOCAL_RCPT_MAPS	"proxy:unix:passwd.byname $" VAR_ALIAS_MAPS
2213 extern char *var_local_rcpt_maps;
2214 
2215 #define VAR_LOCAL_RCPT_CODE	"unknown_local_recipient_reject_code"
2216 #define DEF_LOCAL_RCPT_CODE	550
2217 extern int var_local_rcpt_code;
2218 
2219  /*
2220   * List of pre-approved maps that are OK to open with the proxymap service.
2221   */
2222 #define VAR_PROXY_READ_MAPS	"proxy_read_maps"
2223 #define DEF_PROXY_READ_MAPS	"$" VAR_LOCAL_RCPT_MAPS \
2224 				" $" VAR_MYDEST \
2225 				" $" VAR_VIRT_ALIAS_MAPS \
2226 				" $" VAR_VIRT_ALIAS_DOMS \
2227 				" $" VAR_VIRT_MAILBOX_MAPS \
2228 				" $" VAR_VIRT_MAILBOX_DOMS \
2229 				" $" VAR_RELAY_RCPT_MAPS \
2230 				" $" VAR_RELAY_DOMAINS \
2231 				" $" VAR_CANONICAL_MAPS \
2232 				" $" VAR_SEND_CANON_MAPS \
2233 				" $" VAR_RCPT_CANON_MAPS \
2234 				" $" VAR_RELOCATED_MAPS \
2235 				" $" VAR_TRANSPORT_MAPS \
2236 				" $" VAR_MYNETWORKS \
2237 				" $" VAR_SEND_BCC_MAPS \
2238 				" $" VAR_RCPT_BCC_MAPS \
2239 				" $" VAR_SMTP_GENERIC_MAPS \
2240 				" $" VAR_LMTP_GENERIC_MAPS \
2241 				" $" VAR_ALIAS_MAPS
2242 extern char *var_proxy_read_maps;
2243 
2244 #define VAR_PROXY_WRITE_MAPS	"proxy_write_maps"
2245 #define DEF_PROXY_WRITE_MAPS	"$" VAR_SMTP_SASL_AUTH_CACHE_NAME \
2246 				" $" VAR_LMTP_SASL_AUTH_CACHE_NAME \
2247 				" $" VAR_VERIFY_MAP \
2248 				" $" VAR_PSC_CACHE_MAP
2249 extern char *var_proxy_write_maps;
2250 
2251 #define VAR_PROXY_READ_ACL	"proxy_read_access_list"
2252 #define DEF_PROXY_READ_ACL	"reject"
2253 extern char *var_proxy_read_acl;
2254 
2255 #define VAR_PROXY_WRITE_ACL	"proxy_write_access_list"
2256 #define DEF_PROXY_WRITE_ACL	"reject"
2257 extern char *var_proxy_write_acl;
2258 
2259  /*
2260   * Other.
2261   */
2262 #define VAR_PROCNAME		"process_name"
2263 extern char *var_procname;
2264 
2265 #define VAR_PID			"process_id"
2266 extern int var_pid;
2267 
2268 #define VAR_DEBUG_COMMAND	"debugger_command"
2269 
2270  /*
2271   * Paranoia: save files instead of deleting them.
2272   */
2273 #define VAR_DONT_REMOVE		"dont_remove"
2274 #define DEF_DONT_REMOVE		0
2275 extern bool var_dont_remove;
2276 
2277  /*
2278   * Paranoia: defer messages instead of bouncing them.
2279   */
2280 #define VAR_SOFT_BOUNCE		"soft_bounce"
2281 #define DEF_SOFT_BOUNCE		0
2282 extern bool var_soft_bounce;
2283 
2284  /*
2285   * Give special treatment to owner- and -request.
2286   */
2287 #define VAR_OWNREQ_SPECIAL		"owner_request_special"
2288 #define DEF_OWNREQ_SPECIAL		1
2289 extern bool var_ownreq_special;
2290 
2291  /*
2292   * Allow/disallow recipient addresses starting with `-'.
2293   */
2294 #define VAR_ALLOW_MIN_USER		"allow_min_user"
2295 #define DEF_ALLOW_MIN_USER		0
2296 extern bool var_allow_min_user;
2297 
2298 extern void mail_params_init(void);
2299 
2300  /*
2301   * Content inspection and filtering.
2302   */
2303 #define VAR_FILTER_XPORT		"content_filter"
2304 #define DEF_FILTER_XPORT		""
2305 extern char *var_filter_xport;
2306 
2307 #define VAR_DEF_FILTER_NEXTHOP		"default_filter_nexthop"
2308 #define DEF_DEF_FILTER_NEXTHOP		""
2309 extern char *var_def_filter_nexthop;
2310 
2311  /*
2312   * Fast flush service support.
2313   */
2314 #define VAR_FFLUSH_DOMAINS		"fast_flush_domains"
2315 #define DEF_FFLUSH_DOMAINS		"$relay_domains"
2316 extern char *var_fflush_domains;
2317 
2318 #define VAR_FFLUSH_PURGE		"fast_flush_purge_time"
2319 #define DEF_FFLUSH_PURGE		"7d"
2320 extern int var_fflush_purge;
2321 
2322 #define VAR_FFLUSH_REFRESH		"fast_flush_refresh_time"
2323 #define DEF_FFLUSH_REFRESH		"12h"
2324 extern int var_fflush_refresh;
2325 
2326  /*
2327   * Environmental management - what Postfix imports from the external world,
2328   * and what Postfix exports to the external world.
2329   */
2330 #define VAR_IMPORT_ENVIRON		"import_environment"
2331 #define DEF_IMPORT_ENVIRON		"MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C"
2332 extern char *var_import_environ;
2333 
2334 #define VAR_EXPORT_ENVIRON		"export_environment"
2335 #define DEF_EXPORT_ENVIRON		"TZ MAIL_CONFIG LANG"
2336 extern char *var_export_environ;
2337 
2338  /*
2339   * Tunables for the "virtual" local delivery agent
2340   */
2341 #define VAR_VIRT_TRANSPORT		"virtual_transport"
2342 #define DEF_VIRT_TRANSPORT		MAIL_SERVICE_VIRTUAL
2343 extern char *var_virt_transport;
2344 
2345 #define VAR_VIRT_MAILBOX_MAPS		"virtual_mailbox_maps"
2346 #define DEF_VIRT_MAILBOX_MAPS		""
2347 extern char *var_virt_mailbox_maps;
2348 
2349 #define VAR_VIRT_MAILBOX_DOMS		"virtual_mailbox_domains"
2350 #define DEF_VIRT_MAILBOX_DOMS		"$virtual_mailbox_maps"
2351 extern char *var_virt_mailbox_doms;
2352 
2353 #define VAR_VIRT_MAILBOX_CODE		"unknown_virtual_mailbox_reject_code"
2354 #define DEF_VIRT_MAILBOX_CODE		550
2355 extern int var_virt_mailbox_code;
2356 
2357 #define VAR_VIRT_UID_MAPS		"virtual_uid_maps"
2358 #define DEF_VIRT_UID_MAPS		""
2359 extern char *var_virt_uid_maps;
2360 
2361 #define VAR_VIRT_GID_MAPS		"virtual_gid_maps"
2362 #define DEF_VIRT_GID_MAPS		""
2363 extern char *var_virt_gid_maps;
2364 
2365 #define VAR_VIRT_MINUID			"virtual_minimum_uid"
2366 #define DEF_VIRT_MINUID			100
2367 extern int var_virt_minimum_uid;
2368 
2369 #define VAR_VIRT_MAILBOX_BASE		"virtual_mailbox_base"
2370 #define DEF_VIRT_MAILBOX_BASE		""
2371 extern char *var_virt_mailbox_base;
2372 
2373 #define VAR_VIRT_MAILBOX_LIMIT		"virtual_mailbox_limit"
2374 #define DEF_VIRT_MAILBOX_LIMIT		(5 * DEF_MESSAGE_LIMIT)
2375 extern long var_virt_mailbox_limit;
2376 
2377 #define VAR_VIRT_MAILBOX_LOCK		"virtual_mailbox_lock"
2378 #define DEF_VIRT_MAILBOX_LOCK		"fcntl, dotlock"
2379 extern char *var_virt_mailbox_lock;
2380 
2381  /*
2382   * Distinct logging tag for multiple Postfix instances.
2383   */
2384 #define VAR_SYSLOG_NAME			"syslog_name"
2385 #if 1
2386 #define DEF_SYSLOG_NAME			\
2387     "${" VAR_MULTI_NAME ":postfix}${" VAR_MULTI_NAME "?$" VAR_MULTI_NAME "}"
2388 #else
2389 #define DEF_SYSLOG_NAME			"postfix"
2390 #endif
2391 extern char *var_syslog_name;
2392 
2393  /*
2394   * QMQPD
2395   */
2396 #define VAR_QMQPD_CLIENTS		"qmqpd_authorized_clients"
2397 #define DEF_QMQPD_CLIENTS		""
2398 extern char *var_qmqpd_clients;
2399 
2400 #define VAR_QMTPD_TMOUT			"qmqpd_timeout"
2401 #define DEF_QMTPD_TMOUT			"300s"
2402 extern int var_qmqpd_timeout;
2403 
2404 #define VAR_QMTPD_ERR_SLEEP		"qmqpd_error_delay"
2405 #define DEF_QMTPD_ERR_SLEEP		"1s"
2406 extern int var_qmqpd_err_sleep;
2407 
2408  /*
2409   * VERP, more DJB intellectual cross-pollination. However, we prefer + as
2410   * the default recipient delimiter.
2411   */
2412 #define VAR_VERP_DELIMS			"default_verp_delimiters"
2413 #define DEF_VERP_DELIMS			"+="
2414 extern char *var_verp_delims;
2415 
2416 #define VAR_VERP_FILTER			"verp_delimiter_filter"
2417 #define DEF_VERP_FILTER			"-=+"
2418 extern char *var_verp_filter;
2419 
2420 #define VAR_VERP_BOUNCE_OFF		"disable_verp_bounces"
2421 #define DEF_VERP_BOUNCE_OFF		0
2422 extern bool var_verp_bounce_off;
2423 
2424 #define VAR_VERP_CLIENTS		"smtpd_authorized_verp_clients"
2425 #define DEF_VERP_CLIENTS		"$authorized_verp_clients"
2426 extern char *var_verp_clients;
2427 
2428  /*
2429   * XCLIENT, for rule testing and fetchmail like apps.
2430   */
2431 #define VAR_XCLIENT_HOSTS		"smtpd_authorized_xclient_hosts"
2432 #define DEF_XCLIENT_HOSTS		""
2433 extern char *var_xclient_hosts;
2434 
2435  /*
2436   * XFORWARD, for improved post-filter logging.
2437   */
2438 #define VAR_XFORWARD_HOSTS		"smtpd_authorized_xforward_hosts"
2439 #define DEF_XFORWARD_HOSTS		""
2440 extern char *var_xforward_hosts;
2441 
2442  /*
2443   * Inbound mail flow control. This allows for a stiffer coupling between
2444   * receiving mail and sending mail. A sending process produces one token for
2445   * each message that it takes from the incoming queue; a receiving process
2446   * consumes one token for each message that it adds to the incoming queue.
2447   * When no token is available (Postfix receives more mail than it is able to
2448   * deliver) a receiving process pauses for $in_flow_delay seconds so that
2449   * the sending processes get a chance to access the disk.
2450   */
2451 #define VAR_IN_FLOW_DELAY			"in_flow_delay"
2452 #ifdef PIPES_CANT_FIONREAD
2453 #define DEF_IN_FLOW_DELAY			"0s"
2454 #else
2455 #define DEF_IN_FLOW_DELAY			"1s"
2456 #endif
2457 extern int var_in_flow_delay;
2458 
2459  /*
2460   * Backwards compatibility: foo.com matches itself and names below foo.com.
2461   */
2462 #define VAR_PAR_DOM_MATCH		"parent_domain_matches_subdomains"
2463 #define DEF_PAR_DOM_MATCH		VAR_DEBUG_PEER_LIST "," \
2464 					VAR_FFLUSH_DOMAINS "," \
2465 					VAR_MYNETWORKS "," \
2466 					VAR_PERM_MX_NETWORKS "," \
2467 					VAR_QMQPD_CLIENTS "," \
2468 					VAR_RELAY_DOMAINS "," \
2469 					SMTPD_ACCESS_MAPS
2470 extern char *var_par_dom_match;
2471 
2472 #define SMTPD_ACCESS_MAPS		"smtpd_access_maps"
2473 
2474  /*
2475   * Run-time fault injection.
2476   */
2477 #define VAR_FAULT_INJ_CODE		"fault_injection_code"
2478 #define DEF_FAULT_INJ_CODE		0
2479 extern int var_fault_inj_code;
2480 
2481  /*
2482   * Install/upgrade information.
2483   */
2484 #define VAR_SENDMAIL_PATH		"sendmail_path"
2485 #ifndef DEF_SENDMAIL_PATH
2486 #define DEF_SENDMAIL_PATH		"/usr/sbin/sendmail"
2487 #endif
2488 
2489 #define VAR_MAILQ_PATH			"mailq_path"
2490 #ifndef DEF_MAILQ_PATH
2491 #define DEF_MAILQ_PATH			"/usr/bin/mailq"
2492 #endif
2493 
2494 #define VAR_NEWALIAS_PATH		"newaliases_path"
2495 #ifndef DEF_NEWALIAS_PATH
2496 #define DEF_NEWALIAS_PATH		"/usr/bin/newaliases"
2497 #endif
2498 
2499 #define VAR_MANPAGE_DIR			"manpage_directory"
2500 #ifndef DEF_MANPAGE_DIR
2501 #define DEF_MANPAGE_DIR			"/usr/local/man"
2502 #endif
2503 
2504 #define VAR_SAMPLE_DIR			"sample_directory"
2505 #ifndef DEF_SAMPLE_DIR
2506 #define DEF_SAMPLE_DIR			DEF_CONFIG_DIR
2507 #endif
2508 
2509 #define VAR_README_DIR			"readme_directory"
2510 #ifndef DEF_README_DIR
2511 #define DEF_README_DIR			"no"
2512 #endif
2513 
2514 #define VAR_HTML_DIR			"html_directory"
2515 #ifndef DEF_HTML_DIR
2516 #define DEF_HTML_DIR			"no"
2517 #endif
2518 
2519  /*
2520   * Safety: resolve the address with unquoted localpart (default, but
2521   * technically incorrect), instead of resolving the address with quoted
2522   * localpart (technically correct, but unsafe). The default prevents mail
2523   * relay loopholes with "user@domain"@domain when relaying mail to a
2524   * Sendmail system.
2525   */
2526 #define VAR_RESOLVE_DEQUOTED		"resolve_dequoted_address"
2527 #define DEF_RESOLVE_DEQUOTED		1
2528 extern bool var_resolve_dequoted;
2529 
2530 #define VAR_RESOLVE_NULLDOM		"resolve_null_domain"
2531 #define DEF_RESOLVE_NULLDOM		0
2532 extern bool var_resolve_nulldom;
2533 
2534 #define VAR_RESOLVE_NUM_DOM		"resolve_numeric_domain"
2535 #define DEF_RESOLVE_NUM_DOM		0
2536 extern bool var_resolve_num_dom;
2537 
2538  /*
2539   * Service names. The transport (TCP, FIFO or UNIX-domain) type is frozen
2540   * because you cannot simply mix them, and accessibility (private/public) is
2541   * frozen for security reasons. We list only the internal services, not the
2542   * externally visible SMTP server, or the delivery agents that can already
2543   * be chosen via transport mappings etc.
2544   */
2545 #define VAR_BOUNCE_SERVICE		"bounce_service_name"
2546 #define DEF_BOUNCE_SERVICE		MAIL_SERVICE_BOUNCE
2547 extern char *var_bounce_service;
2548 
2549 #define VAR_CLEANUP_SERVICE		"cleanup_service_name"
2550 #define DEF_CLEANUP_SERVICE		MAIL_SERVICE_CLEANUP
2551 extern char *var_cleanup_service;
2552 
2553 #define VAR_DEFER_SERVICE		"defer_service_name"
2554 #define DEF_DEFER_SERVICE		MAIL_SERVICE_DEFER
2555 extern char *var_defer_service;
2556 
2557 #define VAR_PICKUP_SERVICE		"pickup_service_name"
2558 #define DEF_PICKUP_SERVICE		MAIL_SERVICE_PICKUP
2559 extern char *var_pickup_service;
2560 
2561 #define VAR_QUEUE_SERVICE		"queue_service_name"
2562 #define DEF_QUEUE_SERVICE		MAIL_SERVICE_QUEUE
2563 extern char *var_queue_service;
2564 
2565  /* XXX resolve does not exist as a separate service */
2566 
2567 #define VAR_REWRITE_SERVICE		"rewrite_service_name"
2568 #define DEF_REWRITE_SERVICE		MAIL_SERVICE_REWRITE
2569 extern char *var_rewrite_service;
2570 
2571 #define VAR_SHOWQ_SERVICE		"showq_service_name"
2572 #define DEF_SHOWQ_SERVICE		MAIL_SERVICE_SHOWQ
2573 extern char *var_showq_service;
2574 
2575 #define VAR_ERROR_SERVICE		"error_service_name"
2576 #define DEF_ERROR_SERVICE		MAIL_SERVICE_ERROR
2577 extern char *var_error_service;
2578 
2579 #define VAR_FLUSH_SERVICE		"flush_service_name"
2580 #define DEF_FLUSH_SERVICE		MAIL_SERVICE_FLUSH
2581 extern char *var_flush_service;
2582 
2583  /*
2584   * Session cache service.
2585   */
2586 #define VAR_SCACHE_SERVICE		"connection_cache_service_name"
2587 #define DEF_SCACHE_SERVICE		"scache"
2588 extern char *var_scache_service;
2589 
2590 #define VAR_SCACHE_PROTO_TMOUT		"connection_cache_protocol_timeout"
2591 #define DEF_SCACHE_PROTO_TMOUT		"5s"
2592 extern int var_scache_proto_tmout;
2593 
2594 #define VAR_SCACHE_TTL_LIM		"connection_cache_ttl_limit"
2595 #define DEF_SCACHE_TTL_LIM		"2s"
2596 extern int var_scache_ttl_lim;
2597 
2598 #define VAR_SCACHE_STAT_TIME		"connection_cache_status_update_time"
2599 #define DEF_SCACHE_STAT_TIME		"600s"
2600 extern int var_scache_stat_time;
2601 
2602  /*
2603   * Address verification service.
2604   */
2605 #define VAR_VERIFY_SERVICE		"address_verify_service_name"
2606 #define DEF_VERIFY_SERVICE		MAIL_SERVICE_VERIFY
2607 extern char *var_verify_service;
2608 
2609 #define VAR_VERIFY_MAP			"address_verify_map"
2610 #define DEF_VERIFY_MAP			"btree:$data_directory/verify_cache"
2611 extern char *var_verify_map;
2612 
2613 #define VAR_VERIFY_POS_EXP		"address_verify_positive_expire_time"
2614 #define DEF_VERIFY_POS_EXP		"31d"
2615 extern int var_verify_pos_exp;
2616 
2617 #define VAR_VERIFY_POS_TRY		"address_verify_positive_refresh_time"
2618 #define DEF_VERIFY_POS_TRY		"7d"
2619 extern int var_verify_pos_try;
2620 
2621 #define VAR_VERIFY_NEG_EXP		"address_verify_negative_expire_time"
2622 #define DEF_VERIFY_NEG_EXP		"3d"
2623 extern int var_verify_neg_exp;
2624 
2625 #define VAR_VERIFY_NEG_TRY		"address_verify_negative_refresh_time"
2626 #define DEF_VERIFY_NEG_TRY		"3h"
2627 extern int var_verify_neg_try;
2628 
2629 #define VAR_VERIFY_NEG_CACHE		"address_verify_negative_cache"
2630 #define DEF_VERIFY_NEG_CACHE		1
2631 extern bool var_verify_neg_cache;
2632 
2633 #define VAR_VERIFY_SCAN_CACHE		"address_verify_cache_cleanup_interval"
2634 #define DEF_VERIFY_SCAN_CACHE		"12h"
2635 extern int var_verify_scan_cache;
2636 
2637 #define VAR_VERIFY_SENDER		"address_verify_sender"
2638 #define DEF_VERIFY_SENDER		"$" VAR_DOUBLE_BOUNCE
2639 extern char *var_verify_sender;
2640 
2641 #define VAR_VERIFY_SENDER_TTL		"address_verify_sender_ttl"
2642 #define DEF_VERIFY_SENDER_TTL		"0s"
2643 extern int var_verify_sender_ttl;
2644 
2645 #define VAR_VERIFY_POLL_COUNT		"address_verify_poll_count"
2646 #define DEF_VERIFY_POLL_COUNT		"${stress?1}${stress:3}"
2647 extern int var_verify_poll_count;
2648 
2649 #define VAR_VERIFY_POLL_DELAY		"address_verify_poll_delay"
2650 #define DEF_VERIFY_POLL_DELAY		"3s"
2651 extern int var_verify_poll_delay;
2652 
2653 #define VAR_VRFY_LOCAL_XPORT		"address_verify_local_transport"
2654 #define DEF_VRFY_LOCAL_XPORT		"$" VAR_LOCAL_TRANSPORT
2655 extern char *var_vrfy_local_xport;
2656 
2657 #define VAR_VRFY_VIRT_XPORT		"address_verify_virtual_transport"
2658 #define DEF_VRFY_VIRT_XPORT		"$" VAR_VIRT_TRANSPORT
2659 extern char *var_vrfy_virt_xport;
2660 
2661 #define VAR_VRFY_RELAY_XPORT		"address_verify_relay_transport"
2662 #define DEF_VRFY_RELAY_XPORT		"$" VAR_RELAY_TRANSPORT
2663 extern char *var_vrfy_relay_xport;
2664 
2665 #define VAR_VRFY_DEF_XPORT		"address_verify_default_transport"
2666 #define DEF_VRFY_DEF_XPORT		"$" VAR_DEF_TRANSPORT
2667 extern char *var_vrfy_def_xport;
2668 
2669 #define VAR_VRFY_SND_DEF_XPORT_MAPS	"address_verify_" VAR_SND_DEF_XPORT_MAPS
2670 #define DEF_VRFY_SND_DEF_XPORT_MAPS	"$" VAR_SND_DEF_XPORT_MAPS
2671 extern char *var_snd_def_xport_maps;
2672 
2673 #define VAR_VRFY_RELAYHOST		"address_verify_relayhost"
2674 #define DEF_VRFY_RELAYHOST		"$" VAR_RELAYHOST
2675 extern char *var_vrfy_relayhost;
2676 
2677 #define VAR_VRFY_RELAY_MAPS		"address_verify_sender_dependent_relayhost_maps"
2678 #define DEF_VRFY_RELAY_MAPS		"$" VAR_SND_RELAY_MAPS
2679 extern char *var_vrfy_relay_maps;
2680 
2681 #define VAR_VRFY_XPORT_MAPS		"address_verify_transport_maps"
2682 #define DEF_VRFY_XPORT_MAPS		"$" VAR_TRANSPORT_MAPS
2683 extern char *var_vrfy_xport_maps;
2684 
2685  /*
2686   * Message delivery trace service.
2687   */
2688 #define VAR_TRACE_SERVICE		"trace_service_name"
2689 #define DEF_TRACE_SERVICE		MAIL_SERVICE_TRACE
2690 extern char *var_trace_service;
2691 
2692  /*
2693   * Proxymappers.
2694   */
2695 #define VAR_PROXYMAP_SERVICE		"proxymap_service_name"
2696 #define DEF_PROXYMAP_SERVICE		MAIL_SERVICE_PROXYMAP
2697 extern char *var_proxymap_service;
2698 
2699 #define VAR_PROXYWRITE_SERVICE		"proxywrite_service_name"
2700 #define DEF_PROXYWRITE_SERVICE		MAIL_SERVICE_PROXYWRITE
2701 extern char *var_proxywrite_service;
2702 
2703  /*
2704   * Mailbox/maildir delivery errors that cause delivery to be tried again.
2705   */
2706 #define VAR_MBX_DEFER_ERRS		"mailbox_defer_errors"
2707 #define DEF_MBX_DEFER_ERRS		"eagain, enospc, estale"
2708 extern char *var_mbx_defer_errs;
2709 
2710 #define VAR_MDR_DEFER_ERRS		"maildir_defer_errors"
2711 #define DEF_MDR_DEFER_ERRS		"enospc, estale"
2712 extern char *var_mdr_defer_errs;
2713 
2714  /*
2715   * Berkeley DB memory pool sizes.
2716   */
2717 #define	VAR_DB_CREATE_BUF		"berkeley_db_create_buffer_size"
2718 #define DEF_DB_CREATE_BUF		(16 * 1024 *1024)
2719 extern int var_db_create_buf;
2720 
2721 #define	VAR_DB_READ_BUF			"berkeley_db_read_buffer_size"
2722 #define DEF_DB_READ_BUF			(128 *1024)
2723 extern int var_db_read_buf;
2724 
2725  /*
2726   * Named queue file attributes.
2727   */
2728 #define VAR_QATTR_COUNT_LIMIT		"queue_file_attribute_count_limit"
2729 #define DEF_QATTR_COUNT_LIMIT		100
2730 extern int var_qattr_count_limit;
2731 
2732  /*
2733   * MIME support.
2734   */
2735 #define VAR_MIME_MAXDEPTH		"mime_nesting_limit"
2736 #define DEF_MIME_MAXDEPTH		100
2737 extern int var_mime_maxdepth;
2738 
2739 #define VAR_MIME_BOUND_LEN		"mime_boundary_length_limit"
2740 #define DEF_MIME_BOUND_LEN		2048
2741 extern int var_mime_bound_len;
2742 
2743 #define VAR_DISABLE_MIME_INPUT		"disable_mime_input_processing"
2744 #define DEF_DISABLE_MIME_INPUT		0
2745 extern bool var_disable_mime_input;
2746 
2747 #define VAR_DISABLE_MIME_OCONV		"disable_mime_output_conversion"
2748 #define DEF_DISABLE_MIME_OCONV		0
2749 extern bool var_disable_mime_oconv;
2750 
2751 #define VAR_STRICT_8BITMIME		"strict_8bitmime"
2752 #define DEF_STRICT_8BITMIME		0
2753 extern bool var_strict_8bitmime;
2754 
2755 #define VAR_STRICT_7BIT_HDRS		"strict_7bit_headers"
2756 #define DEF_STRICT_7BIT_HDRS		0
2757 extern bool var_strict_7bit_hdrs;
2758 
2759 #define VAR_STRICT_8BIT_BODY		"strict_8bitmime_body"
2760 #define DEF_STRICT_8BIT_BODY		0
2761 extern bool var_strict_8bit_body;
2762 
2763 #define VAR_STRICT_ENCODING		"strict_mime_encoding_domain"
2764 #define DEF_STRICT_ENCODING		0
2765 extern bool var_strict_encoding;
2766 
2767 #define VAR_AUTO_8BIT_ENC_HDR		"detect_8bit_encoding_header"
2768 #define DEF_AUTO_8BIT_ENC_HDR		1
2769 extern int var_auto_8bit_enc_hdr;
2770 
2771  /*
2772   * Bizarre.
2773   */
2774 #define VAR_SENDER_ROUTING		"sender_based_routing"
2775 #define DEF_SENDER_ROUTING		0
2776 extern bool var_sender_routing;
2777 
2778 #define VAR_XPORT_NULL_KEY	"transport_null_address_lookup_key"
2779 #define DEF_XPORT_NULL_KEY	"<>"
2780 extern char *var_xport_null_key;
2781 
2782  /*
2783   * Bounce service controls.
2784   */
2785 #define VAR_OLDLOG_COMPAT		"backwards_bounce_logfile_compatibility"
2786 #define DEF_OLDLOG_COMPAT		1
2787 extern bool var_oldlog_compat;
2788 
2789  /*
2790   * SMTPD content proxy.
2791   */
2792 #define VAR_SMTPD_PROXY_FILT		"smtpd_proxy_filter"
2793 #define DEF_SMTPD_PROXY_FILT		""
2794 extern char *var_smtpd_proxy_filt;
2795 
2796 #define VAR_SMTPD_PROXY_EHLO		"smtpd_proxy_ehlo"
2797 #define DEF_SMTPD_PROXY_EHLO		"$" VAR_MYHOSTNAME
2798 extern char *var_smtpd_proxy_ehlo;
2799 
2800 #define VAR_SMTPD_PROXY_TMOUT		"smtpd_proxy_timeout"
2801 #define DEF_SMTPD_PROXY_TMOUT		"100s"
2802 extern int var_smtpd_proxy_tmout;
2803 
2804 #define VAR_SMTPD_PROXY_OPTS		"smtpd_proxy_options"
2805 #define DEF_SMTPD_PROXY_OPTS		""
2806 extern char *var_smtpd_proxy_opts;
2807 
2808  /*
2809   * Transparency options for mail input interfaces and for the cleanup server
2810   * behind them. These should turn off stuff we don't want to happen, because
2811   * the default is to do a lot of things.
2812   */
2813 #define VAR_INPUT_TRANSP		"receive_override_options"
2814 #define DEF_INPUT_TRANSP		""
2815 extern char *var_smtpd_input_transp;
2816 
2817  /*
2818   * SMTP server policy delegation.
2819   */
2820 #define VAR_SMTPD_POLICY_TMOUT		"smtpd_policy_service_timeout"
2821 #define DEF_SMTPD_POLICY_TMOUT		"100s"
2822 extern int var_smtpd_policy_tmout;
2823 
2824 #define VAR_SMTPD_POLICY_IDLE		"smtpd_policy_service_max_idle"
2825 #define DEF_SMTPD_POLICY_IDLE		"300s"
2826 extern int var_smtpd_policy_idle;
2827 
2828 #define VAR_SMTPD_POLICY_TTL		"smtpd_policy_service_max_ttl"
2829 #define DEF_SMTPD_POLICY_TTL		"1000s"
2830 extern int var_smtpd_policy_ttl;
2831 
2832 #define CHECK_POLICY_SERVICE		"check_policy_service"
2833 
2834  /*
2835   * Client rate control.
2836   */
2837 #define VAR_SMTPD_CRATE_LIMIT		"smtpd_client_connection_rate_limit"
2838 #define DEF_SMTPD_CRATE_LIMIT		0
2839 extern int var_smtpd_crate_limit;
2840 
2841 #define VAR_SMTPD_CCONN_LIMIT		"smtpd_client_connection_count_limit"
2842 #define DEF_SMTPD_CCONN_LIMIT		((DEF_PROC_LIMIT + 1) / 2)
2843 extern int var_smtpd_cconn_limit;
2844 
2845 #define VAR_SMTPD_CMAIL_LIMIT		"smtpd_client_message_rate_limit"
2846 #define DEF_SMTPD_CMAIL_LIMIT		0
2847 extern int var_smtpd_cmail_limit;
2848 
2849 #define VAR_SMTPD_CRCPT_LIMIT		"smtpd_client_recipient_rate_limit"
2850 #define DEF_SMTPD_CRCPT_LIMIT		0
2851 extern int var_smtpd_crcpt_limit;
2852 
2853 #define VAR_SMTPD_CNTLS_LIMIT		"smtpd_client_new_tls_session_rate_limit"
2854 #define DEF_SMTPD_CNTLS_LIMIT		0
2855 extern int var_smtpd_cntls_limit;
2856 
2857 #define VAR_SMTPD_HOGGERS		"smtpd_client_event_limit_exceptions"
2858 #define DEF_SMTPD_HOGGERS		"${smtpd_client_connection_limit_exceptions:$" VAR_MYNETWORKS "}"
2859 extern char *var_smtpd_hoggers;
2860 
2861 #define VAR_ANVIL_TIME_UNIT		"anvil_rate_time_unit"
2862 #define DEF_ANVIL_TIME_UNIT		"60s"
2863 extern int var_anvil_time_unit;
2864 
2865 #define VAR_ANVIL_STAT_TIME		"anvil_status_update_time"
2866 #define DEF_ANVIL_STAT_TIME		"600s"
2867 extern int var_anvil_stat_time;
2868 
2869  /*
2870   * Temporary stop gap.
2871   */
2872 #if 0
2873 #include <anvil_clnt.h>
2874 
2875 #define VAR_ANVIL_SERVICE		"client_connection_rate_service_name"
2876 #define DEF_ANVIL_SERVICE		"local:" ANVIL_CLASS "/" ANVIL_SERVICE
2877 extern char *var_anvil_service;
2878 
2879 #endif
2880 
2881  /*
2882   * What domain names to assume when no valid domain context exists.
2883   */
2884 #define VAR_REM_RWR_DOMAIN		"remote_header_rewrite_domain"
2885 #define DEF_REM_RWR_DOMAIN		""
2886 extern char *var_remote_rwr_domain;
2887 
2888 #define CHECK_ADDR_MAP			"check_address_map"
2889 
2890 #define VAR_LOC_RWR_CLIENTS		"local_header_rewrite_clients"
2891 #define DEF_LOC_RWR_CLIENTS		PERMIT_INET_INTERFACES
2892 extern char *var_local_rwr_clients;
2893 
2894  /*
2895   * EHLO keyword filter.
2896   */
2897 #define VAR_SMTPD_EHLO_DIS_WORDS	"smtpd_discard_ehlo_keywords"
2898 #define DEF_SMTPD_EHLO_DIS_WORDS	""
2899 extern char *var_smtpd_ehlo_dis_words;
2900 
2901 #define VAR_SMTPD_EHLO_DIS_MAPS		"smtpd_discard_ehlo_keyword_address_maps"
2902 #define DEF_SMTPD_EHLO_DIS_MAPS		""
2903 extern char *var_smtpd_ehlo_dis_maps;
2904 
2905 #define VAR_SMTP_EHLO_DIS_WORDS		"smtp_discard_ehlo_keywords"
2906 #define DEF_SMTP_EHLO_DIS_WORDS		""
2907 #define VAR_LMTP_EHLO_DIS_WORDS		"lmtp_discard_lhlo_keywords"
2908 #define DEF_LMTP_EHLO_DIS_WORDS		""
2909 extern char *var_smtp_ehlo_dis_words;
2910 
2911 #define VAR_SMTP_EHLO_DIS_MAPS		"smtp_discard_ehlo_keyword_address_maps"
2912 #define DEF_SMTP_EHLO_DIS_MAPS		""
2913 #define VAR_LMTP_EHLO_DIS_MAPS		"lmtp_discard_lhlo_keyword_address_maps"
2914 #define DEF_LMTP_EHLO_DIS_MAPS		""
2915 extern char *var_smtp_ehlo_dis_maps;
2916 
2917  /*
2918   * gcc workaround for warnings about empty or null format strings.
2919   */
2920 extern const char null_format_string[1];
2921 
2922  /*
2923   * Characters to reject or strip.
2924   */
2925 #define VAR_MSG_REJECT_CHARS		"message_reject_characters"
2926 #define DEF_MSG_REJECT_CHARS		""
2927 extern char *var_msg_reject_chars;
2928 
2929 #define VAR_MSG_STRIP_CHARS		"message_strip_characters"
2930 #define DEF_MSG_STRIP_CHARS		""
2931 extern char *var_msg_strip_chars;
2932 
2933  /*
2934   * Local forwarding complexity controls.
2935   */
2936 #define VAR_FROZEN_DELIVERED		"frozen_delivered_to"
2937 #define DEF_FROZEN_DELIVERED		1
2938 extern bool var_frozen_delivered;
2939 
2940 #define VAR_RESET_OWNER_ATTR		"reset_owner_alias"
2941 #define DEF_RESET_OWNER_ATTR		0
2942 extern bool var_reset_owner_attr;
2943 
2944  /*
2945   * Delay logging time roundup.
2946   */
2947 #define VAR_DELAY_MAX_RES		"delay_logging_resolution_limit"
2948 #define MAX_DELAY_MAX_RES		6
2949 #define DEF_DELAY_MAX_RES		2
2950 #define MIN_DELAY_MAX_RES		0
2951 extern int var_delay_max_res;
2952 
2953  /*
2954   * Bounce message templates.
2955   */
2956 #define VAR_BOUNCE_TMPL			"bounce_template_file"
2957 #define DEF_BOUNCE_TMPL			""
2958 extern char *var_bounce_tmpl;
2959 
2960  /*
2961   * Sender-dependent authentication.
2962   */
2963 #define VAR_SMTP_SENDER_AUTH	"smtp_sender_dependent_authentication"
2964 #define DEF_SMTP_SENDER_AUTH	0
2965 #define VAR_LMTP_SENDER_AUTH	"lmtp_sender_dependent_authentication"
2966 #define DEF_LMTP_SENDER_AUTH	0
2967 extern bool var_smtp_sender_auth;
2968 
2969  /*
2970   * Allow CNAME lookup result to override the server hostname.
2971   */
2972 #define VAR_SMTP_CNAME_OVERR		"smtp_cname_overrides_servername"
2973 #define DEF_SMTP_CNAME_OVERR		0
2974 #define VAR_LMTP_CNAME_OVERR		"lmtp_cname_overrides_servername"
2975 #define DEF_LMTP_CNAME_OVERR		0
2976 extern bool var_smtp_cname_overr;
2977 
2978  /*
2979   * TLS cipherlists
2980   */
2981 #ifdef USE_TLS
2982 #include <openssl/opensslv.h>
2983 #if OPENSSL_VERSION_NUMBER >= 0x1000000fL
2984 #define PREFER_aNULL "aNULL:-aNULL:"
2985 #else
2986 #define PREFER_aNULL ""
2987 #endif
2988 #else
2989 #define PREFER_aNULL ""
2990 #endif
2991 
2992 #define VAR_TLS_HIGH_CLIST	"tls_high_cipherlist"
2993 #define DEF_TLS_HIGH_CLIST	PREFER_aNULL "ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH"
2994 extern char *var_tls_high_clist;
2995 
2996 #define VAR_TLS_MEDIUM_CLIST	"tls_medium_cipherlist"
2997 #define DEF_TLS_MEDIUM_CLIST	PREFER_aNULL "ALL:!EXPORT:!LOW:+RC4:@STRENGTH"
2998 extern char *var_tls_medium_clist;
2999 
3000 #define VAR_TLS_LOW_CLIST	"tls_low_cipherlist"
3001 #define DEF_TLS_LOW_CLIST	PREFER_aNULL "ALL:!EXPORT:+RC4:@STRENGTH"
3002 extern char *var_tls_low_clist;
3003 
3004 #define VAR_TLS_EXPORT_CLIST	"tls_export_cipherlist"
3005 #define DEF_TLS_EXPORT_CLIST	PREFER_aNULL "ALL:+RC4:@STRENGTH"
3006 extern char *var_tls_export_clist;
3007 
3008 #define VAR_TLS_NULL_CLIST	"tls_null_cipherlist"
3009 #define DEF_TLS_NULL_CLIST	"eNULL:!aNULL"
3010 extern char *var_tls_null_clist;
3011 
3012 #define VAR_TLS_EECDH_STRONG	"tls_eecdh_strong_curve"
3013 #define DEF_TLS_EECDH_STRONG	"prime256v1"
3014 extern char *var_tls_eecdh_strong;
3015 
3016 #define VAR_TLS_EECDH_ULTRA	"tls_eecdh_ultra_curve"
3017 #define DEF_TLS_EECDH_ULTRA	"secp384r1"
3018 extern char *var_tls_eecdh_ultra;
3019 
3020 #define VAR_TLS_PREEMPT_CLIST	"tls_preempt_cipherlist"
3021 #define DEF_TLS_PREEMPT_CLIST	0
3022 extern bool var_tls_preempt_clist;
3023 
3024  /* The tweak for CVE-2010-4180 is needed in some versions prior to 1.0.1 */
3025  /* The tweak for CVE-2005-2969 is needed in some versions prior to 1.0.0 */
3026 #if defined(USE_TLS) && (OPENSSL_VERSION_NUMBER < 0x1000100fL)
3027 #if (OPENSSL_VERSION_NUMBER < 0x1000000fL)
3028 #define TLS_BUG_TWEAKS		"CVE-2005-2969 CVE-2010-4180"
3029 #else
3030 #define TLS_BUG_TWEAKS		"CVE-2010-4180"
3031 #endif
3032 #else
3033 #define TLS_BUG_TWEAKS		""
3034 #endif
3035 
3036 #define VAR_TLS_BUG_TWEAKS	"tls_disable_workarounds"
3037 #define DEF_TLS_BUG_TWEAKS	TLS_BUG_TWEAKS
3038 extern char *var_tls_bug_tweaks;
3039 
3040  /*
3041   * Sendmail-style mail filter support.
3042   */
3043 #define VAR_SMTPD_MILTERS		"smtpd_milters"
3044 #define DEF_SMTPD_MILTERS		""
3045 extern char *var_smtpd_milters;
3046 
3047 #define VAR_CLEANUP_MILTERS		"non_smtpd_milters"
3048 #define DEF_CLEANUP_MILTERS		""
3049 extern char *var_cleanup_milters;
3050 
3051 #define VAR_MILT_DEF_ACTION		"milter_default_action"
3052 #define DEF_MILT_DEF_ACTION		"tempfail"
3053 extern char *var_milt_def_action;
3054 
3055 #define VAR_MILT_CONN_MACROS		"milter_connect_macros"
3056 #define DEF_MILT_CONN_MACROS		"j {daemon_name} v"
3057 extern char *var_milt_conn_macros;
3058 
3059 #define VAR_MILT_HELO_MACROS		"milter_helo_macros"
3060 #define DEF_MILT_HELO_MACROS		"{tls_version} {cipher} {cipher_bits}" \
3061 					" {cert_subject} {cert_issuer}"
3062 extern char *var_milt_helo_macros;
3063 
3064 #define VAR_MILT_MAIL_MACROS		"milter_mail_macros"
3065 #define DEF_MILT_MAIL_MACROS		"i {auth_type} {auth_authen}" \
3066 					" {auth_author} {mail_addr}" \
3067 					" {mail_host} {mail_mailer}"
3068 extern char *var_milt_mail_macros;
3069 
3070 #define VAR_MILT_RCPT_MACROS		"milter_rcpt_macros"
3071 #define DEF_MILT_RCPT_MACROS		"i {rcpt_addr} {rcpt_host}" \
3072 					" {rcpt_mailer}"
3073 extern char *var_milt_rcpt_macros;
3074 
3075 #define VAR_MILT_DATA_MACROS		"milter_data_macros"
3076 #define DEF_MILT_DATA_MACROS		"i"
3077 extern char *var_milt_data_macros;
3078 
3079 #define VAR_MILT_UNK_MACROS		"milter_unknown_command_macros"
3080 #define DEF_MILT_UNK_MACROS		""
3081 extern char *var_milt_unk_macros;
3082 
3083 #define VAR_MILT_EOH_MACROS		"milter_end_of_header_macros"
3084 #define DEF_MILT_EOH_MACROS		"i"
3085 extern char *var_milt_eoh_macros;
3086 
3087 #define VAR_MILT_EOD_MACROS		"milter_end_of_data_macros"
3088 #define DEF_MILT_EOD_MACROS		"i"
3089 extern char *var_milt_eod_macros;
3090 
3091 #define VAR_MILT_CONN_TIME		"milter_connect_timeout"
3092 #define DEF_MILT_CONN_TIME		"30s"
3093 extern int var_milt_conn_time;
3094 
3095 #define VAR_MILT_CMD_TIME		"milter_command_timeout"
3096 #define DEF_MILT_CMD_TIME		"30s"
3097 extern int var_milt_cmd_time;
3098 
3099 #define VAR_MILT_MSG_TIME		"milter_content_timeout"
3100 #define DEF_MILT_MSG_TIME		"300s"
3101 extern int var_milt_msg_time;
3102 
3103 #define VAR_MILT_PROTOCOL		"milter_protocol"
3104 #define DEF_MILT_PROTOCOL		"6"
3105 extern char *var_milt_protocol;
3106 
3107 #define VAR_MILT_DEF_ACTION		"milter_default_action"
3108 #define DEF_MILT_DEF_ACTION		"tempfail"
3109 extern char *var_milt_def_action;
3110 
3111 #define VAR_MILT_DAEMON_NAME		"milter_macro_daemon_name"
3112 #define DEF_MILT_DAEMON_NAME		"$" VAR_MYHOSTNAME
3113 extern char *var_milt_daemon_name;
3114 
3115 #define VAR_MILT_V			"milter_macro_v"
3116 #define DEF_MILT_V			"$" VAR_MAIL_NAME " $" VAR_MAIL_VERSION
3117 extern char *var_milt_v;
3118 
3119 #define VAR_MILT_HEAD_CHECKS		"milter_header_checks"
3120 #define DEF_MILT_HEAD_CHECKS		""
3121 extern char *var_milt_head_checks;
3122 
3123  /*
3124   * What internal mail do we inspect/stamp/etc.? This is not yet safe enough
3125   * to enable world-wide.
3126   */
3127 #define INT_FILT_CLASS_NONE		""
3128 #define INT_FILT_CLASS_NOTIFY		"notify"
3129 #define INT_FILT_CLASS_BOUNCE		"bounce"
3130 
3131 #define VAR_INT_FILT_CLASSES		"internal_mail_filter_classes"
3132 #define DEF_INT_FILT_CLASSES		INT_FILT_CLASS_NONE
3133 extern char *var_int_filt_classes;
3134 
3135  /*
3136   * This could break logfile processors, so it's off by default.
3137   */
3138 #define VAR_SMTPD_CLIENT_PORT_LOG		"smtpd_client_port_logging"
3139 #define DEF_SMTPD_CLIENT_PORT_LOG		0
3140 extern bool var_smtpd_client_port_log;
3141 
3142 #define VAR_QMQPD_CLIENT_PORT_LOG		"qmqpd_client_port_logging"
3143 #define DEF_QMQPD_CLIENT_PORT_LOG		0
3144 extern bool var_qmqpd_client_port_log;
3145 
3146  /*
3147   * Header/body checks in delivery agents.
3148   */
3149 #define VAR_SMTP_HEAD_CHKS	"smtp_header_checks"
3150 #define DEF_SMTP_HEAD_CHKS	""
3151 extern char *var_smtp_head_chks;
3152 
3153 #define VAR_SMTP_MIME_CHKS	"smtp_mime_header_checks"
3154 #define DEF_SMTP_MIME_CHKS	""
3155 extern char *var_smtp_mime_chks;
3156 
3157 #define VAR_SMTP_NEST_CHKS	"smtp_nested_header_checks"
3158 #define DEF_SMTP_NEST_CHKS	""
3159 extern char *var_smtp_nest_chks;
3160 
3161 #define VAR_SMTP_BODY_CHKS	"smtp_body_checks"
3162 #define DEF_SMTP_BODY_CHKS	""
3163 extern char *var_smtp_body_chks;
3164 
3165 #define VAR_LMTP_HEAD_CHKS	"lmtp_header_checks"
3166 #define DEF_LMTP_HEAD_CHKS	""
3167 #define VAR_LMTP_MIME_CHKS	"lmtp_mime_header_checks"
3168 #define DEF_LMTP_MIME_CHKS	""
3169 #define VAR_LMTP_NEST_CHKS	"lmtp_nested_header_checks"
3170 #define DEF_LMTP_NEST_CHKS	""
3171 #define VAR_LMTP_BODY_CHKS	"lmtp_body_checks"
3172 #define DEF_LMTP_BODY_CHKS	""
3173 
3174 #define VAR_SMTP_ADDR_PREF	"smtp_address_preference"
3175 #ifdef HAS_IPV6
3176 #define DEF_SMTP_ADDR_PREF	INET_PROTO_NAME_ANY
3177 #else
3178 #define DEF_SMTP_ADDR_PREF	INET_PROTO_NAME_IPV4
3179 #endif
3180 extern char *var_smtp_addr_pref;
3181 
3182 #define VAR_LMTP_ADDR_PREF	"lmtp_address_preference"
3183 #define DEF_LMTP_ADDR_PREF	DEF_SMTP_ADDR_PREF
3184 
3185  /*
3186   * Scheduler concurrency feedback algorithms.
3187   */
3188 #define VAR_CONC_POS_FDBACK	"default_destination_concurrency_positive_feedback"
3189 #define _CONC_POS_FDBACK	"_destination_concurrency_positive_feedback"
3190 #define DEF_CONC_POS_FDBACK	"1"
3191 extern char *var_conc_pos_feedback;
3192 
3193 #define VAR_CONC_NEG_FDBACK	"default_destination_concurrency_negative_feedback"
3194 #define _CONC_NEG_FDBACK	"_destination_concurrency_negative_feedback"
3195 #define DEF_CONC_NEG_FDBACK	"1"
3196 extern char *var_conc_neg_feedback;
3197 
3198 #define CONC_FDBACK_NAME_WIN	"concurrency"
3199 #define CONC_FDBACK_NAME_SQRT_WIN "sqrt_concurrency"
3200 
3201 #define VAR_CONC_COHORT_LIM	"default_destination_concurrency_failed_cohort_limit"
3202 #define _CONC_COHORT_LIM	"_destination_concurrency_failed_cohort_limit"
3203 #define DEF_CONC_COHORT_LIM	1
3204 extern int var_conc_cohort_limit;
3205 
3206 #define VAR_CONC_FDBACK_DEBUG	"destination_concurrency_feedback_debug"
3207 #define DEF_CONC_FDBACK_DEBUG	0
3208 extern bool var_conc_feedback_debug;
3209 
3210 #define VAR_DEST_RATE_DELAY	"default_destination_rate_delay"
3211 #define _DEST_RATE_DELAY	"_destination_rate_delay"
3212 #define DEF_DEST_RATE_DELAY	"0s"
3213 extern int var_dest_rate_delay;
3214 
3215  /*
3216   * Stress handling.
3217   */
3218 #define VAR_STRESS		"stress"
3219 #define DEF_STRESS		""
3220 extern char *var_stress;
3221 
3222  /*
3223   * Mailbox ownership.
3224   */
3225 #define VAR_STRICT_MBOX_OWNER	"strict_mailbox_ownership"
3226 #define DEF_STRICT_MBOX_OWNER	1
3227 extern bool var_strict_mbox_owner;
3228 
3229  /*
3230   * Window scaling workaround.
3231   */
3232 #define VAR_INET_WINDOW		"tcp_windowsize"
3233 #define DEF_INET_WINDOW		0
3234 extern int var_inet_windowsize;
3235 
3236  /*
3237   * Plug-in multi-instance support. Only the first two paramaters are used by
3238   * Postfix itself; the other ones are reserved for the instance manager.
3239   */
3240 #define VAR_MULTI_CONF_DIRS	"multi_instance_directories"
3241 #define DEF_MULTI_CONF_DIRS	""
3242 extern char *var_multi_conf_dirs;
3243 
3244 #define VAR_MULTI_WRAPPER	"multi_instance_wrapper"
3245 #define DEF_MULTI_WRAPPER	""
3246 extern char *var_multi_wrapper;
3247 
3248 #define VAR_MULTI_NAME		"multi_instance_name"
3249 #define DEF_MULTI_NAME		""
3250 extern char *var_multi_name;
3251 
3252 #define VAR_MULTI_GROUP		"multi_instance_group"
3253 #define DEF_MULTI_GROUP		""
3254 extern char *var_multi_group;
3255 
3256 #define VAR_MULTI_ENABLE	"multi_instance_enable"
3257 #define DEF_MULTI_ENABLE	0
3258 extern bool var_multi_enable;
3259 
3260  /*
3261   * postmulti(1) instance manager
3262   */
3263 #define VAR_MULTI_START_CMDS	"postmulti_start_commands"
3264 #define DEF_MULTI_START_CMDS	"start"
3265 extern char *var_multi_start_cmds;
3266 
3267 #define VAR_MULTI_STOP_CMDS	"postmulti_stop_commands"
3268 #define DEF_MULTI_STOP_CMDS	"stop abort drain quick-stop"
3269 extern char *var_multi_stop_cmds;
3270 
3271 #define VAR_MULTI_CNTRL_CMDS	"postmulti_control_commands"
3272 #define DEF_MULTI_CNTRL_CMDS	"reload flush"
3273 extern char *var_multi_cntrl_cmds;
3274 
3275  /*
3276   * postscreen(8)
3277   */
3278 #define VAR_PSC_CACHE_MAP	"postscreen_cache_map"
3279 #define DEF_PSC_CACHE_MAP	"btree:$data_directory/postscreen_cache"
3280 extern char *var_psc_cache_map;
3281 
3282 #define VAR_SMTPD_SERVICE	"smtpd_service_name"
3283 #define DEF_SMTPD_SERVICE	"smtpd"
3284 extern char *var_smtpd_service;
3285 
3286 #define VAR_PSC_POST_QLIMIT	"postscreen_post_queue_limit"
3287 #define DEF_PSC_POST_QLIMIT	"$" VAR_PROC_LIMIT
3288 extern int var_psc_post_queue_limit;
3289 
3290 #define VAR_PSC_PRE_QLIMIT	"postscreen_pre_queue_limit"
3291 #define DEF_PSC_PRE_QLIMIT	"$" VAR_PROC_LIMIT
3292 extern int var_psc_pre_queue_limit;
3293 
3294 #define VAR_PSC_CACHE_RET	"postscreen_cache_retention_time"
3295 #define DEF_PSC_CACHE_RET	"7d"
3296 extern int var_psc_cache_ret;
3297 
3298 #define VAR_PSC_CACHE_SCAN	"postscreen_cache_cleanup_interval"
3299 #define DEF_PSC_CACHE_SCAN	"12h"
3300 extern int var_psc_cache_scan;
3301 
3302 #define VAR_PSC_GREET_WAIT	"postscreen_greet_wait"
3303 #define DEF_PSC_GREET_WAIT	"${stress?2}${stress:6}s"
3304 extern int var_psc_greet_wait;
3305 
3306 #define VAR_PSC_PREGR_BANNER	"postscreen_greet_banner"
3307 #define DEF_PSC_PREGR_BANNER	"$" VAR_SMTPD_BANNER
3308 extern char *var_psc_pregr_banner;
3309 
3310 #define VAR_PSC_PREGR_ENABLE	"postscreen_greet_enable"
3311 #define DEF_PSC_PREGR_ENABLE	no
3312 extern char *var_psc_pregr_enable;
3313 
3314 #define VAR_PSC_PREGR_ACTION	"postscreen_greet_action"
3315 #define DEF_PSC_PREGR_ACTION	"ignore"
3316 extern char *var_psc_pregr_action;
3317 
3318 #define VAR_PSC_PREGR_TTL	"postscreen_greet_ttl"
3319 #define DEF_PSC_PREGR_TTL	"1d"
3320 extern int var_psc_pregr_ttl;
3321 
3322 #define VAR_PSC_DNSBL_SITES	"postscreen_dnsbl_sites"
3323 #define DEF_PSC_DNSBL_SITES	""
3324 extern char *var_psc_dnsbl_sites;
3325 
3326 #define VAR_PSC_DNSBL_THRESH	"postscreen_dnsbl_threshold"
3327 #define DEF_PSC_DNSBL_THRESH	1
3328 extern int var_psc_dnsbl_thresh;
3329 
3330 #define VAR_PSC_DNSBL_ENABLE	"postscreen_dnsbl_enable"
3331 #define DEF_PSC_DNSBL_ENABLE	0
3332 extern char *var_psc_dnsbl_enable;
3333 
3334 #define VAR_PSC_DNSBL_ACTION	"postscreen_dnsbl_action"
3335 #define DEF_PSC_DNSBL_ACTION	"ignore"
3336 extern char *var_psc_dnsbl_action;
3337 
3338 #define VAR_PSC_DNSBL_TTL	"postscreen_dnsbl_ttl"
3339 #define DEF_PSC_DNSBL_TTL	"1h"
3340 extern int var_psc_dnsbl_ttl;
3341 
3342 #define	VAR_PSC_DNSBL_REPLY	"postscreen_dnsbl_reply_map"
3343 #define	DEF_PSC_DNSBL_REPLY	""
3344 extern char *var_psc_dnsbl_reply;
3345 
3346 #define VAR_PSC_PIPEL_ENABLE	"postscreen_pipelining_enable"
3347 #define DEF_PSC_PIPEL_ENABLE	0
3348 extern bool var_psc_pipel_enable;
3349 
3350 #define VAR_PSC_PIPEL_ACTION	"postscreen_pipelining_action"
3351 #define DEF_PSC_PIPEL_ACTION	"enforce"
3352 extern char *var_psc_pipel_action;
3353 
3354 #define VAR_PSC_PIPEL_TTL	"postscreen_pipelining_ttl"
3355 #define DEF_PSC_PIPEL_TTL	"30d"
3356 extern int var_psc_pipel_ttl;
3357 
3358 #define VAR_PSC_NSMTP_ENABLE	"postscreen_non_smtp_command_enable"
3359 #define DEF_PSC_NSMTP_ENABLE	0
3360 extern bool var_psc_nsmtp_enable;
3361 
3362 #define VAR_PSC_NSMTP_ACTION	"postscreen_non_smtp_command_action"
3363 #define DEF_PSC_NSMTP_ACTION	"drop"
3364 extern char *var_psc_nsmtp_action;
3365 
3366 #define VAR_PSC_NSMTP_TTL	"postscreen_non_smtp_command_ttl"
3367 #define DEF_PSC_NSMTP_TTL	"30d"
3368 extern int var_psc_nsmtp_ttl;
3369 
3370 #define VAR_PSC_BARLF_ENABLE	"postscreen_bare_newline_enable"
3371 #define DEF_PSC_BARLF_ENABLE	0
3372 extern bool var_psc_barlf_enable;
3373 
3374 #define VAR_PSC_BARLF_ACTION	"postscreen_bare_newline_action"
3375 #define DEF_PSC_BARLF_ACTION	"ignore"
3376 extern char *var_psc_barlf_action;
3377 
3378 #define VAR_PSC_BARLF_TTL	"postscreen_bare_newline_ttl"
3379 #define DEF_PSC_BARLF_TTL	"30d"
3380 extern int var_psc_barlf_ttl;
3381 
3382 #define VAR_PSC_WLIST_NETS	"postscreen_whitelist_networks"
3383 #define DEF_PSC_WLIST_NETS	"$" VAR_MYNETWORKS
3384 extern char *var_psc_wlist_nets;
3385 
3386 #define VAR_PSC_BLIST_NETS	"postscreen_blacklist_networks"
3387 #define DEF_PSC_BLIST_NETS	""
3388 extern char *var_psc_blist_nets;
3389 
3390 #define VAR_PSC_BLIST_ACTION	"postscreen_blacklist_action"
3391 #define DEF_PSC_BLIST_ACTION	"ignore"
3392 extern char *var_psc_blist_nets;
3393 
3394 #define VAR_PSC_CMD_COUNT	"postscreen_command_count_limit"
3395 #define DEF_PSC_CMD_COUNT	20
3396 extern int var_psc_cmd_count;
3397 
3398 #define VAR_PSC_CMD_TIME		"postscreen_command_time_limit"
3399 #define DEF_PSC_CMD_TIME		DEF_SMTPD_TMOUT
3400 extern char *var_psc_cmd_time;
3401 
3402 #define VAR_PSC_WATCHDOG		"postscreen_watchdog_timeout"
3403 #define DEF_PSC_WATCHDOG		"10s"
3404 extern int var_psc_watchdog;
3405 
3406 #define VAR_PSC_EHLO_DIS_WORDS	"postscreen_discard_ehlo_keywords"
3407 #define DEF_PSC_EHLO_DIS_WORDS	"$" VAR_SMTPD_EHLO_DIS_WORDS
3408 extern char *var_psc_ehlo_dis_words;
3409 
3410 #define VAR_PSC_EHLO_DIS_MAPS	"postscreen_discard_ehlo_keyword_address_maps"
3411 #define DEF_PSC_EHLO_DIS_MAPS	"$" VAR_SMTPD_EHLO_DIS_MAPS
3412 extern char *var_psc_ehlo_dis_maps;
3413 
3414 #define VAR_PSC_TLS_LEVEL	"postscreen_tls_security_level"
3415 #define DEF_PSC_TLS_LEVEL	"$" VAR_SMTPD_TLS_LEVEL
3416 extern char *var_psc_tls_level;
3417 
3418 #define VAR_PSC_USE_TLS		"postscreen_use_tls"
3419 #define DEF_PSC_USE_TLS		"$" VAR_SMTPD_USE_TLS
3420 extern bool var_psc_use_tls;
3421 
3422 #define VAR_PSC_ENFORCE_TLS	"postscreen_enforce_tls"
3423 #define DEF_PSC_ENFORCE_TLS	"$" VAR_SMTPD_ENFORCE_TLS
3424 extern bool var_psc_enforce_tls;
3425 
3426 #define VAR_PSC_FORBID_CMDS	"postscreen_forbidden_commands"
3427 #define DEF_PSC_FORBID_CMDS	"$" VAR_SMTPD_FORBID_CMDS
3428 extern char *var_psc_forbid_cmds;
3429 
3430 #define VAR_PSC_HELO_REQUIRED	"postscreen_helo_required"
3431 #define DEF_PSC_HELO_REQUIRED	"$" VAR_HELO_REQUIRED
3432 extern bool var_psc_helo_required;
3433 
3434 #define VAR_PSC_DISABLE_VRFY	"postscreen_disable_vrfy_command"
3435 #define DEF_PSC_DISABLE_VRFY	"$" VAR_DISABLE_VRFY_CMD
3436 extern bool var_psc_disable_vrfy;
3437 
3438 #define VAR_PSC_CCONN_LIMIT	"postscreen_client_connection_count_limit"
3439 #define DEF_PSC_CCONN_LIMIT	"$" VAR_SMTPD_CCONN_LIMIT
3440 extern int var_psc_cconn_limit;
3441 
3442 #define VAR_PSC_REJ_FOOTER	"postscreen_reject_footer"
3443 #define DEF_PSC_REJ_FOOTER	"$" VAR_SMTPD_REJ_FOOTER
3444 extern char *var_psc_rej_footer;
3445 
3446 #define VAR_PSC_EXP_FILTER	"postscreen_expansion_filter"
3447 #define DEF_PSC_EXP_FILTER	"$" VAR_SMTPD_EXP_FILTER
3448 extern char *var_psc_exp_filter;
3449 
3450 #define VAR_PSC_CMD_FILTER	"postscreen_command_filter"
3451 #define DEF_PSC_CMD_FILTER	""
3452 extern char *var_psc_cmd_filter;
3453 
3454 #define VAR_PSC_ACL		"postscreen_access_list"
3455 #define DEF_PSC_ACL		SERVER_ACL_NAME_WL_MYNETWORKS
3456 extern char *var_psc_acl;
3457 
3458 #define VAR_PSC_WLIST_IF	"postscreen_whitelist_interfaces"
3459 #define DEF_PSC_WLIST_IF	"static:all"
3460 extern char *var_psc_wlist_if;
3461 
3462 #define VAR_DNSBLOG_SERVICE	"dnsblog_service_name"
3463 #define DEF_DNSBLOG_SERVICE	MAIL_SERVICE_DNSBLOG
3464 extern char *var_dnsblog_service;
3465 
3466 #define VAR_DNSBLOG_DELAY	"dnsblog_reply_delay"
3467 #define DEF_DNSBLOG_DELAY	"0s"
3468 extern int var_dnsblog_delay;
3469 
3470 #define VAR_TLSPROXY_SERVICE	"tlsproxy_service_name"
3471 #define DEF_TLSPROXY_SERVICE	MAIL_SERVICE_TLSPROXY
3472 extern char *var_tlsproxy_service;
3473 
3474 #define VAR_TLSP_WATCHDOG	"tlsproxy_watchdog_timeout"
3475 #define DEF_TLSP_WATCHDOG	"10s"
3476 extern int var_tlsp_watchdog;
3477 
3478 #define VAR_TLSP_TLS_LEVEL	"tlsproxy_tls_security_level"
3479 #define DEF_TLSP_TLS_LEVEL	"$" VAR_SMTPD_TLS_LEVEL
3480 extern char *var_tlsp_tls_level;
3481 
3482 #define VAR_TLSP_USE_TLS	"tlsproxy_use_tls"
3483 #define DEF_TLSP_USE_TLS	"$" VAR_SMTPD_USE_TLS
3484 extern bool var_tlsp_use_tls;
3485 
3486 #define VAR_TLSP_ENFORCE_TLS	"tlsproxy_enforce_tls"
3487 #define DEF_TLSP_ENFORCE_TLS	"$" VAR_SMTPD_ENFORCE_TLS
3488 extern bool var_tlsp_enforce_tls;
3489 
3490 #define VAR_TLSP_TLS_ACERT	"tlsproxy_tls_ask_ccert"
3491 #define DEF_TLSP_TLS_ACERT	"$" VAR_SMTPD_TLS_ACERT
3492 extern bool var_tlsp_tls_ask_ccert;
3493 
3494 #define VAR_TLSP_TLS_RCERT	"tlsproxy_tls_req_ccert"
3495 #define DEF_TLSP_TLS_RCERT	"$" VAR_SMTPD_TLS_RCERT
3496 extern bool var_tlsp_tls_req_ccert;
3497 
3498 #define VAR_TLSP_TLS_CCERT_VD	"tlsproxy_tls_ccert_verifydepth"
3499 #define DEF_TLSP_TLS_CCERT_VD	"$" VAR_SMTPD_TLS_CCERT_VD
3500 extern int var_tlsp_tls_ccert_vd;
3501 
3502 #define VAR_TLSP_TLS_CERT_FILE	"tlsproxy_tls_cert_file"
3503 #define DEF_TLSP_TLS_CERT_FILE	"$" VAR_SMTPD_TLS_CERT_FILE
3504 extern char *var_tlsp_tls_cert_file;
3505 
3506 #define VAR_TLSP_TLS_KEY_FILE	"tlsproxy_tls_key_file"
3507 #define DEF_TLSP_TLS_KEY_FILE	"$" VAR_SMTPD_TLS_KEY_FILE
3508 extern char *var_tlsp_tls_key_file;
3509 
3510 #define VAR_TLSP_TLS_DCERT_FILE "tlsproxy_tls_dcert_file"
3511 #define DEF_TLSP_TLS_DCERT_FILE	"$" VAR_SMTPD_TLS_DCERT_FILE
3512 extern char *var_tlsp_tls_dcert_file;
3513 
3514 #define VAR_TLSP_TLS_DKEY_FILE	"tlsproxy_tls_dkey_file"
3515 #define DEF_TLSP_TLS_DKEY_FILE	"$" VAR_SMTPD_TLS_DKEY_FILE
3516 extern char *var_tlsp_tls_dkey_file;
3517 
3518 #define VAR_TLSP_TLS_ECCERT_FILE "tlsproxy_tls_eccert_file"
3519 #define DEF_TLSP_TLS_ECCERT_FILE	"$" VAR_SMTPD_TLS_ECCERT_FILE
3520 extern char *var_tlsp_tls_eccert_file;
3521 
3522 #define VAR_TLSP_TLS_ECKEY_FILE	"tlsproxy_tls_eckey_file"
3523 #define DEF_TLSP_TLS_ECKEY_FILE	"$" VAR_SMTPD_TLS_ECKEY_FILE
3524 extern char *var_tlsp_tls_eckey_file;
3525 
3526 #define DEF_TLSP_TLS_ECKEY_FILE	"$" VAR_SMTPD_TLS_ECKEY_FILE
3527 extern char *var_tlsp_tls_eckey_file;
3528 
3529 #define VAR_TLSP_TLS_CA_FILE	"tlsproxy_tls_CAfile"
3530 #define DEF_TLSP_TLS_CA_FILE	"$" VAR_SMTPD_TLS_CA_FILE
3531 extern char *var_tlsp_tls_CAfile;
3532 
3533 #define VAR_TLSP_TLS_CA_PATH	"tlsproxy_tls_CApath"
3534 #define DEF_TLSP_TLS_CA_PATH	"$" VAR_SMTPD_TLS_CA_PATH
3535 extern char *var_tlsp_tls_CApath;
3536 
3537 #define VAR_TLSP_TLS_PROTO	"tlsproxy_tls_protocols"
3538 #define DEF_TLSP_TLS_PROTO	"$" VAR_SMTPD_TLS_PROTO
3539 extern char *var_tlsp_tls_proto;
3540 
3541 #define VAR_TLSP_TLS_MAND_PROTO	"tlsproxy_tls_mandatory_protocols"
3542 #define DEF_TLSP_TLS_MAND_PROTO	"$" VAR_SMTPD_TLS_MAND_PROTO
3543 extern char *var_tlsp_tls_mand_proto;
3544 
3545 #define VAR_TLSP_TLS_CIPH	"tlsproxy_tls_ciphers"
3546 #define DEF_TLSP_TLS_CIPH	"$" VAR_SMTPD_TLS_CIPH
3547 extern char *var_tlsp_tls_ciph;
3548 
3549 #define VAR_TLSP_TLS_MAND_CIPH	"tlsproxy_tls_mandatory_ciphers"
3550 #define DEF_TLSP_TLS_MAND_CIPH	"$" VAR_SMTPD_TLS_MAND_CIPH
3551 extern char *var_tlsp_tls_mand_ciph;
3552 
3553 #define VAR_TLSP_TLS_EXCL_CIPH  "tlsproxy_tls_exclude_ciphers"
3554 #define DEF_TLSP_TLS_EXCL_CIPH	"$" VAR_SMTPD_TLS_EXCL_CIPH
3555 extern char *var_tlsp_tls_excl_ciph;
3556 
3557 #define VAR_TLSP_TLS_MAND_EXCL  "tlsproxy_tls_mandatory_exclude_ciphers"
3558 #define DEF_TLSP_TLS_MAND_EXCL	"$" VAR_SMTPD_TLS_MAND_EXCL
3559 extern char *var_tlsp_tls_mand_excl;
3560 
3561 #define VAR_TLSP_TLS_FPT_DGST	"tlsproxy_tls_fingerprint_digest"
3562 #define DEF_TLSP_TLS_FPT_DGST	"$" VAR_SMTPD_TLS_FPT_DGST
3563 extern char *var_tlsp_tls_fpt_dgst;
3564 
3565 #define VAR_TLSP_TLS_512_FILE	"tlsproxy_tls_dh512_param_file"
3566 #define DEF_TLSP_TLS_512_FILE	"$" VAR_SMTPD_TLS_512_FILE
3567 extern char *var_tlsp_tls_dh512_param_file;
3568 
3569 #define VAR_TLSP_TLS_1024_FILE	"tlsproxy_tls_dh1024_param_file"
3570 #define DEF_TLSP_TLS_1024_FILE	"$" VAR_SMTPD_TLS_1024_FILE
3571 extern char *var_tlsp_tls_dh1024_param_file;
3572 
3573 #define VAR_TLSP_TLS_EECDH	"tlsproxy_tls_eecdh_grade"
3574 #define DEF_TLSP_TLS_EECDH	"$" VAR_SMTPD_TLS_EECDH
3575 extern char *var_tlsp_tls_eecdh;
3576 
3577 #define VAR_TLSP_TLS_LOGLEVEL	"tlsproxy_tls_loglevel"
3578 #define DEF_TLSP_TLS_LOGLEVEL	"$" VAR_SMTPD_TLS_LOGLEVEL
3579 extern char *var_tlsp_tls_loglevel;
3580 
3581 #define VAR_TLSP_TLS_RECHEAD	"tlsproxy_tls_received_header"
3582 #define DEF_TLSP_TLS_RECHEAD	"$" VAR_SMTPD_TLS_RECHEAD
3583 extern bool var_tlsp_tls_received_header;
3584 
3585 #define VAR_TLSP_TLS_SCACHE_DB	"tlsproxy_tls_session_cache_database"
3586 #define DEF_TLSP_TLS_SCACHE_DB	"$" VAR_SMTPD_TLS_SCACHE_DB
3587 extern char *var_tlsp_tls_scache_db;
3588 
3589 #define VAR_TLSP_TLS_SCACHTIME	"tlsproxy_tls_session_cache_timeout"
3590 #define DEF_TLSP_TLS_SCACHTIME	"$" VAR_SMTPD_TLS_SCACHTIME
3591 extern int var_tlsp_tls_scache_timeout;
3592 
3593 #define VAR_TLSP_TLS_SET_SESSID	"tlsproxy_tls_always_issue_session_ids"
3594 #define DEF_TLSP_TLS_SET_SESSID	"$" VAR_SMTPD_TLS_SET_SESSID
3595 extern bool var_tlsp_tls_set_sessid;
3596 
3597  /*
3598   * SMTPD "reject" contact info.
3599   */
3600 #define VAR_SMTPD_REJ_FOOTER	"smtpd_reject_footer"
3601 #define DEF_SMTPD_REJ_FOOTER	""
3602 extern char *var_smtpd_rej_footer;
3603 
3604  /*
3605   * Per-record time limit support.
3606   */
3607 #define VAR_SMTPD_REC_DEADLINE	"smtpd_per_record_deadline"
3608 #define DEF_SMTPD_REC_DEADLINE	"${stress?yes}${stress:no}"
3609 extern bool var_smtpd_rec_deadline;
3610 
3611 #define VAR_SMTP_REC_DEADLINE	"smtp_per_record_deadline"
3612 #define DEF_SMTP_REC_DEADLINE	0
3613 #define VAR_LMTP_REC_DEADLINE	"lmtp_per_record_deadline"
3614 #define DEF_LMTP_REC_DEADLINE	0
3615 extern bool var_smtp_rec_deadline;
3616 
3617  /*
3618   * Postfix sendmail command compatibility features.
3619   */
3620 #define SM_FIX_EOL_STRICT	"strict"
3621 #define SM_FIX_EOL_NEVER	"never"
3622 #define SM_FIX_EOL_ALWAYS	"always"
3623 
3624 #define VAR_SM_FIX_EOL		"sendmail_fix_line_endings"
3625 #define DEF_SM_FIX_EOL		SM_FIX_EOL_ALWAYS
3626 extern char *var_sm_fix_eol;
3627 
3628  /*
3629   * Gradual degradation, or fatal exit after table open error?
3630   */
3631 #define VAR_DAEMON_OPEN_FATAL	"daemon_table_open_error_is_fatal"
3632 #define DEF_DAEMON_OPEN_FATAL	0
3633 extern bool var_daemon_open_fatal;
3634 
3635 /* LICENSE
3636 /* .ad
3637 /* .fi
3638 /*	The Secure Mailer license must be distributed with this software.
3639 /* AUTHOR(S)
3640 /*	Wietse Venema
3641 /*	IBM T.J. Watson Research
3642 /*	P.O. Box 704
3643 /*	Yorktown Heights, NY 10598, USA
3644 /*--*/
3645 
3646 #endif
3647