]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.9-20111121
authorWietse Venema <wietse@porcupine.org>
Mon, 21 Nov 2011 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:37:38 +0000 (06:37 +0000)
postfix/HISTORY
postfix/RELEASE_NOTES
postfix/html/postconf.1.html
postfix/man/man1/postconf.1
postfix/src/global/mail_version.h
postfix/src/postconf/postconf.c

index 1febd671563b6b98de27b211ec32fe41189d32e0..d38c6ca8ad9df08faa3c64b9718b853d4078ff67 100644 (file)
@@ -17119,3 +17119,7 @@ Apologies for any names omitted.
        "name=value" entries that are unused because they are hidden
        by master.cf "-o name=value" entries with the same parameter
        name.  File: postconf/postconf.c.
+
+20111121
+
+       Cleanup: documentation fixes. File: postconf/postconf.c.
index 2b03dba0b018eb0a2c9d245cbeede525f2defa0b..80a2747b4de6dd8d3482f54978e990b2e4d93d1d 100644 (file)
@@ -20,7 +20,9 @@ Major changes with snapshot 20111120
 Eliminated the postconf limitation documented on 20111113 as "lack
 of support for per-service parameter name spaces in master.cf,
 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
 ====================================
@@ -51,7 +53,7 @@ always results in an "unused parameter" warning.
 
 This completes an effort that expanded postconf.c by 553 lines of
 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
 ====================================
index b966b6a6241c60499011e44a9ac4b6a62c31ad43..712e9f0dad9e40554df6bab11ad776a91c2f6dcd 100644 (file)
@@ -40,12 +40,6 @@ POSTCONF(1)                                                        POSTCONF(1)
 
        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
               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-
@@ -62,6 +56,12 @@ POSTCONF(1)                                                        POSTCONF(1)
               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.
 
@@ -72,44 +72,47 @@ POSTCONF(1)                                                        POSTCONF(1)
               Display the message text that appears at the begin-
               ning  of  delivery  status  notification (DSN) mes-
               sages, with $<b>name</b> expressions  replaced  by  actual
-              values.   To  override  the  built-in message text,
-              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: "").
+              values as described in <a href="bounce.5.html"><b>bounce</b>(5)</a>.
 
-              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.
 
        <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>-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
-              copied to a temporary file then renamed into place.
-              Parameters  and values are specified on the command
-              line.  Use  quotes  in  order  to   protect   shell
-              metacharacters and whitespace.
+       <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
+              quotes  to  protect shell metacharacters and white-
+              space.
 
-              With  Postfix  version  2.8 and later, the <b>-e</b> is no
-              longer needed.
+              The <b>-e</b> is no longer needed with Postfix version 2.8
+              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
-              file  entries,  fold long lines for human readabil-
-              ity.
+       <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 only; do not prepend
-              the "<i>name =</i> "  label  that  normally  precedes  the
-              value.
+       <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
               methods.  Postfix supports the following methods:
@@ -130,40 +133,23 @@ POSTCONF(1)                                                        POSTCONF(1)
                      lock file, as well as stale lock files  that
                      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.
-              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
@@ -172,12 +158,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>
@@ -185,105 +171,129 @@ 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">postmap(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
+              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-
-              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>]
-              Display the templates for delivery status notifica-
-              tion (DSN) messages. To override the built-in  tem-
-              plates,  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  templates,  specify  an
-              empty template file name (in shell language: "").
+              Display  the templates for text that appears at the
+              beginning of  delivery  status  notification  (DSN)
+              messages, without expanding $<b>name</b> expressions.
 
-              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.
 
        <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.  The  file  is
-              copied to a temporary file then renamed into place.
-              The parameters specified on the  command  line  are
-              commented-out, so that they revert to their default
-              values. Specify a  list  of  parameter  names,  not
-              name=value  pairs.  There is no <b>postconf</b> command to
-              perform the reverse operation.
+       <b>-#</b>     Edit  the  <a href="postconf.5.html"><b>main.cf</b></a>  configuration file, and comment
+              out the specified parameters so that they revert to
+              their default values.  The file is copied to a tem-
+              porary 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 operation.
 
