2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 09:57:34 +00:00

postfix-2.9-20111121

This commit is contained in:
Wietse Venema 2011-11-21 00:00:00 -05:00 committed by Viktor Dukhovni
parent 38b0a080dc
commit dce993a061
6 changed files with 317 additions and 254 deletions

View File

@ -17119,3 +17119,7 @@ Apologies for any names omitted.
"name=value" entries that are unused because they are hidden "name=value" entries that are unused because they are hidden
by master.cf "-o name=value" entries with the same parameter by master.cf "-o name=value" entries with the same parameter
name. File: postconf/postconf.c. name. File: postconf/postconf.c.
20111121
Cleanup: documentation fixes. File: postconf/postconf.c.

View File

@ -20,7 +20,9 @@ Major changes with snapshot 20111120
Eliminated the postconf limitation documented on 20111113 as "lack Eliminated the postconf limitation documented on 20111113 as "lack
of support for per-service parameter name spaces in master.cf, of support for per-service parameter name spaces in master.cf,
meaning that "-o user-defined-name=value" always results in an meaning that "-o user-defined-name=value" always results in an
"unused parameter" warning". "unused parameter" warning". This brings the total cost of the
postconf upgrade to some 55 person-hours, 600 lines of code, and
300 lines of comments or documentation.
Major changes with snapshot 20111118 Major changes with snapshot 20111118
==================================== ====================================
@ -51,7 +53,7 @@ always results in an "unused parameter" warning.
This completes an effort that expanded postconf.c by 553 lines of This completes an effort that expanded postconf.c by 553 lines of
code that were designed, written, tested and documented (in 250 code that were designed, written, tested and documented (in 250
lines) at the cost of 31 person-hours, spread out over 7 days. lines) at the cost of 35 person-hours, spread out over 7 days.
Major changes with snapshot 20111108 Major changes with snapshot 20111108
==================================== ====================================

View File

