2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-30 21:55:20 +00:00

postfix-2.9-20111129

This commit is contained in:
Wietse Venema
2011-11-29 00:00:00 -05:00
committed by Viktor Dukhovni
parent 5854f6cb45
commit a2556d5b9d
17 changed files with 312 additions and 182 deletions

View File

@@ -17177,4 +17177,14 @@ Apologies for any names omitted.
Cleanup: added the pipe(8) delivery agent to the list of
programs that implement transport_time_limit parameters.
File: postconf/postconf_service.c, postconf/test6.ref.
File: postconf/postconf_service.c, postconf/test6.ref,
postconf/test22.ref.
20111128
Feature: "postconf -C class,..." support to print parameters
in one or more classes (builtin= built-in parameter names,
service=service-defined parameter names, user=user-defined
parameter names). Files: postconf/postconf.c, postconf/postconf.h,
postconf_service.c, postconf/postconf_user.c.

View File

@@ -207,11 +207,11 @@ NOTES:
* Lines 8, 9: always specify "check_policy_service" AFTER
"reject_unauth_destination" or else your system could become an open relay.
* Line 11: this increases the time that a policy server process is allowed to
run from the default 1000 seconds to 3600 seconds. The default time limit
is too short for a policy daemon that needs to run long as the SMTP server
process that talks to it. See the spawn(8) manpage for more information
about the transport_time_limit parameter.
* Line 11: this increases the time that a policy server process may run to
3600 seconds. The default time limit of 1000 seconds is too short; the
policy daemon needs to run long as the SMTP server process that talks to
it. See the spawn(8) manpage for more information about the
transport_time_limit parameter.
Note: the "policy_time_limit" parameter will not show up in "postconf"
command output before Postfix version 2.9. This limitation applies to
@@ -315,11 +315,11 @@ Notes:
* Line 3: Specify "greylist.pl -v" for verbose logging of each request and
reply.
* Line 6: this increases the time that a greylist server process is allowed
to run from the default 1000 seconds to 3600 seconds. The default time
limit is too short for a greylist daemon that needs to run long as the SMTP
server process that talks to it. See the spawn(8) manpage for more
information about the transport_time_limit parameter.
* Line 6: this increases the time that a greylist server process may run to
3600 seconds. The default time limit of 1000 seconds is too short; the
greylist daemon needs to run long as the SMTP server process that talks to
it. See the spawn(8) manpage for more information about the
transport_time_limit parameter.
Note: the "greylist_time_limit" parameter will not show up in
"postconf" command output before Postfix version 2.9. This limitation

View File

@@ -2,6 +2,8 @@ Wish list:
Things to do before the stable release:
Add regression tests for postconf -C.
Remove this file from the stable release.
Things to do after the stable release:
@@ -13,6 +15,9 @@ Wish list:
that, it can discuss the gory details of higher security
levels for the few people who need it.
make address_verify_sender dynamic so it won't work
with address harvesters.
Investigate viability of memcached for applications
that require performance for low-security operations
such as sharing the postscreen cache.

View File

@@ -261,7 +261,7 @@ daemon, you would use something like this: </p>
8 <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
9 <a href="postconf.5.html#check_policy_service">check_policy_service</a> unix:private/policy
10 ...
11 policy_time_limit = 3600
11 <a href="postconf.5.html#transport_time_limit">policy_time_limit</a> = 3600
</pre>
</blockquote>
@@ -284,13 +284,13 @@ increase the smtpd process limit. </p>
open relay. </p>
<li> <p> Line 11: this increases the time that a policy server
process is allowed to run from the default 1000 seconds to 3600
seconds. The default time limit is too short for a policy daemon
that needs to run long as the SMTP server process that talks to it.
process may run to 3600 seconds. The default time limit of 1000
seconds is too short; the policy daemon needs to run long as the
SMTP server process that talks to it.
See the <a href="spawn.8.html">spawn(8)</a> manpage for more information about the
<a href="postconf.5.html#transport_time_limit"><i>transport</i>_time_limit</a> parameter. </p>
<blockquote> <p> Note: the "policy_time_limit" parameter will not
<blockquote> <p> Note: the "<a href="postconf.5.html#transport_time_limit">policy_time_limit</a>" parameter will not
show up in "postconf" command output before Postfix version 2.9.
This limitation applies to many parameters whose name is a combination
of a <a href="master.5.html">master.cf</a> service name (in the above example, "policy") and a
@@ -401,7 +401,7 @@ processes only: </p>
3 user=nobody argv=/usr/bin/perl /usr/libexec/postfix/greylist.pl
4
5 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
6 greylist_time_limit = 3600
6 <a href="postconf.5.html#transport_time_limit">greylist_time_limit</a> = 3600
7 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
8 ...
9 <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
@@ -428,13 +428,13 @@ increase the smtpd process limit. </p>
each request and reply. </p>
<li> <p> Line 6: this increases the time that a greylist server
process is allowed to run from the default 1000 seconds to 3600
seconds. The default time limit is too short for a greylist daemon
that needs to run long as the SMTP server process that talks to it.
process may run to 3600 seconds. The default time limit of 1000
seconds is too short; the greylist daemon needs to run long as the
SMTP server process that talks to it.
See the <a href="spawn.8.html">spawn(8)</a> manpage for more information about the
<a href="postconf.5.html#transport_time_limit"><i>transport</i>_time_limit</a> parameter. </p>
<blockquote> <p> Note: the "greylist_time_limit" parameter will not
<blockquote> <p> Note: the "<a href="postconf.5.html#transport_time_limit">greylist_time_limit</a>" parameter will not
show up in "postconf" command output before Postfix version 2.9.
This limitation applies to many parameters whose name is a combination
of a <a href="master.5.html">master.cf</a> service name (in the above example, "greylist") and