-              This feature is  available  with  Postfix  2.6  and
+              This  feature  is  available  with  Postfix 2.6 and
               later.
 
 <b>DIAGNOSTICS</b>
@@ -294,22 +304,23 @@ 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>
        /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>
        <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
 
 <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>
index fbcf98f69ec839d12f4eb9219e4353df429aa7ac..941b7daf6fd37fe905177d25541c561af2e6458f 100644 (file)
@@ -43,11 +43,6 @@ parameter values, or display other configuration information
 about the Postfix mail system.
 
 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
 List the available SASL server plug-in types.  The SASL
 plug-in type is selected with the \fBsmtpd_sasl_type\fR
@@ -64,6 +59,11 @@ support.
 .RE
 .IP
 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
 .IP \fBcyrus\fR
 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]"
 Display the message text that appears at the beginning of
 delivery status notification (DSN) messages, with $\fBname\fR
-expressions replaced by actual values.  To override the
-built-in message text, specify a template file at the end
-of the command line, or specify a template file in \fBmain.cf\fR
-with the \fBbounce_template_file\fR parameter.
-To force selection of the built-in message text templates,
-specify an empty template file name (in shell language: "").
+expressions replaced by actual values as described in
+\fBbounce\fR(5).
+
+To override the built-in templates, specify a template file
+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.
 .IP "\fB-c \fIconfig_dir\fR"
@@ -88,22 +93,25 @@ instead of the default configuration directory.
 .IP \fB-d\fR
 Print \fBmain.cf\fR default parameter settings instead of
 actual settings.
+Specify \fB-df\fR to fold long lines for human readability
+(Postfix 2.9 and later).
 .IP \fB-e\fR
-Edit the \fBmain.cf\fR configuration file. The file is copied
-to a temporary file then renamed into place. Parameters and
-values are specified on the command line. Use quotes in order
-to protect shell metacharacters and whitespace.
+Edit the \fBmain.cf\fR configuration file, and update
+parameter settings with the "\fIname\fR=\fIvalue\fR" pairs
+on the \fBpostconf\fR(1) command line. The file is copied
+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
-longer needed.
+The \fB-e\fR is no longer needed with Postfix version 2.8
+and later.
 .IP \fB-f\fR
-When printing \fBmain.cf\fR or \fBmaster.cf\fR configuration file
-entries, fold long lines for human readability.
+Fold long lines when printing \fBmain.cf\fR or \fBmaster.cf\fR
+configuration file entries, for human readability.
 
 This feature is available with Postfix 2.9 and later.
 .IP \fB-h\fR
-Show \fBmain.cf\fR parameter values only; do not prepend
-the "\fIname = \fR" label that normally precedes the value.
+Show \fBmain.cf\fR parameter values without the "\fIname\fR
+" label that normally precedes the value.
 .IP \fB-l\fR
 List the names of all supported mailbox locking 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
 stale lock files that were left behind after abnormal termination.
 .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
 List the names of all supported lookup table types. In Postfix
 configuration files,
@@ -201,7 +194,7 @@ Perform lookups using a simple request-reply protocol that is
 described in \fBtcp_table\fR(5).
 .IP "\fBtexthash\fR (read-only)"
 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.
 .IP "\fBunix\fR (read-only)"
 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
 .IP
 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
 Print \fBmain.cf\fR parameter settings that are explicitly
 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]"
-Display the templates for delivery status notification (DSN)
-messages. To override the built-in templates, specify a
-template file at the end of the command line, or specify a
-template file 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 (in shell language:
-"").
+Display the templates for text that appears at the beginning
+of delivery status notification (DSN) messages, without
+expanding $\fBname\fR expressions.
+
+To override the built-in templates, specify a template file
+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.
 .IP \fB-v\fR
 Enable verbose logging for debugging purposes. Multiple \fB-v\fR
 options make the software increasingly verbose.
 .IP \fB-#\fR