@ -40,12 +40,6 @@ POSTCONF(1) POSTCONF(1)
Options: Options:
<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>-a</b> List the available SASL server plug-in types. The <b>-a</b> List the available SASL server plug-in types. The
SASL plug-in type is selected with 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- <b><a href="postconf.5.html#smtpd_sasl_type">smtpd_sasl_type</a></b> configuration parameter by specify-
@ -62,6 +56,12 @@ POSTCONF(1) POSTCONF(1)
This feature is available with Postfix 2.3 and This feature is available with Postfix 2.3 and
later. 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- <b>cyrus</b> This client plug-in is available when Post-
fix is built with Cyrus SASL support. fix is built with Cyrus SASL support.
@ -72,44 +72,47 @@ POSTCONF(1) POSTCONF(1)
Display the message text that appears at the begin- Display the message text that appears at the begin-
ning of delivery status notification (DSN) mes- ning of delivery status notification (DSN) mes-
sages, with $<b>name</b> expressions replaced by actual sages, with $<b>name</b> expressions replaced by actual
values. To override the built-in message text, values as described in <a href="bounce.5.html"><b>bounce</b>(5)</a>.
specify a template file at the end of the command
line, or specify a template file 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 message text templates,
specify an empty template file name (in shell lan-
guage: "").
This feature is available with Postfix 2.3 and 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. later.
<b>-c</b> <i>config</i><b>_</b><i>dir</i> <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 instead of the default configuration
directory. directory.
<b>-d</b> Print <a href="postconf.5.html"><b>main.cf</b></a> default parameter settings instead of <b>-d</b> Print <a href="postconf.5.html"><b>main.cf</b></a> default parameter settings instead of
actual settings. 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. The file is <b>-e</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and update
copied to a temporary file then renamed into place. parameter settings with the "<i>name</i>=<i>value</i>" pairs on
Parameters and values are specified on the command the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. The file is copied to
line. Use quotes in order to protect shell a temporary file then renamed into place. Specify
metacharacters and whitespace. quotes to protect shell metacharacters and white-
space.
With Postfix version 2.8 and later, the <b>-e</b> is no The <b>-e</b> is no longer needed with Postfix version 2.8
longer needed. and later.
<b>-f</b> When printing <a href="postconf.5.html"><b>main.cf</b></a> or <a href="master.5.html"><b>master.cf</b></a> configuration <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>
file entries, fold long lines for human readabil- configuration file entries, for human readability.
ity.
This feature is available with Postfix 2.9 and This feature is available with Postfix 2.9 and
later. later.
<b>-h</b> Show <a href="postconf.5.html"><b>main.cf</b></a> parameter values only; do not prepend <b>-h</b> Show <a href="postconf.5.html"><b>main.cf</b></a> parameter values without the "<i>name</i> = "
the "<i>name =</i> " label that normally precedes the label that normally precedes the value.
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: methods. Postfix supports the following methods:
@ -130,40 +133,23 @@ POSTCONF(1) POSTCONF(1)
lock file, as well as stale lock files that lock file, as well as stale lock files that
were left behind after abnormal termination. were left behind after abnormal termination.
<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. Use <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, a <i>service</i> of
<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>
<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
later.
<b>-m</b> List the names of all supported lookup table types. <b>-m</b> List the names of all supported lookup table types.
In Postfix configuration files, lookup tables are 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 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 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>- 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. <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- available on systems with support for Berke-
ley DB databases. ley DB databases.
<b>cdb</b> A read-optimized structure with no support <b>cdb</b> A read-optimized structure with no support
for incremental updates. This is available for incremental updates. This is available
on systems with support for CDB databases. on systems with support for CDB databases.
<b>cidr</b> A table that associates values with Class- <b>cidr</b> A table that associates values with Class-
less Inter-Domain Routing (CIDR) patterns. less Inter-Domain Routing (CIDR) patterns.
This is described in <a href="cidr_table.5.html"><b>cidr_table</b>(5)</a>. 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 <b>dbm</b> An indexed file type based on hashing. This
@ -172,12 +158,12 @@ POSTCONF(1) POSTCONF(1)
<b>environ</b> <b>environ</b>
The UNIX process environment array. The The UNIX process environment array. The
lookup key is the variable name. Originally lookup key is the variable name. Originally
implemented for testing, someone may find implemented for testing, someone may find
this useful someday. this useful someday.
<b>hash</b> An indexed file type based on hashing. This <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. Berkeley DB databases.
<b>internal</b> <b>internal</b>
@ -185,105 +171,129 @@ POSTCONF(1) POSTCONF(1)
tent are lost when a process terminates. tent are lost when a process terminates.
<b>ldap</b> (read-only) <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>. This is described in <a href="ldap_table.5.html"><b>ldap_table</b>(5)</a>.
<b>mysql</b> (read-only) <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>. This is described in <a href="mysql_table.5.html"><b>mysql_table</b>(5)</a>.
<b>pcre</b> (read-only) <b>pcre</b> (read-only)
A lookup table based on Perl Compatible Reg- 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>. described in <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
<b>pgsql</b> (read-only) <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>. col. This is described in <a href="pgsql_table.5.html"><b>pgsql_table</b>(5)</a>.
<b>proxy</b> (read-only) <b>proxy</b> (read-only)
A lookup table that is implemented via the A lookup table that is implemented via the
Postfix <a href="proxymap.8.html"><b>proxymap</b>(8)</a> service. The table name 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>. syntax is <i>type</i><b>:</b><i>name</i>.
<b>regexp</b> (read-only) <b>regexp</b> (read-only)
A lookup table based on regular expressions. 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>. <a href="regexp_table.5.html"><b>ble</b>(5)</a>.
<b>sdbm</b> An indexed file type based on hashing. This <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. SDBM databases.
<b>sqlite</b> (read-only) <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>. This is described in <a href="sqlite_table.5.html"><b>sqlite_table</b>(5)</a>.
<b>static</b> (read-only) <b>static</b> (read-only)
A table that always returns its name as A table that always returns its name as
lookup result. For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b> lookup result. For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
always returns the string <b>foobar</b> as lookup always returns the string <b>foobar</b> as lookup
result. result.
<b>tcp</b> (read-only) <b>tcp</b> (read-only)
Perform lookups using a simple request-reply 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) <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 except that you don't need to run the
<a href="postmap.1.html">postmap(1)</a> command before you can use 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 file, and that it does not detect changes
after the file is read. after the file is read.
<b>unix</b> (read-only) <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 tion database. The following tables are
implemented: implemented:
<b>unix:passwd.byname</b> <b>unix:passwd.byname</b>
The table is the UNIX password data- The table is the UNIX password data-
base. The key is a login name. The base. The key is a login name. The
result is a password file entry in result is a password file entry in
<b>passwd</b>(5) format. <b>passwd</b>(5) format.
<b>unix:group.byname</b> <b>unix:group.byname</b>
The table is the UNIX group database. The table is the UNIX group database.
The key is a group name. The result The key is a group name. The result
is a group file entry in <b>group</b>(5) is a group file entry in <b>group</b>(5)
format. format.
Other table types may exist depending on how Post- Other table types may exist depending on how Post-
fix was built. 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
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
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>
<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
later.
<b>-n</b> Print <a href="postconf.5.html"><b>main.cf</b></a> parameter settings that are explic- <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>. 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>] <b>-t</b> [<i>template</i><b>_</b><i>file</i>]
Display the templates for delivery status notifica- Display the templates for text that appears at the
tion (DSN) messages. To override the built-in tem- beginning of delivery status notification (DSN)
plates, specify a template file at the end of the messages, without expanding $<b>name</b> expressions.
command line, or specify a template file 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, specify an
empty template file name (in shell language: "").
This feature is available with Postfix 2.3 and 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. later.
<b>-v</b> Enable verbose logging for debugging purposes. Mul- <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. verbose.
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file. The file is <b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment
copied to a temporary file then renamed into place. out the specified parameters so that they revert to
The parameters specified on the command line are their default values. The file is copied to a tem-
commented-out, so that they revert to their default porary file then renamed into place. Specify a
values. Specify a list of parameter names, not list of parameter names, not <i>name</i>=<i>value</i> pairs.
name=value pairs. There is no <b>postconf</b> command to There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the
perform the reverse operation. reverse operation.
This feature is available with Postfix 2.6 and This feature is available with Postfix 2.6 and
later. later.
<b>DIAGNOSTICS</b> <b>DIAGNOSTICS</b>
@ -294,22 +304,23 @@ POSTCONF(1) POSTCONF(1)
Directory with Postfix configuration files. Directory with Postfix configuration files.
<b>CONFIGURATION PARAMETERS</b> <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. 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. <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> <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. <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> <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. sage templates.
<b>FILES</b> <b>FILES</b>
/etc/postfix/<a href="postconf.5.html">main.cf</a>, Postfix configuration parameters /etc/postfix/<a href="postconf.5.html">main.cf</a>, Postfix configuration parameters
/etc/postfix/<a href="master.5.html">master.cf</a>, Postfix master daemon configuraton
<b>SEE ALSO</b> <b>SEE ALSO</b>
<a href="bounce.5.html">bounce(5)</a>, bounce template file format <a href="bounce.5.html">bounce(5)</a>, bounce template file format
@ -320,7 +331,7 @@ POSTCONF(1) POSTCONF(1)
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
<b>LICENSE</b> <b>LICENSE</b>
The Secure Mailer license must be distributed with this The Secure Mailer license must be distributed with this
software. software.
<b>AUTHOR(S)</b> <b>AUTHOR(S)</b>