View File

@@ -12,7 +12,8 @@ POSTCONF(1) POSTCONF(1)
<b>SYNOPSIS</b>
<b>Managing <a href="postconf.5.html">main.cf</a>:</b>
<b>postconf</b> [<b>-dfhnv</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>parameter ...</i>]
<b>postconf</b> [<b>-dfhnv</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<b>-C</b> <i>class</i>] [<i>parameter</i>
<i>...</i>]
<b>postconf</b> [<b>-ev</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>parameter=value ...</i>]
@@ -34,122 +35,137 @@ POSTCONF(1) POSTCONF(1)
By default, the <a href="postconf.1.html"><b>postconf</b>(1)</a> command displays the values of
<a href="postconf.5.html"><b>main.cf</b></a> configuration parameters, and warns about possible
mis-typed parameter names (Postfix 2.9 and later). It can
also change <a href="postconf.5.html"><b>main.cf</b></a> configuration parameter values, or
display other configuration information about the Postfix
also change <a href="postconf.5.html"><b>main.cf</b></a> configuration parameter values, or
display other configuration information about the Postfix
mail system.
Options:
<b>-a</b> List the available SASL server plug-in types. The
SASL plug-in type is selected with the
<b>-a</b> List the available SASL server plug-in types. The
SASL plug-in type is selected with the
<b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b> configuration parameter by specify-
ing one of the names listed below.
<b>cyrus</b> This server plug-in is available when Post-
<b>cyrus</b> This server plug-in is available when Post-
fix is built with Cyrus SASL support.
<b>dovecot</b>
This server plug-in uses the Dovecot authen-
tication server, and is available when Post-
fix is built with any form of SASL support.
This feature is available with Postfix 2.3 and
later.
<b>-A</b> List the available SASL client plug-in types. The
SASL plug-in type is selected with the
<b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b> or <b><a href="postconf.5.html#lmtp_sasl_type">lmtp_sasl_type</a></b> configuration
parameters by specifying one of the names listed
below.
<b>cyrus</b> This client plug-in is available when Post-
fix is built with Cyrus SASL support.
This feature is available with Postfix 2.3 and
later.
<b>-b</b> [<i>template</i><b>_</b><i>file</i>]
Display the message text that appears at the begin-
ning of delivery status notification (DSN) mes-
sages, replacing $<b>name</b> expressions with actual val-
ues as described in <a href="bounce.5.html"><b>bounce</b>(5)</a>.
To override the built-in templates, specify a tem-
plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
mand line, or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
the <b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a></b> parameter.
To force selection of the built-in templates, spec-
ify an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
command line (in shell language: "").
fix is built with any form of SASL support.
This feature is available with Postfix 2.3 and
later.
<b>-A</b> List the available SASL client plug-in types. The
SASL plug-in type is selected with the
<b><a href="postconf.5.html#smtp_sasl_type">smtp_sasl_type</a></b> or <b><a href="postconf.5.html#lmtp_sasl_type">lmtp_sasl_type</a></b> configuration
parameters by specifying one of the names listed
below.
<b>cyrus</b> This client plug-in is available when Post-
fix is built with Cyrus SASL support.
This feature is available with Postfix 2.3 and
later.
<b>-b</b> [<i>template</i><b>_</b><i>file</i>]
Display the message text that appears at the begin-
ning of delivery status notification (DSN) mes-
sages, replacing $<b>name</b> expressions with actual val-
ues as described in <a href="bounce.5.html"><b>bounce</b>(5)</a>.
To override the built-in templates, specify a tem-
plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
mand line, or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
the <b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a></b> parameter.
To force selection of the built-in templates, spec-
ify an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
command line (in shell language: "").
This feature is available with Postfix 2.3 and
later.
<b>-c</b> <i>config</i><b>_</b><i>dir</i>
The <a href="postconf.5.html"><b>main.cf</b></a> configuration file is in the named
The <a href="postconf.5.html"><b>main.cf</b></a> configuration file is in the named
directory instead of the default configuration
directory.
<b>-C</b> <i>class,...</i>
When displaying <a href="postconf.5.html"><b>main.cf</b></a> parameters, select only
parameters from the specified class(es), specified
as a comma-separated list:
<b>builtin</b>
Parameters with built-in names.
<b>service</b>
Parameters with service-defined names (the
first field of a <a href="master.5.html"><b>master.cf</b></a> entry plus a
Postfix-defined suffix).
<b>user</b> Parameters with user-defined names.
<b>-d</b> Print <a href="postconf.5.html"><b>main.cf</b></a> default parameter settings instead of
actual settings. Specify <b>-df</b> to fold long lines
actual settings. Specify <b>-df</b> to fold long lines
for human readability (Postfix 2.9 and later).
<b>-e</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and update
parameter settings with the "<i>name</i>=<i>value</i>" pairs on
<b>-e</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and update
parameter settings with the "<i>name</i>=<i>value</i>" pairs on
the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. The file is copied to
a temporary file then renamed into place. Specify
a temporary file then renamed into place. Specify
quotes to protect special characters and whitespace
on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
The <b>-e</b> is no longer needed with Postfix version 2.8
and later.
<b>-f</b> Fold long lines when printing <a href="postconf.5.html"><b>main.cf</b></a> or <a href="master.5.html"><b>master.cf</b></a>
configuration file entries, for human readability.
<b>-f</b> Fold long lines when printing <a href="postconf.5.html"><b>main.cf</b></a> or <a href="master.5.html"><b>master.cf</b></a>
configuration file entries, for human readability.
This feature is available with Postfix 2.9 and
This feature is available with Postfix 2.9 and
later.
<b>-h</b> Show <a href="postconf.5.html"><b>main.cf</b></a> parameter values without the "<i>name</i> = "
label that normally precedes the value.
<b>-l</b> List the names of all supported mailbox locking
<b>-l</b> List the names of all supported mailbox locking
methods. Postfix supports the following methods:
<b>flock</b> A kernel-based advisory locking method for
local files only. This locking method is
available on systems with a BSD compatible
<b>flock</b> A kernel-based advisory locking method for
local files only. This locking method is
available on systems with a BSD compatible
library.
<b>fcntl</b> A kernel-based advisory locking method for
<b>fcntl</b> A kernel-based advisory locking method for
local and remote files.
<b>dotlock</b>
An application-level locking method. An
application locks a file named <i>filename</i> by
creating a file named <i>filename</i><b>.lock</b>. The
application is expected to remove its own
lock file, as well as stale lock files that
An application-level locking method. An
application locks a file named <i>filename</i> by
creating a file named <i>filename</i><b>.lock</b>. The
application is expected to remove its own
lock file, as well as stale lock files that
were left behind after abnormal termination.
<b>-m</b> List the names of all supported lookup table types.
In Postfix configuration files, lookup tables are
specified as <i>type</i><b>:</b><i>name</i>, where <i>type</i> is one of the
types listed below. The table <i>name</i> syntax depends
on the lookup table type as described in the <a href="DATABASE_README.html">DATA</a>-
In Postfix configuration files, lookup tables are
specified as <i>type</i><b>:</b><i>name</i>, where <i>type</i> is one of the
types listed below. The table <i>name</i> syntax depends
on the lookup table type as described in the <a href="DATABASE_README.html">DATA</a>-
<a href="DATABASE_README.html">BASE_README</a> document.
<b>btree</b> A sorted, balanced tree structure. This is
<b>btree</b> A sorted, balanced tree structure. This is
available on systems with support for Berke-
ley DB databases.
<b>cdb</b> A read-optimized structure with no support
for incremental updates. This is available
<b>cdb</b> A read-optimized structure with no support
for incremental updates. This is available
on systems with support for CDB databases.
<b>cidr</b> A table that associates values with Class-
less Inter-Domain Routing (CIDR) patterns.
<b>cidr</b> A table that associates values with Class-
less Inter-Domain Routing (CIDR) patterns.
This is described in <a href="cidr_table.5.html"><b>cidr_table</b>(5)</a>.
<b>dbm</b> An indexed file type based on hashing. This
@@ -158,12 +174,12 @@ POSTCONF(1) POSTCONF(1)
<b>environ</b>
The UNIX process environment array. The
lookup key is the variable name. Originally
implemented for testing, someone may find
lookup key is the variable name. Originally
implemented for testing, someone may find
this useful someday.
<b>hash</b> An indexed file type based on hashing. This
is available on systems with support for
is available on systems with support for
Berkeley DB databases.
<b>internal</b>
@@ -171,130 +187,130 @@ POSTCONF(1) POSTCONF(1)
tent are lost when a process terminates.
<b>ldap</b> (read-only)
Perform lookups using the LDAP protocol.
Perform lookups using the LDAP protocol.
This is described in <a href="ldap_table.5.html"><b>ldap_table</b>(5)</a>.
<b>mysql</b> (read-only)
Perform lookups using the MYSQL protocol.
Perform lookups using the MYSQL protocol.
This is described in <a href="mysql_table.5.html"><b>mysql_table</b>(5)</a>.
<b>pcre</b> (read-only)
A lookup table based on Perl Compatible Reg-
ular Expressions. The file format is
ular Expressions. The file format is
described in <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
<b>pgsql</b> (read-only)
Perform lookups using the PostgreSQL proto-
Perform lookups using the PostgreSQL proto-
col. This is described in <a href="pgsql_table.5.html"><b>pgsql_table</b>(5)</a>.
<b>proxy</b> (read-only)
A lookup table that is implemented via the
Postfix <a href="proxymap.8.html"><b>proxymap</b>(8)</a> service. The table name
A lookup table that is implemented via the
Postfix <a href="proxymap.8.html"><b>proxymap</b>(8)</a> service. The table name
syntax is <i>type</i><b>:</b><i>name</i>.
<b>regexp</b> (read-only)
A lookup table based on regular expressions.
The file format is described in <a href="regexp_table.5.html"><b>regexp_ta-</b></a>
The file format is described in <a href="regexp_table.5.html"><b>regexp_ta-</b></a>
<a href="regexp_table.5.html"><b>ble</b>(5)</a>.
<b>sdbm</b> An indexed file type based on hashing. This
is available on systems with support for
is available on systems with support for
SDBM databases.
<b>sqlite</b> (read-only)
Perform lookups from SQLite database files.
Perform lookups from SQLite database files.
This is described in <a href="sqlite_table.5.html"><b>sqlite_table</b>(5)</a>.
<b>static</b> (read-only)
A table that always returns its name as
lookup result. For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
always returns the string <b>foobar</b> as lookup
A table that always returns its name as
lookup result. For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
always returns the string <b>foobar</b> as lookup
result.
<b>tcp</b> (read-only)
Perform lookups using a simple request-reply
protocol that is described in <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>.
protocol that is described in <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>.
<b>texthash</b> (read-only)
Produces similar results as hash: files,
Produces similar results as hash: files,
except that you don't need to run the
<a href="postmap.1.html"><b>postmap</b>(1)</a> command before you can use the
file, and that it does not detect changes
<a href="postmap.1.html"><b>postmap</b>(1)</a> command before you can use the
file, and that it does not detect changes
after the file is read.
<b>unix</b> (read-only)
A limited way to query the UNIX authentica-
A limited way to query the UNIX authentica-
tion database. The following tables are
implemented:
<b>unix:passwd.byname</b>
The table is the UNIX password data-
base. The key is a login name. The
result is a password file entry in
The table is the UNIX password data-
base. The key is a login name. The
result is a password file entry in
<b>passwd</b>(5) format.
<b>unix:group.byname</b>
The table is the UNIX group database.
The key is a group name. The result
is a group file entry in <b>group</b>(5)
The key is a group name. The result
is a group file entry in <b>group</b>(5)
format.
Other table types may exist depending on how Post-
Other table types may exist depending on how Post-
fix was built.
<b>-M</b> Show <a href="master.5.html"><b>master.cf</b></a> file contents instead of <a href="postconf.5.html"><b>main.cf</b></a>
file contents. Specify <b>-Mf</b> to fold long lines for
<b>-M</b> Show <a href="master.5.html"><b>master.cf</b></a> file contents instead of <a href="postconf.5.html"><b>main.cf</b></a>
file contents. Specify <b>-Mf</b> to fold long lines for
human readability.
If <i>service ...</i> is specified, only the matching ser-
vices will be output. For example, "<b>postconf -Mf</b>
<b>inet</b>" will match all services that listen on the
vices will be output. For example, "<b>postconf -Mf</b>
<b>inet</b>" will match all services that listen on the
network.
Specify zero or more arguments, each with a <i>ser-</i>
<i>vice-type</i> name (<b>inet</b>, <b>unix</b>, <b>fifo</b>, or <b>pass</b>) or with
a <i>service-name.service-type</i> pair, where <i>service-</i>
Specify zero or more arguments, each with a <i>ser-</i>
<i>vice-type</i> name (<b>inet</b>, <b>unix</b>, <b>fifo</b>, or <b>pass</b>) or with
a <i>service-name.service-type</i> pair, where <i>service-</i>
<i>name</i> is the first field of a <a href="master.5.html">master.cf</a> entry.
This feature is available with Postfix 2.9 and
This feature is available with Postfix 2.9 and
later.
<b>-n</b> Print <a href="postconf.5.html"><b>main.cf</b></a> parameter settings that are explic-
itly specified in <a href="postconf.5.html"><b>main.cf</b></a>. Specify <b>-nf</b> to fold
long lines for human readability (Postfix 2.9 and
<b>-n</b> Print <a href="postconf.5.html"><b>main.cf</b></a> parameter settings that are explic-
itly specified in <a href="postconf.5.html"><b>main.cf</b></a>. Specify <b>-nf</b> to fold
long lines for human readability (Postfix 2.9 and
later).
<b>-t</b> [<i>template</i><b>_</b><i>file</i>]
Display the templates for text that appears at the
beginning of delivery status notification (DSN)
Display the templates for text that appears at the
beginning of delivery status notification (DSN)
messages, without expanding $<b>name</b> expressions.
To override the built-in templates, specify a tem-
plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
mand line, or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
To override the built-in templates, specify a tem-
plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
mand line, or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
the <b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a></b> parameter.
To force selection of the built-in templates, spec-
ify an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
ify an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
command line (in shell language: "").
This feature is available with Postfix 2.3 and
This feature is available with Postfix 2.3 and
later.
<b>-v</b> Enable verbose logging for debugging purposes. Mul-
tiple <b>-v</b> options make the software increasingly
tiple <b>-v</b> options make the software increasingly
verbose.
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment
out the parameters given on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command
line, so that those parameters revert to their
default values. The file is copied to a temporary
file then renamed into place. Specify a list of
line, so that those parameters revert to their
default values. The file is copied to a temporary
file then renamed into place. Specify a list of
parameter names, not <i>name</i>=<i>value</i> pairs. There is no
<a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera-
<a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera-
tion.
This feature is available with Postfix 2.6 and
This feature is available with Postfix 2.6 and
later.
<b>DIAGNOSTICS</b>
@@ -305,18 +321,18 @@ POSTCONF(1) POSTCONF(1)
Directory with Postfix configuration files.
<b>CONFIGURATION PARAMETERS</b>
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant
to this program.
The text below provides only a parameter summary. See
The text below provides only a parameter summary. See
<a href="postconf.5.html"><b>postconf</b>(5)</a> for more details including examples.
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
<a href="master.5.html">master.cf</a> configuration files.
<b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a> (empty)</b>
Pathname of a configuration file with bounce mes-
Pathname of a configuration file with bounce mes-
sage templates.
<b>FILES</b>
@@ -332,7 +348,7 @@ POSTCONF(1) POSTCONF(1)
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
<b>LICENSE</b>
The Secure Mailer license must be distributed with this
The Secure Mailer license must be distributed with this
software.
<b>AUTHOR(S)</b>

View File

@@ -12,7 +12,7 @@ Postfix configuration utility
\fBManaging main.cf:\fR
\fBpostconf\fR [\fB-dfhnv\fR] [\fB-c \fIconfig_dir\fR]
[\fIparameter ...\fR]
[\fB-C \fIclass\fR] [\fIparameter ...\fR]
\fBpostconf\fR [\fB-ev\fR] [\fB-c \fIconfig_dir\fR]
[\fIparameter=value ...\fR]
@@ -90,6 +90,19 @@ This feature is available with Postfix 2.3 and later.
.IP "\fB-c \fIconfig_dir\fR"
The \fBmain.cf\fR configuration file is in the named directory
instead of the default configuration directory.
.IP "\fB-C \fIclass,...\fR"
When displaying \fBmain.cf\fR parameters, select only
parameters from the specified class(es), specified as a
comma-separated list:
.RS
.IP \fBbuiltin\fR
Parameters with built-in names.
.IP \fBservice\fR
Parameters with service-defined names (the first field of
a \fBmaster.cf\fR entry plus a Postfix-defined suffix).
.IP \fBuser\fR
Parameters with user-defined names.
.RE
.IP \fB-d\fR
Print \fBmain.cf\fR default parameter settings instead of
actual settings.

View File

@@ -996,6 +996,11 @@ while (<>) {
s;\btlsproxy_tls_session_cache_timeout\b;<a href="postconf.5.html#tlsproxy_tls_session_cache_timeout">$&</a>;g;
s;\btlsproxy_use_tls\b;<a href="postconf.5.html#tlsproxy_use_tls">$&</a>;g;
# Service-defined parameters...
s;\bpolicy_time_limit\b;<a href="postconf.5.html#transport_time_limit">$&</a>;g;
s;\bgreylist_time_limit\b;<a href="postconf.5.html#transport_time_limit">$&</a>;g;
# Hyperlink URLs and RFC documents
s/(http:\/\/[^ ,"\(\)]*[^ ,"\(\):;!?.])/<a href="$1">$1<\/a>/;

View File

@@ -284,9 +284,9 @@ increase the smtpd process limit. </p>
open relay. </p>
<li> <p> Line 11: this increases the time that a policy server
process is allowed to run from the default 1000 seconds to 3600
seconds. The default time limit is too short for a policy daemon
that needs to run long as the SMTP server process that talks to it.
process may run to 3600 seconds. The default time limit of 1000
seconds is too short; the policy daemon needs to run long as the
SMTP server process that talks to it.
See the spawn(8) manpage for more information about the
<i>transport</i>_time_limit parameter. </p>
@@ -428,9 +428,9 @@ increase the smtpd process limit. </p>
each request and reply. </p>
<li> <p> Line 6: this increases the time that a greylist server
process is allowed to run from the default 1000 seconds to 3600
seconds. The default time limit is too short for a greylist daemon
that needs to run long as the SMTP server process that talks to it.
process may run to 3600 seconds. The default time limit of 1000
seconds is too short; the greylist daemon needs to run long as the
SMTP server process that talks to it.
See the spawn(8) manpage for more information about the
<i>transport</i>_time_limit parameter. </p>

View File

@@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
#define MAIL_RELEASE_DATE "20111127"
#define MAIL_RELEASE_DATE "20111129"
#define MAIL_VERSION_NUMBER "2.9"
#ifdef SNAPSHOT

View File

@@ -41,7 +41,8 @@ Makefile: Makefile.in
test: $(TESTPROG)
tests: test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 \
test12 test13 test14 test15 test16 test17 test18 test19 test20 test21
test12 test13 test14 test15 test16 test17 test18 test19 test20 test21 \
test22
root_tests:
@@ -284,6 +285,16 @@ test21: $(PROG) test21.ref
diff test21.ref test21.tmp
rm -f main.cf master.cf test21.tmp
# Like test6, but using a delivery agent that has no _time_limit magic.
test22: $(PROG) test22.ref
rm -f main.cf master.cf
touch main.cf master.cf
echo whatevershebrings unix - n n - 0 smtp >> master.cf
./$(PROG) -c . 2>&1 | grep whatevershebrings >test22.tmp
diff test22.ref test22.tmp
rm -f main.cf master.cf test22.tmp
printfck: $(OBJS) $(PROG)
rm -rf printfck
mkdir printfck
@@ -322,6 +333,7 @@ postconf.o: ../../include/mail_run.h
postconf.o: ../../include/mail_version.h
postconf.o: ../../include/msg.h
postconf.o: ../../include/msg_vstream.h
postconf.o: ../../include/name_mask.h
postconf.o: ../../include/stringops.h
postconf.o: ../../include/sys_defs.h
postconf.o: ../../include/vbuf.h

View File

@@ -8,7 +8,7 @@
/* \fBManaging main.cf:\fR
/*
/* \fBpostconf\fR [\fB-dfhnv\fR] [\fB-c \fIconfig_dir\fR]
/* [\fIparameter ...\fR]
/* [\fB-C \fIclass\fR] [\fIparameter ...\fR]
/*
/* \fBpostconf\fR [\fB-ev\fR] [\fB-c \fIconfig_dir\fR]
/* [\fIparameter=value ...\fR]
@@ -84,6 +84,19 @@
/* .IP "\fB-c \fIconfig_dir\fR"
/* The \fBmain.cf\fR configuration file is in the named directory
/* instead of the default configuration directory.
/* .IP "\fB-C \fIclass,...\fR"
/* When displaying \fBmain.cf\fR parameters, select only
/* parameters from the specified class(es), specified as a
/* comma-separated list:
/* .RS
/* .IP \fBbuiltin\fR
/* Parameters with built-in names.
/* .IP \fBservice\fR
/* Parameters with service-defined names (the first field of
/* a \fBmaster.cf\fR entry plus a Postfix-defined suffix).
/* .IP \fBuser\fR
/* Parameters with user-defined names.
/* .RE
/* .IP \fB-d\fR
/* Print \fBmain.cf\fR default parameter settings instead of
/* actual settings.
@@ -315,6 +328,7 @@
#include <vstring.h>
#include <vstream.h>
#include <stringops.h>
#include <name_mask.h>
/* Global library. */
@@ -349,6 +363,13 @@ int main(int argc, char **argv)
struct stat st;
int junk;
ARGV *ext_argv = 0;
int param_class = PC_PARAM_MASK_CLASS;
static const NAME_MASK param_class_table[] = {
"builtin", PC_PARAM_FLAG_BUILTIN,
"service", PC_PARAM_FLAG_SERVICE,
"user", PC_PARAM_FLAG_USER,
0,
};
/*
* Fingerprint executables and core dumps.
@@ -378,7 +399,7 @@ int main(int argc, char **argv)
/*
* Parse JCL.
*/
while ((ch = GETOPT(argc, argv, "aAbc:deEf#hlmMntv")) > 0) {
while ((ch = GETOPT(argc, argv, "aAbc:C:deEf#hlmMntv")) > 0) {
switch (ch) {
case 'a':
cmd_mode |= SHOW_SASL_SERV;
@@ -396,6 +417,10 @@ int main(int argc, char **argv)
if (setenv(CONF_ENV_PATH, optarg, 1) < 0)
msg_fatal("out of memory");
break;
case 'C':
param_class = name_mask_opt("-C option", param_class_table,
optarg, NAME_MASK_ANY_CASE | NAME_MASK_FATAL);
break;
case 'd':
cmd_mode |= SHOW_DEFS;
break;
@@ -446,7 +471,7 @@ int main(int argc, char **argv)
msg_verbose++;
break;
default:
msg_fatal("usage: %s [-a (server SASL types)] [-A (client SASL types)] [-b (bounce templates)] [-c config_dir] [-d (defaults)] [-e (edit)] [-f (fold lines)] [-# (comment-out)] [-h (no names)] [-l (lock types)] [-m (map types)] [-M (master.cf)] [-n (non-defaults)] [-v] [name...]", argv[0]);
msg_fatal("usage: %s [-a (server SASL types)] [-A (client SASL types)] [-b (bounce templates)] [-c config_dir] [-C param_class] [-d (defaults)] [-e (edit)] [-f (fold lines)] [-# (comment-out)] [-h (no names)] [-l (lock types)] [-m (map types)] [-M (master.cf)] [-n (non-defaults)] [-v] [name...]", argv[0]);
}
}
@@ -548,7 +573,7 @@ int main(int argc, char **argv)
/*
* Show the requested values.
*/
show_parameters(cmd_mode, argv + optind);
show_parameters(cmd_mode, param_class, argv + optind);
/*
* Flag unused parameters. This makes no sense with "postconf -d",

View File

@@ -45,8 +45,15 @@ typedef struct {
} PC_PARAM_NODE;
/* Values for flags. See the postconf_node module for narrative text. */
#define PC_PARAM_FLAG_NONE (0)
#define PC_PARAM_FLAG_RAW (1<<0)
#define PC_PARAM_FLAG_RAW (1<<0) /* raw parameter value */
#define PC_PARAM_FLAG_BUILTIN (1<<1) /* built-in parameter name */
#define PC_PARAM_FLAG_SERVICE (1<<2) /* service-defined parameter name */
#define PC_PARAM_FLAG_USER (1<<3) /* user-defined parameter name */
#define PC_PARAM_MASK_CLASS \
(PC_PARAM_FLAG_BUILTIN | PC_PARAM_FLAG_SERVICE | PC_PARAM_FLAG_USER)
#define PC_PARAM_CLASS_OVERRIDE(node, class) \
((node)->flags = (((node)->flags & ~PC_PARAM_MASK_CLASS) | (class)))
#define PC_RAW_PARAMETER(node) ((node)->flags & PC_PARAM_FLAG_RAW)
@@ -123,7 +130,7 @@ extern void set_config_dir(void);
*/
extern void read_parameters(void);
extern void set_parameters(void);
extern void show_parameters(int, char **);
extern void show_parameters(int, int, char **);
/*
* postconf_edit.c

View File

@@ -333,36 +333,39 @@ void register_builtin_parameters(void)
param_table = PC_PARAM_TABLE_CREATE(100);
/*
* Add the built-in parameters to the global name space.
* Add the built-in parameters to the global name space. The class
* (built-i) is tentative; some parameters are actually service-defined,
* but they have their own default value.
*/
for (ctt = time_table; ctt->name; ctt++)
PC_PARAM_TABLE_ENTER(param_table, ctt->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, ctt->name, PC_PARAM_FLAG_BUILTIN,
(char *) ctt, convert_time_parameter);
for (cbt = bool_table; cbt->name; cbt++)
PC_PARAM_TABLE_ENTER(param_table, cbt->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, cbt->name, PC_PARAM_FLAG_BUILTIN,
(char *) cbt, convert_bool_parameter);
for (cit = int_table; cit->name; cit++)
PC_PARAM_TABLE_ENTER(param_table, cit->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, cit->name, PC_PARAM_FLAG_BUILTIN,
(char *) cit, convert_int_parameter);
for (cst = str_table; cst->name; cst++)
PC_PARAM_TABLE_ENTER(param_table, cst->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, cst->name, PC_PARAM_FLAG_BUILTIN,
(char *) cst, convert_str_parameter);
for (cft = str_fn_table; cft->name; cft++)
PC_PARAM_TABLE_ENTER(param_table, cft->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, cft->name, PC_PARAM_FLAG_BUILTIN,
(char *) cft, convert_str_fn_parameter);
for (cft = str_fn_table_2; cft->name; cft++)
PC_PARAM_TABLE_ENTER(param_table, cft->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, cft->name, PC_PARAM_FLAG_BUILTIN,
(char *) cft, convert_str_fn_parameter);
for (rst = raw_table; rst->name; rst++)
PC_PARAM_TABLE_ENTER(param_table, rst->name, PC_PARAM_FLAG_RAW,
PC_PARAM_TABLE_ENTER(param_table, rst->name,
PC_PARAM_FLAG_BUILTIN | PC_PARAM_FLAG_RAW,
(char *) rst, convert_raw_parameter);
for (nst = nint_table; nst->name; nst++)
PC_PARAM_TABLE_ENTER(param_table, nst->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, nst->name, PC_PARAM_FLAG_BUILTIN,
(char *) nst, convert_nint_parameter);
for (bst = nbool_table; bst->name; bst++)
PC_PARAM_TABLE_ENTER(param_table, bst->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, bst->name, PC_PARAM_FLAG_BUILTIN,
(char *) bst, convert_nbool_parameter);
for (lst = long_table; lst->name; lst++)
PC_PARAM_TABLE_ENTER(param_table, lst->name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, lst->name, PC_PARAM_FLAG_BUILTIN,
(char *) lst, convert_long_parameter);
}

View File

@@ -10,8 +10,9 @@
/*
/* void set_parameters()
/*
/* void show_parameters(mode, names)
/* void show_parameters(mode, param_class, names)
/* int mode;
/* int param_class;
/* char **names;
/* DESCRIPTION
/* read_parameters() reads parameters from main.cf.
@@ -39,6 +40,16 @@
/* .IP SHOW_EVAL
/* Expand parameter values (not implemented).
/* .RE
/* .IP param_class
/* Bit-wise OR of one or more of the following:
/* .RS
/* .IP PC_PARAM_FLAG_BUILTIN
/* Show built-in parameters.
/* .IP PC_PARAM_FLAG_SERVICE
/* Show service-defined parameters.
/* .IP PC_PARAM_FLAG_USER
/* Show user-defined parameters.
/* .RE
/* .IP names
/* List of zero or more parameter names. If the list is empty,
/* output all parameters.
@@ -225,7 +236,7 @@ static int comp_names(const void *a, const void *b)
/* show_parameters - show parameter info */
void show_parameters(int mode, char **names)
void show_parameters(int mode, int param_class, char **names)
{
PC_PARAM_INFO **list;
PC_PARAM_INFO **ht;
@@ -239,8 +250,9 @@ void show_parameters(int mode, char **names)
list = PC_PARAM_TABLE_LIST(param_table);
qsort((char *) list, param_table->used, sizeof(*list), comp_names);
for (ht = list; *ht; ht++)
print_parameter(mode, PC_PARAM_INFO_NAME(*ht),
PC_PARAM_INFO_NODE(*ht));
if (param_class & PC_PARAM_INFO_NODE(*ht)->flags)
print_parameter(mode, PC_PARAM_INFO_NAME(*ht),
PC_PARAM_INFO_NODE(*ht));
myfree((char *) list);
return;
}

View File

@@ -2,7 +2,7 @@
/* NAME
/* postconf_service 3
/* SUMMARY
/* service-defined parameter support
/* service-defined parameter name support
/* SYNOPSIS
/* #include <postconf.h>
/*
@@ -89,16 +89,22 @@ static void register_service_parameter(const char *service, const char *suffix,
const char *defparam)
{
char *name = concatenate(service, suffix, (char *) 0);
PC_PARAM_NODE *node;
/*
* Skip service parameter names that have built-in definitions. This
* happens with message delivery transports that have a non-default
* per-destination concurrency or recipient limit, such as local(8).
*
* Some parameters were tentatively flagged as built-in, but they are
* service parameters with their own default value. We don't change the
* default but we correct the parameter class.
*/
if (PC_PARAM_TABLE_LOCATE(param_table, name) != 0) {
if ((node = PC_PARAM_TABLE_FIND(param_table, name)) != 0) {
PC_PARAM_CLASS_OVERRIDE(node, PC_PARAM_FLAG_SERVICE);
myfree(name);
} else {
PC_PARAM_TABLE_ENTER(param_table, name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, name, PC_PARAM_FLAG_SERVICE,
(char *) defparam, convert_service_parameter);
}
}

View File

@@ -2,7 +2,7 @@
/* NAME
/* postconf_user 3
/* SUMMARY
/* support for user-defined parameters
/* support for user-defined parameter names
/* SYNOPSIS
/* #include <postconf.h>
/*
@@ -13,11 +13,12 @@
/* space of each master.cf entry. Parameters in local name
/* spaces take precedence over global parameters.
/*
/* There are three categories of known parameters: built-in,
/* There are three categories of known parameter names: built-in,
/* service-defined (see postconf_service.c), and valid
/* user-defined.
/*
/* There are two categories of valid user-defined parameters:
/* There are two categories of valid user-defined parameter
/* names:
/*
/* - Parameters whose user-defined-name appears in the value
/* of smtpd_restriction_classes in main.cf or master.cf.
@@ -28,7 +29,7 @@
/* - In both cases the parameters must have a
/* "user-defined-name=value" entry in main.cf or master.cf.
/*
/* Other user-defined parameters are flagged as "unused".
/* Other user-defined parameter names are flagged as "unused".
/*
/* register_user_parameters() scans the global and per-service
/* name spaces for user-defined parameters and flags
@@ -122,11 +123,11 @@ static const char *flag_user_parameter(const char *mac_name,
if (local_scope && dict_get(local_scope->all_params, mac_name)) {
if (PC_PARAM_TABLE_LOCATE(local_scope->valid_names, mac_name) == 0)
PC_PARAM_TABLE_ENTER(local_scope->valid_names, mac_name,
PC_PARAM_FLAG_NONE, PC_PARAM_NO_DATA,
PC_PARAM_FLAG_USER, PC_PARAM_NO_DATA,
convert_user_parameter);
} else if (mail_conf_lookup(mac_name) != 0) {
if (PC_PARAM_TABLE_LOCATE(param_table, mac_name) == 0)
PC_PARAM_TABLE_ENTER(param_table, mac_name, PC_PARAM_FLAG_NONE,
PC_PARAM_TABLE_ENTER(param_table, mac_name, PC_PARAM_FLAG_USER,
PC_PARAM_NO_DATA, convert_user_parameter);
}
return (0);
@@ -198,7 +199,7 @@ static void scan_user_parameter_namespace(const char *dict_name,
&& PC_PARAM_TABLE_LOCATE(local_scope->valid_names, cparam_name) == 0
&& htable_locate(rest_class_table, cparam_name) != 0)
PC_PARAM_TABLE_ENTER(local_scope->valid_names, cparam_name,
PC_PARAM_FLAG_NONE, PC_PARAM_NO_DATA,
PC_PARAM_FLAG_USER, PC_PARAM_NO_DATA,
convert_user_parameter);
/* Skip "do not expand" parameters. */
if ((node = PC_PARAM_TABLE_FIND(param_table, cparam_name)) != 0

View File

@@ -0,0 +1,15 @@
whatevershebrings_delivery_slot_cost = $default_delivery_slot_cost
whatevershebrings_delivery_slot_discount = $default_delivery_slot_discount
whatevershebrings_delivery_slot_loan = $default_delivery_slot_loan
whatevershebrings_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
whatevershebrings_destination_concurrency_limit = $default_destination_concurrency_limit
whatevershebrings_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
whatevershebrings_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
whatevershebrings_destination_rate_delay = $default_destination_rate_delay
whatevershebrings_destination_recipient_limit = $default_destination_recipient_limit
whatevershebrings_extra_recipient_limit = $default_extra_recipient_limit
whatevershebrings_initial_destination_concurrency = $initial_destination_concurrency
whatevershebrings_minimum_delivery_slots = $default_minimum_delivery_slots
whatevershebrings_recipient_limit = $default_recipient_limit
whatevershebrings_recipient_refill_delay = $default_recipient_refill_delay
whatevershebrings_recipient_refill_limit = $default_recipient_refill_limit