-Edit the \fBmain.cf\fR configuration file. The file is copied
-to a temporary file then renamed into place. The parameters
-specified on the command line are commented-out, so that they
-revert to their default values. Specify a list of parameter
-names, not name=value pairs.  There is no \fBpostconf\fR command
-to perform the reverse operation.
+Edit the \fBmain.cf\fR configuration file, and comment out
+the specified parameters so that they revert to their default
+values.  The file is copied to a temporary file then renamed
+into place.
+Specify a list of parameter names, not \fIname\fR=\fIvalue\fR
+pairs.  There is no \fBpostconf\fR(1) command to perform
+the reverse operation.
 
 This feature is available with Postfix 2.6 and later.
 .SH DIAGNOSTICS
@@ -272,6 +288,7 @@ Pathname of a configuration file with bounce message templates.
 .na
 .nf
 /etc/postfix/main.cf, Postfix configuration parameters
+/etc/postfix/master.cf, Postfix master daemon configuraton
 .SH "SEE ALSO"
 .na
 .nf
index 07aee6e5dca8b4aac7cfd569e3c89c115c64e77f..da402c90313af622cfe6dede2fd229e76a21700c 100644 (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      "20111120"
+#define MAIL_RELEASE_DATE      "20111121"
 #define MAIL_VERSION_NUMBER    "2.9"
 
 #ifdef SNAPSHOT
index 6c8108db2ac59958672364d4c34d65f5dd1610b5..a786a1ee1143de1982d1bf7ac85d9817fab407f2 100644 (file)
 /*     about the Postfix mail system.
 /*
 /*     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
 /*     List the available SASL server plug-in types.  The SASL
 /*     plug-in type is selected with the \fBsmtpd_sasl_type\fR
 /* .RE
 /* .IP
 /*     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
 /* .IP \fBcyrus\fR
 /*     This client plug-in is available when Postfix is built with
 /* .IP "\fB-b\fR [\fItemplate_file\fR]"
 /*     Display the message text that appears at the beginning of
 /*     delivery status notification (DSN) messages, with $\fBname\fR
-/*     expressions replaced by actual values.  To override the
-/*     built-in message text, specify a template file at the end
-/*     of the command line, or specify a template file in \fBmain.cf\fR
-/*     with the \fBbounce_template_file\fR parameter.
-/*     To force selection of the built-in message text templates,
-/*     specify an empty template file name (in shell language: "").
+/*     expressions replaced by actual values as described in
+/*     \fBbounce\fR(5).  
+/*
+/*     To override the built-in templates, specify a template file
+/*     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.
 /* .IP "\fB-c \fIconfig_dir\fR"
 /* .IP \fB-d\fR
 /*     Print \fBmain.cf\fR default parameter settings instead of
 /*     actual settings.
+/*     Specify \fB-df\fR to fold long lines for human readability
+/*     (Postfix 2.9 and later).
 /* .IP \fB-e\fR
-/*     Edit the \fBmain.cf\fR configuration file. The file is copied
-/*     to a temporary file then renamed into place. Parameters and
-/*     values are specified on the command line. Use quotes in order
-/*     to protect shell metacharacters and whitespace.
+/*     Edit the \fBmain.cf\fR configuration file, and update
+/*     parameter settings with the "\fIname\fR=\fIvalue\fR" pairs
+/*     on the \fBpostconf\fR(1) command line. The file is copied
+/*     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
-/*     longer needed.
+/*     The \fB-e\fR is no longer needed with Postfix version 2.8
+/*     and later.
 /* .IP \fB-f\fR
-/*     When printing \fBmain.cf\fR or \fBmaster.cf\fR configuration file
-/*     entries, fold long lines for human readability.
+/*     Fold long lines when printing \fBmain.cf\fR or \fBmaster.cf\fR
+/*     configuration file entries, for human readability.
 /*
 /*     This feature is available with Postfix 2.9 and later.
 /* .IP \fB-h\fR
-/*     Show \fBmain.cf\fR parameter values only; do not prepend
-/*     the "\fIname = \fR" label that normally precedes the value.
+/*     Show \fBmain.cf\fR parameter values without the "\fIname\fR
+/*     " label that normally precedes the value.
 /* .IP \fB-l\fR
 /*     List the names of all supported mailbox locking methods.
 /*     Postfix supports the following methods:
 /*     The application is expected to remove its own lock file, as well as
 /*     stale lock files that were left behind after abnormal termination.
 /* .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
 /*     List the names of all supported lookup table types. In Postfix
 /*     configuration files,
 /*     described in \fBtcp_table\fR(5).
 /* .IP "\fBtexthash\fR (read-only)"
 /*     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.
 /* .IP "\fBunix\fR (read-only)"
 /*     A limited way to query the UNIX authentication database. The
 /* .RE
 /* .IP
 /*     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
 /*     Print \fBmain.cf\fR parameter settings that are explicitly
 /*     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]"
-/*     Display the templates for delivery status notification (DSN)
-/*     messages. To override the built-in templates, specify a
-/*     template file at the end of the command line, or specify a
-/*     template file 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 (in shell language:
-/*     "").
+/*     Display the templates for text that appears at the beginning
+/*     of delivery status notification (DSN) messages, without
+/*     expanding $\fBname\fR expressions.
+/*
+/*     To override the built-in templates, specify a template file
+/*     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.
 /* .IP \fB-v\fR
 /*     Enable verbose logging for debugging purposes. Multiple \fB-v\fR
 /*     options make the software increasingly verbose.
 /* .IP \fB-#\fR
-/*     Edit the \fBmain.cf\fR configuration file. The file is copied
-/*     to a temporary file then renamed into place. The parameters
-/*     specified on the command line are commented-out, so that they
-/*     revert to their default values. Specify a list of parameter
-/*     names, not name=value pairs.  There is no \fBpostconf\fR command
-/*     to perform the reverse operation.
+/*     Edit the \fBmain.cf\fR configuration file, and comment out
+/*     the specified parameters so that they revert to their default
+/*     values.  The file is copied to a temporary file then renamed
+/*     into place.
+/*     Specify a list of parameter names, not \fIname\fR=\fIvalue\fR
+/*     pairs.  There is no \fBpostconf\fR(1) command to perform
+/*     the reverse operation.
 /*
 /*     This feature is available with Postfix 2.6 and later.
 /* DIAGNOSTICS
 /*     Pathname of a configuration file with bounce message templates.
 /* FILES
 /*     /etc/postfix/main.cf, Postfix configuration parameters
+/*     /etc/postfix/master.cf, Postfix master daemon configuraton
 /* SEE ALSO
 /*     bounce(5), bounce template file format
 /*     master(5), master.cf configuration file syntax
 #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
-  * objects with print methods.
+  * XXX Change the hash-table values from table indices to parameter object
+  * pointers, where each object supplies its own print etc. method.
   */
 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;
 
  /*
-  * Lookup table for master.cf info. The table is null-terminated.
+  * In-core information for one master.cf entry.
   */
 typedef struct {
     char   *name_space;                        /* service.type, parameter name space */
-    ARGV   *argv;                      /* terminator, or master.cf fields */
-    DICT   *all_params;                        /* all name=value entries */
-    HTABLE *valid_names;               /* "blessed" parameters */
+    ARGV   *argv;                      /* null, or master.cf fields */
+    DICT   *all_params;                        /* null, or all name=value entries */
+    HTABLE *valid_names;               /* null, or "valid" parameter names */
 } 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;
 
  /*
@@ -452,8 +474,10 @@ typedef struct {
 
  /*
   * Service-defined parameter names are created by appending postfix-defined
-  * suffixes to master.cf service names. These parameters have default values
-  * that are defined by built-in parameters.
+  * suffixes to master.cf service names. All service-defined parameters have
+  * 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 ssize_t serv_param_tablen;
@@ -461,20 +485,23 @@ static ssize_t serv_param_tablen;
  /*
   * 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
-  * (see previous comment), and valid user-defined. In addition there are
-  * multiple name spaces: the global main.cf name space, and the local name
-  * space of each master.cf entry.
+  * (see previous comment), and valid user-defined.
   * 
   * There are two categories of valid user-defined parameters:
   * 
   * - Parameters whose user-defined-name appears in the value of
-  * smtpd_restriction_classes in main.cf or master.cf, and that have a
-  * "user-defined-name=value" entry in main.cf or master.cf.
+  * smtpd_restriction_classes in main.cf or master.cf.
+  * 
+  * - Parameters whose $user-defined-name appear in the value of "name=value"
+  * entries in main.cf or master.cf.
   * 
-  * - Parameters whose $user-defined-name appears in the value of a "name=value"
-  * entry in main.cf or master.cf, and whose user-defined-name has a
-  * "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".
   */
@@ -995,41 +1022,44 @@ static void add_service_parameters(void)
            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_FILTER ((char *) 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, \
-                   NO_SCAN_FILTER, check_user_parameter, (context)); \
+               NO_SCAN_FILTER, flag_user_parameter, ((char *) (scope))); \
+} while (0)
+
+/* FLAG_USER_PARAMETER - flag user-defined name "valid" if it has name=value */
+
+#define FLAG_USER_PARAMETER(name, scope) do { \
+    flag_user_parameter((name), NO_SCAN_MODE, ((char *) (scope))); \
 } 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,