View File

@ -43,11 +43,6 @@ parameter values, or display other configuration information
about the Postfix mail system. about the Postfix mail system.
Options: Options:
.IP \fB-A\fR
List the available SASL client plug-in types. The SASL
plug-in type is selected with the \fBsmtp_sasl_type\fR or
\fBlmtp_sasl_type\fR configuration parameters by specifying
one of the names listed below.
.IP \fB-a\fR .IP \fB-a\fR
List the available SASL server plug-in types. The SASL List the available SASL server plug-in types. The SASL
plug-in type is selected with the \fBsmtpd_sasl_type\fR plug-in type is selected with the \fBsmtpd_sasl_type\fR
@ -64,6 +59,11 @@ support.
.RE .RE
.IP .IP
This feature is available with Postfix 2.3 and later. This feature is available with Postfix 2.3 and later.
.IP \fB-A\fR
List the available SASL client plug-in types. The SASL
plug-in type is selected with the \fBsmtp_sasl_type\fR or
\fBlmtp_sasl_type\fR configuration parameters by specifying
one of the names listed below.
.RS .RS
.IP \fBcyrus\fR .IP \fBcyrus\fR
This client plug-in is available when Postfix is built with This client plug-in is available when Postfix is built with
@ -74,12 +74,17 @@ This feature is available with Postfix 2.3 and later.
.IP "\fB-b\fR [\fItemplate_file\fR]" .IP "\fB-b\fR [\fItemplate_file\fR]"
Display the message text that appears at the beginning of Display the message text that appears at the beginning of
delivery status notification (DSN) messages, with $\fBname\fR delivery status notification (DSN) messages, with $\fBname\fR
expressions replaced by actual values. To override the expressions replaced by actual values as described in
built-in message text, specify a template file at the end \fBbounce\fR(5).
of the command line, or specify a template file in \fBmain.cf\fR
with the \fBbounce_template_file\fR parameter. To override the built-in templates, specify a template file
To force selection of the built-in message text templates, name at the end of the \fBpostconf\fR(1) command line, or
specify an empty template file name (in shell language: ""). specify a file name in \fBmain.cf\fR with the
\fBbounce_template_file\fR parameter.
To force selection of the built-in templates, specify an
empty template file name on the \fBpostconf\fR(1) command
line (in shell language: "").
This feature is available with Postfix 2.3 and later. This feature is available with Postfix 2.3 and later.
.IP "\fB-c \fIconfig_dir\fR" .IP "\fB-c \fIconfig_dir\fR"
@ -88,22 +93,25 @@ instead of the default configuration directory.
.IP \fB-d\fR .IP \fB-d\fR
Print \fBmain.cf\fR default parameter settings instead of Print \fBmain.cf\fR default parameter settings instead of
actual settings. actual settings.
Specify \fB-df\fR to fold long lines for human readability
(Postfix 2.9 and later).
.IP \fB-e\fR .IP \fB-e\fR
Edit the \fBmain.cf\fR configuration file. The file is copied Edit the \fBmain.cf\fR configuration file, and update
to a temporary file then renamed into place. Parameters and parameter settings with the "\fIname\fR=\fIvalue\fR" pairs
values are specified on the command line. Use quotes in order on the \fBpostconf\fR(1) command line. The file is copied
to protect shell metacharacters and whitespace. to a temporary file then renamed into place.
Specify quotes to protect shell metacharacters and whitespace.
With Postfix version 2.8 and later, the \fB-e\fR is no The \fB-e\fR is no longer needed with Postfix version 2.8
longer needed. and later.
.IP \fB-f\fR .IP \fB-f\fR
When printing \fBmain.cf\fR or \fBmaster.cf\fR configuration file Fold long lines when printing \fBmain.cf\fR or \fBmaster.cf\fR
entries, fold long lines for human readability. configuration file entries, for human readability.
This feature is available with Postfix 2.9 and later. This feature is available with Postfix 2.9 and later.
.IP \fB-h\fR .IP \fB-h\fR
Show \fBmain.cf\fR parameter values only; do not prepend Show \fBmain.cf\fR parameter values without the "\fIname\fR
the "\fIname = \fR" label that normally precedes the value. = " label that normally precedes the value.
.IP \fB-l\fR .IP \fB-l\fR
List the names of all supported mailbox locking methods. List the names of all supported mailbox locking methods.
Postfix supports the following methods: Postfix supports the following methods:
@ -120,21 +128,6 @@ named \fIfilename\fR by creating a file named \fIfilename\fB.lock\fR.
The application is expected to remove its own lock file, as well as The application is expected to remove its own lock file, as well as
stale lock files that were left behind after abnormal termination. stale lock files that were left behind after abnormal termination.
.RE .RE
.IP \fB-M\fR
Show \fBmaster.cf\fR file contents instead of \fBmain.cf\fR
file contents. Use \fB-Mf\fR to fold long lines for human
readability.
If \fIservice ...\fR is specified, only the matching services
will be output. For example, a \fIservice\fR of \fBinet\fR
will match all services that listen on the network.
Specify zero or more arguments, each with a \fIservice-type\fR
name (\fBinet\fR, \fBunix\fR, \fBfifo\fR, or \fBpass\fR)
or with a \fIservice-name.service-type\fR pair, where
\fIservice-name\fR is the first field of a master.cf entry.
This feature is available with Postfix 2.9 and later.
.IP \fB-m\fR .IP \fB-m\fR
List the names of all supported lookup table types. In Postfix List the names of all supported lookup table types. In Postfix
configuration files, configuration files,
@ -201,7 +194,7 @@ Perform lookups using a simple request-reply protocol that is
described in \fBtcp_table\fR(5). described in \fBtcp_table\fR(5).
.IP "\fBtexthash\fR (read-only)" .IP "\fBtexthash\fR (read-only)"
Produces similar results as hash: files, except that you don't Produces similar results as hash: files, except that you don't
need to run the postmap(1) command before you can use the file, need to run the \fBpostmap\fR(1) command before you can use the file,
and that it does not detect changes after the file is read. and that it does not detect changes after the file is read.
.IP "\fBunix\fR (read-only)" .IP "\fBunix\fR (read-only)"
A limited way to query the UNIX authentication database. The A limited way to query the UNIX authentication database. The
@ -217,29 +210,52 @@ The result is a group file entry in \fBgroup\fR(5) format.
.RE .RE
.IP .IP
Other table types may exist depending on how Postfix was built. Other table types may exist depending on how Postfix was built.
.IP \fB-M\fR
Show \fBmaster.cf\fR file contents instead of \fBmain.cf\fR
file contents.
Specify \fB-Mf\fR to fold long lines for human readability.
If \fIservice ...\fR is specified, only the matching services
will be output. For example, "\fBpostconf -Mf inet\fR"
will match all services that listen on the network.
Specify zero or more arguments, each with a \fIservice-type\fR
name (\fBinet\fR, \fBunix\fR, \fBfifo\fR, or \fBpass\fR)
or with a \fIservice-name.service-type\fR pair, where
\fIservice-name\fR is the first field of a master.cf entry.
This feature is available with Postfix 2.9 and later.
.IP \fB-n\fR .IP \fB-n\fR
Print \fBmain.cf\fR parameter settings that are explicitly Print \fBmain.cf\fR parameter settings that are explicitly
specified in \fBmain.cf\fR. specified in \fBmain.cf\fR.
Specify \fB-nf\fR to fold long lines for human readability
(Postfix 2.9 and later).
.IP "\fB-t\fR [\fItemplate_file\fR]" .IP "\fB-t\fR [\fItemplate_file\fR]"
Display the templates for delivery status notification (DSN) Display the templates for text that appears at the beginning
messages. To override the built-in templates, specify a of delivery status notification (DSN) messages, without
template file at the end of the command line, or specify a expanding $\fBname\fR expressions.
template file in \fBmain.cf\fR with the \fBbounce_template_file\fR
parameter. To force selection of the built-in templates, To override the built-in templates, specify a template file
specify an empty template file name (in shell language: name at the end of the \fBpostconf\fR(1) command line, or
""). specify a file name in \fBmain.cf\fR with the
\fBbounce_template_file\fR parameter.
To force selection of the built-in templates, specify an
empty template file name on the \fBpostconf\fR(1) command
line (in shell language: "").
This feature is available with Postfix 2.3 and later. This feature is available with Postfix 2.3 and later.
.IP \fB-v\fR .IP \fB-v\fR
Enable verbose logging for debugging purposes. Multiple \fB-v\fR Enable verbose logging for debugging purposes. Multiple \fB-v\fR
options make the software increasingly verbose. options make the software increasingly verbose.
.IP \fB-#\fR .IP \fB-#\fR
Edit the \fBmain.cf\fR configuration file. The file is copied Edit the \fBmain.cf\fR configuration file, and comment out
to a temporary file then renamed into place. The parameters the specified parameters so that they revert to their default
specified on the command line are commented-out, so that they values. The file is copied to a temporary file then renamed
revert to their default values. Specify a list of parameter into place.
names, not name=value pairs. There is no \fBpostconf\fR command Specify a list of parameter names, not \fIname\fR=\fIvalue\fR
to perform the reverse operation. pairs. There is no \fBpostconf\fR(1) command to perform
the reverse operation.
This feature is available with Postfix 2.6 and later. This feature is available with Postfix 2.6 and later.
.SH DIAGNOSTICS .SH DIAGNOSTICS
@ -272,6 +288,7 @@ Pathname of a configuration file with bounce message templates.
.na .na
.nf .nf
/etc/postfix/main.cf, Postfix configuration parameters /etc/postfix/main.cf, Postfix configuration parameters
/etc/postfix/master.cf, Postfix master daemon configuraton
.SH "SEE ALSO" .SH "SEE ALSO"
.na .na
.nf .nf

