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