+static const char *flag_user_parameter(const char *mac_name,
                                                int unused_mode,
                                                char *context)
 {
     PC_MASTER_ENT *local_scope = (PC_MASTER_ENT *) context;
 
     /*
-     * Promote only user-defined parameters with an explicit "name=value"
-     * definition. If the name=value exists in the local scope, update the
-     * local "valid" parameter name table, otherwise update the global one.
-     * 
-     * Do not promote user-defined parameters whose name appears only as macro
-     * expansion; this is how Postfix implements backwards compatibility
-     * after a feature name change.
+     * If the name=value exists in the local (or global) name space, update
+     * the local (or global) "valid" parameter name table.
      * 
-     * Skip global names that are already in the param_table hash.
+     * Do not "validate" user-defined parameters whose name appears only as
+     * macro expansion; this is how Postfix historically implements backwards
+     * compatibility after a feature name change.
      */
     if (local_scope && dict_get(local_scope->all_params, mac_name)) {
        if (htable_locate(local_scope->valid_names, mac_name) == 0)
            htable_enter(local_scope->valid_names, mac_name, "");
-    } else if (htable_locate(param_table, mac_name) == 0) {
-       if (mail_conf_lookup(mac_name) != 0) {
+    } else if (mail_conf_lookup(mac_name) != 0) {
+       if (htable_locate(param_table, mac_name) == 0) {
            user_param_table = (char **)
                myrealloc((char *) 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;
 
     /*
-     * Add parameters whose names are defined with smtpd_restriction_classes,
-     * but only if they have a "name=value" entry. If we are in the global
-     * scope, update the global restriction class name table, so that we can
-     * query the table from within a local master.cf name space.
+     * Flag parameter names in smtpd_restriction_classes as "valid", but only
+     * if they have a "name=value" entry. If we are in not in a local name
+     * space, update the global restriction class name table, so that we can
+     * query the global table from within a local master.cf name space.
      */
     if ((class_list = pc_lookup_eval(dict_name, VAR_REST_CLASSES)) != 0) {
        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
                && htable_locate(rest_class_table, param_name) == 0)
                htable_enter(rest_class_table, param_name, "");
-           check_user_parameter(param_name, NO_SCAN_MODE,
-                                (char *) local_scope);
+           FLAG_USER_PARAMETER(param_name, local_scope);
        }
        myfree(saved_class_list);
     }
 
     /*
-     * For all "name=value" instances: a) if the scope is local and the 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
-     * unknown parameter names, and flag those parameter names as "valid" if
-     * they have a "name=value" entry.
+     * For all "name=value" instances: a) if the name space is local and the
+     * name appears in the global restriction class table, flag the name as
+     * "valid" in the local name space; b) scan the value for macro
+     * expansions of unknown parameter names, and flag those parameter names
+     * as "valid" if they have a "name=value" entry.
      */
     if ((dict = dict_handle(dict_name)) == 0)
        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(rest_class_table, cparam_name) != 0)
            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);
     }
 }