View File

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

View File

@ -37,11 +37,6 @@
/* about the Postfix mail system. /* about the Postfix mail system.
/* /*
/* Options: /* Options:
/* .IP \fB-A\fR
/* List the available SASL client plug-in types. The SASL
/* plug-in type is selected with the \fBsmtp_sasl_type\fR or
/* \fBlmtp_sasl_type\fR configuration parameters by specifying
/* one of the names listed below.
/* .IP \fB-a\fR /* .IP \fB-a\fR
/* List the available SASL server plug-in types. The SASL /* List the available SASL server plug-in types. The SASL
/* plug-in type is selected with the \fBsmtpd_sasl_type\fR /* plug-in type is selected with the \fBsmtpd_sasl_type\fR
@ -58,6 +53,11 @@
/* .RE /* .RE
/* .IP /* .IP
/* This feature is available with Postfix 2.3 and later. /* This feature is available with Postfix 2.3 and later.
/* .IP \fB-A\fR
/* List the available SASL client plug-in types. The SASL
/* plug-in type is selected with the \fBsmtp_sasl_type\fR or
/* \fBlmtp_sasl_type\fR configuration parameters by specifying
/* one of the names listed below.
/* .RS /* .RS
/* .IP \fBcyrus\fR /* .IP \fBcyrus\fR
/* This client plug-in is available when Postfix is built with /* This client plug-in is available when Postfix is built with
@ -68,12 +68,17 @@
/* .IP "\fB-b\fR [\fItemplate_file\fR]" /* .IP "\fB-b\fR [\fItemplate_file\fR]"
/* Display the message text that appears at the beginning of /* Display the message text that appears at the beginning of
/* delivery status notification (DSN) messages, with $\fBname\fR /* delivery status notification (DSN) messages, with $\fBname\fR
/* expressions replaced by actual values. To override the /* expressions replaced by actual values as described in
/* built-in message text, specify a template file at the end /* \fBbounce\fR(5).
/* of the command line, or specify a template file in \fBmain.cf\fR /*
/* with the \fBbounce_template_file\fR parameter. /* To override the built-in templates, specify a template file
/* To force selection of the built-in message text templates, /* name at the end of the \fBpostconf\fR(1) command line, or
/* specify an empty template file name (in shell language: ""). /* specify a file name in \fBmain.cf\fR with the
/* \fBbounce_template_file\fR parameter.
/*
/* To force selection of the built-in templates, specify an
/* empty template file name on the \fBpostconf\fR(1) command
/* line (in shell language: "").
/* /*
/* This feature is available with Postfix 2.3 and later. /* This feature is available with Postfix 2.3 and later.
/* .IP "\fB-c \fIconfig_dir\fR" /* .IP "\fB-c \fIconfig_dir\fR"
@ -82,22 +87,25 @@
/* .IP \fB-d\fR /* .IP \fB-d\fR
/* Print \fBmain.cf\fR default parameter settings instead of /* Print \fBmain.cf\fR default parameter settings instead of
/* actual settings. /* actual settings.
/* Specify \fB-df\fR to fold long lines for human readability
/* (Postfix 2.9 and later).
/* .IP \fB-e\fR /* .IP \fB-e\fR
/* Edit the \fBmain.cf\fR configuration file. The file is copied /* Edit the \fBmain.cf\fR configuration file, and update
/* to a temporary file then renamed into place. Parameters and /* parameter settings with the "\fIname\fR=\fIvalue\fR" pairs
/* values are specified on the command line. Use quotes in order /* on the \fBpostconf\fR(1) command line. The file is copied
/* to protect shell metacharacters and whitespace. /* to a temporary file then renamed into place.
/* Specify quotes to protect shell metacharacters and whitespace.
/* /*
/* With Postfix version 2.8 and later, the \fB-e\fR is no /* The \fB-e\fR is no longer needed with Postfix version 2.8
/* longer needed. /* and later.
/* .IP \fB-f\fR /* .IP \fB-f\fR
/* When printing \fBmain.cf\fR or \fBmaster.cf\fR configuration file /* Fold long lines when printing \fBmain.cf\fR or \fBmaster.cf\fR
/* entries, fold long lines for human readability. /* configuration file entries, for human readability.
/* /*
/* This feature is available with Postfix 2.9 and later. /* This feature is available with Postfix 2.9 and later.
/* .IP \fB-h\fR /* .IP \fB-h\fR
/* Show \fBmain.cf\fR parameter values only; do not prepend /* Show \fBmain.cf\fR parameter values without the "\fIname\fR
/* the "\fIname = \fR" label that normally precedes the value. /* = " label that normally precedes the value.
/* .IP \fB-l\fR /* .IP \fB-l\fR
/* List the names of all supported mailbox locking methods. /* List the names of all supported mailbox locking methods.
/* Postfix supports the following methods: /* Postfix supports the following methods:
@ -114,21 +122,6 @@
/* The application is expected to remove its own lock file, as well as /* The application is expected to remove its own lock file, as well as
/* stale lock files that were left behind after abnormal termination. /* stale lock files that were left behind after abnormal termination.
/* .RE /* .RE
/* .IP \fB-M\fR
/* Show \fBmaster.cf\fR file contents instead of \fBmain.cf\fR
/* file contents. Use \fB-Mf\fR to fold long lines for human
/* readability.
/*
/* If \fIservice ...\fR is specified, only the matching services
/* will be output. For example, a \fIservice\fR of \fBinet\fR
/* will match all services that listen on the network.
/*
/* Specify zero or more arguments, each with a \fIservice-type\fR
/* name (\fBinet\fR, \fBunix\fR, \fBfifo\fR, or \fBpass\fR)
/* or with a \fIservice-name.service-type\fR pair, where
/* \fIservice-name\fR is the first field of a master.cf entry.
/*
/* This feature is available with Postfix 2.9 and later.
/* .IP \fB-m\fR /* .IP \fB-m\fR
/* List the names of all supported lookup table types. In Postfix /* List the names of all supported lookup table types. In Postfix
/* configuration files, /* configuration files,
@ -195,7 +188,7 @@
/* described in \fBtcp_table\fR(5). /* described in \fBtcp_table\fR(5).
/* .IP "\fBtexthash\fR (read-only)" /* .IP "\fBtexthash\fR (read-only)"
/* Produces similar results as hash: files, except that you don't /* Produces similar results as hash: files, except that you don't
/* need to run the postmap(1) command before you can use the file, /* need to run the \fBpostmap\fR(1) command before you can use the file,
/* and that it does not detect changes after the file is read. /* and that it does not detect changes after the file is read.
/* .IP "\fBunix\fR (read-only)" /* .IP "\fBunix\fR (read-only)"
/* A limited way to query the UNIX authentication database. The /* A limited way to query the UNIX authentication database. The
@ -211,29 +204,52 @@
/* .RE /* .RE
/* .IP /* .IP
/* Other table types may exist depending on how Postfix was built. /* Other table types may exist depending on how Postfix was built.
/* .IP \fB-M\fR
/* Show \fBmaster.cf\fR file contents instead of \fBmain.cf\fR
/* file contents.
/* Specify \fB-Mf\fR to fold long lines for human readability.
/*
/* If \fIservice ...\fR is specified, only the matching services
/* will be output. For example, "\fBpostconf -Mf inet\fR"
/* will match all services that listen on the network.
/*
/* Specify zero or more arguments, each with a \fIservice-type\fR
/* name (\fBinet\fR, \fBunix\fR, \fBfifo\fR, or \fBpass\fR)
/* or with a \fIservice-name.service-type\fR pair, where
/* \fIservice-name\fR is the first field of a master.cf entry.
/*
/* This feature is available with Postfix 2.9 and later.
/* .IP \fB-n\fR /* .IP \fB-n\fR
/* Print \fBmain.cf\fR parameter settings that are explicitly /* Print \fBmain.cf\fR parameter settings that are explicitly
/* specified in \fBmain.cf\fR. /* specified in \fBmain.cf\fR.
/* Specify \fB-nf\fR to fold long lines for human readability
/* (Postfix 2.9 and later).
/* .IP "\fB-t\fR [\fItemplate_file\fR]" /* .IP "\fB-t\fR [\fItemplate_file\fR]"
/* Display the templates for delivery status notification (DSN) /* Display the templates for text that appears at the beginning
/* messages. To override the built-in templates, specify a /* of delivery status notification (DSN) messages, without
/* template file at the end of the command line, or specify a /* expanding $\fBname\fR expressions.
/* template file in \fBmain.cf\fR with the \fBbounce_template_file\fR /*
/* parameter. To force selection of the built-in templates, /* To override the built-in templates, specify a template file
/* specify an empty template file name (in shell language: /* name at the end of the \fBpostconf\fR(1) command line, or
/* ""). /* specify a file name in \fBmain.cf\fR with the
/* \fBbounce_template_file\fR parameter.
/*
/* To force selection of the built-in templates, specify an
/* empty template file name on the \fBpostconf\fR(1) command
/* line (in shell language: "").
/* /*
/* This feature is available with Postfix 2.3 and later. /* This feature is available with Postfix 2.3 and later.
/* .IP \fB-v\fR /* .IP \fB-v\fR
/* Enable verbose logging for debugging purposes. Multiple \fB-v\fR /* Enable verbose logging for debugging purposes. Multiple \fB-v\fR
/* options make the software increasingly verbose. /* options make the software increasingly verbose.
/* .IP \fB-#\fR /* .IP \fB-#\fR
/* Edit the \fBmain.cf\fR configuration file. The file is copied /* Edit the \fBmain.cf\fR configuration file, and comment out
/* to a temporary file then renamed into place. The parameters /* the specified parameters so that they revert to their default
/* specified on the command line are commented-out, so that they /* values. The file is copied to a temporary file then renamed
/* revert to their default values. Specify a list of parameter /* into place.
/* names, not name=value pairs. There is no \fBpostconf\fR command /* Specify a list of parameter names, not \fIname\fR=\fIvalue\fR
/* to perform the reverse operation. /* pairs. There is no \fBpostconf\fR(1) command to perform
/* the reverse operation.
/* /*
/* This feature is available with Postfix 2.6 and later. /* This feature is available with Postfix 2.6 and later.
/* DIAGNOSTICS /* DIAGNOSTICS
@ -258,6 +274,7 @@
/* Pathname of a configuration file with bounce message templates. /* Pathname of a configuration file with bounce message templates.
/* FILES /* FILES
/* /etc/postfix/main.cf, Postfix configuration parameters /* /etc/postfix/main.cf, Postfix configuration parameters
/* /etc/postfix/master.cf, Postfix master daemon configuraton
/* SEE ALSO /* SEE ALSO
/* bounce(5), bounce template file format /* bounce(5), bounce template file format
/* master(5), master.cf configuration file syntax /* master(5), master.cf configuration file syntax
@ -355,28 +372,33 @@
#define FOLD_LINE (1<<11) /* fold long *.cf entries */ #define FOLD_LINE (1<<11) /* fold long *.cf entries */
/* /*
* Lookup table for global parameter info. * Lookup table for global "valid" parameter information.
* *
* XXX Change the value pointers from table indices into pointers to parameter * XXX Change the hash-table values from table indices to parameter object
* objects with print methods. * pointers, where each object supplies its own print etc. method.
*/ */
HTABLE *param_table; HTABLE *param_table;
/* /*
* Global restriction_classes hash. * Global hash with all names in the global smtpd_restriction_classes value.
* This is used when validating "-o user-defined-name=value" in master.cf.
*/ */
HTABLE *rest_class_table; HTABLE *rest_class_table;
/* /*
* Lookup table for master.cf info. The table is null-terminated. * In-core information for one master.cf entry.
*/ */
typedef struct { typedef struct {
char *name_space; /* service.type, parameter name space */ char *name_space; /* service.type, parameter name space */
ARGV *argv; /* terminator, or master.cf fields */ ARGV *argv; /* null, or master.cf fields */
DICT *all_params; /* all name=value entries */ DICT *all_params; /* null, or all name=value entries */
HTABLE *valid_names; /* "blessed" parameters */ HTABLE *valid_names; /* null, or "valid" parameter names */
} PC_MASTER_ENT; } PC_MASTER_ENT;
/*
* Lookup table for master.cf entries. The table is terminated with an entry
* that has a null argv member.
*/
static PC_MASTER_ENT *master_table; static PC_MASTER_ENT *master_table;
/* /*
@ -452,8 +474,10 @@ typedef struct {
/* /*
* Service-defined parameter names are created by appending postfix-defined * Service-defined parameter names are created by appending postfix-defined
* suffixes to master.cf service names. These parameters have default values * suffixes to master.cf service names. All service-defined parameters have
* that are defined by built-in parameters. * default values that are defined by built-in parameters. We represent
* service-defined parameters as (service-defined name, built-in default
* parameter name) tuples.
*/ */
static PC_STRING_NV *serv_param_table; static PC_STRING_NV *serv_param_table;
static ssize_t serv_param_tablen; static ssize_t serv_param_tablen;
@ -461,20 +485,23 @@ static ssize_t serv_param_tablen;
/* /*
* Support for user-defined parameters. * Support for user-defined parameters.
* *
* There are multiple parameter name spaces: the global main.cf parameter name
* space, and the local parameter name space of each master.cf entry. Local
* name spaces take precedence over the global one.
*
* There are three categories of known parameters: built-in, service-defined * There are three categories of known parameters: built-in, service-defined
* (see previous comment), and valid user-defined. In addition there are * (see previous comment), and valid user-defined.
* multiple name spaces: the global main.cf name space, and the local name
* space of each master.cf entry.
* *
* There are two categories of valid user-defined parameters: * There are two categories of valid user-defined parameters:
* *
* - Parameters whose user-defined-name appears in the value of * - Parameters whose user-defined-name appears in the value of
* smtpd_restriction_classes in main.cf or master.cf, and that have a * smtpd_restriction_classes in main.cf or master.cf.
* "user-defined-name=value" entry in main.cf or master.cf.
* *
* - Parameters whose $user-defined-name appears in the value of a "name=value" * - Parameters whose $user-defined-name appear in the value of "name=value"
* entry in main.cf or master.cf, and whose user-defined-name has a * entries in main.cf or master.cf.
* "name=value" entry in main.cf or master.cf. *
* - 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 parameters are flagged as "unused".
*/ */
@ -995,41 +1022,44 @@ static void add_service_parameters(void)
htable_enter(param_table, sp->name, (char *) sp); htable_enter(param_table, sp->name, (char *) sp);
} }
/* scan_user_parameter_value - examine macro names in parameter value */
#define NO_SCAN_RESULT ((VSTRING *) 0) #define NO_SCAN_RESULT ((VSTRING *) 0)
#define NO_SCAN_FILTER ((char *) 0) #define NO_SCAN_FILTER ((char *) 0)
#define NO_SCAN_MODE (0) #define NO_SCAN_MODE (0)
#define scan_user_parameter_value(value, context) do { \ /* SCAN_USER_PARAMETER_VALUE - examine macro names in parameter value */
#define SCAN_USER_PARAMETER_VALUE(value, scope) do { \
(void) mac_expand(NO_SCAN_RESULT, (value), MAC_EXP_FLAG_SCAN, \ (void) mac_expand(NO_SCAN_RESULT, (value), MAC_EXP_FLAG_SCAN, \
NO_SCAN_FILTER, check_user_parameter, (context)); \ NO_SCAN_FILTER, flag_user_parameter, ((char *) (scope))); \
} while (0) } while (0)
/* check_user_parameter - promote user-defined name if it has name=value */ /* FLAG_USER_PARAMETER - flag user-defined name "valid" if it has name=value */
static const char *check_user_parameter(const char *mac_name, #define FLAG_USER_PARAMETER(name, scope) do { \
flag_user_parameter((name), NO_SCAN_MODE, ((char *) (scope))); \
} while (0)
/* flag_user_parameter - flag user-defined name "valid" if it has name=value */
static const char *flag_user_parameter(const char *mac_name,
int unused_mode, int unused_mode,
char *context) char *context)
{ {
PC_MASTER_ENT *local_scope = (PC_MASTER_ENT *) context; PC_MASTER_ENT *local_scope = (PC_MASTER_ENT *) context;
/* /*
* Promote only user-defined parameters with an explicit "name=value" * If the name=value exists in the local (or global) name space, update
* definition. If the name=value exists in the local scope, update the * the local (or global) "valid" parameter name table.
* local "valid" parameter name table, otherwise update the global one.
* *
* Do not promote user-defined parameters whose name appears only as macro * Do not "validate" user-defined parameters whose name appears only as
* expansion; this is how Postfix implements backwards compatibility * macro expansion; this is how Postfix historically implements backwards
* after a feature name change. * compatibility after a feature name change.
*
* Skip global names that are already in the param_table hash.
*/ */
if (local_scope && dict_get(local_scope->all_params, mac_name)) { if (local_scope && dict_get(local_scope->all_params, mac_name)) {
if (htable_locate(local_scope->valid_names, mac_name) == 0) if (htable_locate(local_scope->valid_names, mac_name) == 0)
htable_enter(local_scope->valid_names, mac_name, ""); htable_enter(local_scope->valid_names, mac_name, "");
} else if (htable_locate(param_table, mac_name) == 0) { } else if (mail_conf_lookup(mac_name) != 0) {
if (mail_conf_lookup(mac_name) != 0) { if (htable_locate(param_table, mac_name) == 0) {
user_param_table = (char **) user_param_table = (char **)
myrealloc((char *) user_param_table, myrealloc((char *) user_param_table,
(user_param_tablen + 1) * sizeof(*user_param_table)); (user_param_tablen + 1) * sizeof(*user_param_table));
@ -1069,10 +1099,10 @@ static void scan_user_parameter_namespace(const char *dict_name,
const char *cparam_value; const char *cparam_value;
/* /*
* Add parameters whose names are defined with smtpd_restriction_classes, * Flag parameter names in smtpd_restriction_classes as "valid", but only
* but only if they have a "name=value" entry. If we are in the global * if they have a "name=value" entry. If we are in not in a local name
* scope, update the global restriction class name table, so that we can * space, update the global restriction class name table, so that we can
* query the table from within a local master.cf name space. * query the global table from within a local master.cf name space.
*/ */
if ((class_list = pc_lookup_eval(dict_name, VAR_REST_CLASSES)) != 0) { if ((class_list = pc_lookup_eval(dict_name, VAR_REST_CLASSES)) != 0) {
cp = saved_class_list = mystrdup(class_list); cp = saved_class_list = mystrdup(class_list);
@ -1080,18 +1110,17 @@ static void scan_user_parameter_namespace(const char *dict_name,
if (local_scope == 0 if (local_scope == 0
&& htable_locate(rest_class_table, param_name) == 0) && htable_locate(rest_class_table, param_name) == 0)
htable_enter(rest_class_table, param_name, ""); htable_enter(rest_class_table, param_name, "");
check_user_parameter(param_name, NO_SCAN_MODE, FLAG_USER_PARAMETER(param_name, local_scope);
(char *) local_scope);
} }
myfree(saved_class_list); myfree(saved_class_list);
} }
/* /*
* For all "name=value" instances: a) if the scope is local and the name * For all "name=value" instances: a) if the name space is local and the
* appears in the global restriction class table, flag the name as * name appears in the global restriction class table, flag the name as
* "valid" in the local scope; b) scan the value for macro expansions of * "valid" in the local name space; b) scan the value for macro
* unknown parameter names, and flag those parameter names as "valid" if * expansions of unknown parameter names, and flag those parameter names
* they have a "name=value" entry. * as "valid" if they have a "name=value" entry.
*/ */
if ((dict = dict_handle(dict_name)) == 0) if ((dict = dict_handle(dict_name)) == 0)
msg_panic("%s: parameter dictionary %s not found", msg_panic("%s: parameter dictionary %s not found",
@ -1106,7 +1135,7 @@ static void scan_user_parameter_namespace(const char *dict_name,
&& htable_locate(local_scope->valid_names, cparam_name) == 0 && htable_locate(local_scope->valid_names, cparam_name) == 0
&& htable_locate(rest_class_table, cparam_name) != 0) && htable_locate(rest_class_table, cparam_name) != 0)
htable_enter(local_scope->valid_names, cparam_name, ""); htable_enter(local_scope->valid_names, cparam_name, "");
scan_user_parameter_value(cparam_value, (char *) local_scope); SCAN_USER_PARAMETER_VALUE(cparam_value, local_scope);
} }
} }