]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.4-20060930
authorWietse Venema <wietse@porcupine.org>
Sat, 30 Sep 2006 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:32:36 +0000 (06:32 +0000)
27 files changed:
postfix/HISTORY
postfix/README_FILES/MYSQL_README
postfix/auxiliary/qshape/qshape.pl
postfix/html/MYSQL_README.html
postfix/html/postalias.1.html
postfix/html/postmap.1.html
postfix/html/postsuper.1.html
postfix/html/qshape.1.html
postfix/html/sendmail.1.html
postfix/man/man1/postalias.1
postfix/man/man1/postmap.1
postfix/man/man1/postsuper.1
postfix/man/man1/qshape.1
postfix/man/man1/sendmail.1
postfix/proto/MYSQL_README.html
postfix/src/global/mail_version.h
postfix/src/postalias/postalias.c
postfix/src/postmap/postmap.c
postfix/src/postsuper/postsuper.c
postfix/src/sendmail/sendmail.c
postfix/src/smtp/smtp_proto.c
postfix/src/smtpd/smtpd_peer.c
postfix/src/tls/tls_client.c
postfix/src/util/myaddrinfo.c
postfix/src/util/sock_addr.c
postfix/src/util/sock_addr.h
postfix/src/util/sys_defs.h

index 5a4e44d962bb757534f257ec8a92b2c79ce555bc..2ff259e00a86a014c1c68d864d8cd49880c26785 100644 (file)
@@ -12741,14 +12741,33 @@ Apologies for any names omitted.
 
        Cleanup: record loop detection.  File: global/record.c.
 
+20060929
+
+       Workaround: AIX 5.[1-3] getaddrinfo() creates socket address
+       structures with a non-zero port value. This breaks the
+       smtp_bind_address etc. features, and breaks inet_interfaces
+       settings with only one IP address.  Problem reported by
+       Hamish Marson.  Files: util/sock_addr.[hc], util/myaddrinfo.c.
+
+       Bugfix (introduced with the Postfix TLS patch): memory leak
+       in verify_extract_peer(). The OpenSSL documentation provides
+       no information on how subjectAltNames are managed.  Sam
+       Rushing, ironport.  File: tls/tls_client.c.
+
+       Bugfix (introduced with Postfix 2.2): smtp_generic_maps 
+       turned on MIME conversion. File: smtp/smtp_proto.c.
+
 Wish list:
 
+       Update FILTER_README with mailing list suggestions to tag
+       with a badness indicator and then filter down-stream.
+
        Either document or remove the internal_mail_filter_classes
        feature (it's disabled by default).
 
        Build a command-line test driver for the cleanup engine.
-       This allows us to generate arbitrary record sequences without
-       having to hijack mail from the queue.
+       This allows us to test it with arbitrary record sequences
+       without having to use a live mail queue.
 
        Make null local-part handling configurable: either expand
        into mailer-daemon (current bahavior) or disallow (strict
index 6ebbc234eb636680218c59365758695545839587..403fc736ca06a4991dbb691db296a8529ff3de93 100644 (file)
@@ -35,6 +35,13 @@ mysqlclient library (and libm) to AUXLIBS, for example:
         'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
         'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
 
+On Solaris, use this instead:
+
+    make -f Makefile.init makefiles \
+        'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
+        'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
+            -lmysqlclient -lz -lm'
+
 Then, just run 'make'. This requires libz, the compression library. Older mysql
 implementations build without libz.
 
index 51112656983dc26f1713481067567256848788f4..67d3789847737cea4e64de56181eeac8bb25ffde 100644 (file)
@@ -19,7 +19,7 @@
 #      Postfix queue message distribution in time and by sender domain
 #      or recipient domain. The program needs read access to the queue
 #      directories and queue files, so it must run as the superuser or
-#      the \fBmail_owner\fR specified in \fImain.cf\fR (typically
+#      the \fBmail_owner\fR specified in \fBmain.cf\fR (typically
 #      \fBpostfix\fR).
 #
 #      Options:
@@ -73,8 +73,8 @@
 #      the incoming and active queues. To display a different set of
 #      queues, just list their directory names on the command line.
 #      Absolute paths are used as is, other paths are taken relative
-#      to the \fImain.cf\fR \fBqueue_directory\fR parameter setting.
-#      While \fImain.cf\fR supports the use of \fI$variable\fR expansion
+#      to the \fBmain.cf\fR \fBqueue_directory\fR parameter setting.
+#      While \fBmain.cf\fR supports the use of \fI$variable\fR expansion
 #      in the definition of the \fBqueue_directory\fR parameter, the
 #      \fBqshape\fR program does not. If you must use variable expansions
 #      in the \fBqueue_directory\fR setting, you must specify an explicit
index f243075c20a68171f0da4c12a88e7e62b6797302..933059e5fbaf0664b2c3875706ade04e89ddebdc 100644 (file)
@@ -57,13 +57,24 @@ make -f Makefile.init makefiles \
 </pre>
 </blockquote>
 
+<p> On Solaris, use this instead: </p>
+
+<blockquote>
+<pre>
+make -f Makefile.init makefiles \
+    'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
+    'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
+        -lmysqlclient -lz -lm'
+</pre>
+</blockquote>
+
 <p> Then, just run 'make'. This requires libz, the compression
 library.  Older mysql implementations build without libz. </p>
 
 <h2>Using MySQL tables</h2>
 
 <p> Once Postfix is built with mysql support, you can specify a
-map type in main.cf like this: </p>
+map type in <a href="postconf.5.html">main.cf</a> like this: </p>
 
 <blockquote>
 <pre>
@@ -126,7 +137,7 @@ will be deferred until at least one of those hosts is reachable.
 Marcus, IC Group, Inc.</li>
 
 <li> Liviu Daia revised the configuration interface and added the
-main.cf configuration feature.</li>
+<a href="postconf.5.html">main.cf</a> configuration feature.</li>
 
 <li> Liviu Daia with further refinements from Jose Luis Tallon and
 Victor Duchovni developed the common query, result_format, domain and
index dab7e015ae7934d47c032195f79400e982131f96..045b5eb3db7db0f8d75358b243070311af1985f4 100644 (file)
@@ -21,13 +21,13 @@ POSTALIAS(1)                                                      POSTALIAS(1)
        able for the use as NIS alias maps.
 
        If the result files do not exist they will be created with
-       the same group and other read permissions  as  the  source
+       the same group and other read permissions as their  source
        file.
 
        While a database update is in progress, signal delivery is
        postponed, and an exclusive, advisory, lock is  placed  on
        the  entire database, in order to avoid surprises in spec-
-       tator programs.
+       tator processes.
 
        The format of Postfix alias input files  is  described  in
        <a href="aliases.5.html"><b>aliases</b>(5)</a>.
index 53d86f0b32a4c01de09886185fd3815a7736a49a..99a4ec3e458e0ec8adb16188de82d7b1bc423491 100644 (file)
@@ -22,13 +22,13 @@ POSTMAP(1)                                                          POSTMAP(1)
            <b>makemap</b> <i>file</i><b>_</b><i>type file</i><b>_</b><i>name</i> &lt; <i>file</i><b>_</b><i>name</i>
 
        If the result files do not exist they will be created with
-       the  same  group  and other read permissions as the source
+       the  same group and other read permissions as their source
        file.
 
        While the table update is in progress, signal delivery  is
        postponed,  and  an exclusive, advisory, lock is placed on
        the entire table, in order to avoid surprises in spectator
-       programs.
+       processes.
 
 <b>INPUT FILE FORMAT</b>
        The format of a lookup table input file is as follows:
index 16184d2245d5fa087b76fd834a95c599bc5e6a6f..8f43bb49d69bdfb1c207492a142027e46e25ff5f 100644 (file)
@@ -52,10 +52,10 @@ POSTSUPER(1)                                                      POSTSUPER(1)
                         print $1 }
               ' | tr -d '*!' | postsuper -d -
 
-              Specify <b>-d ALL</b> to remove all messages; for example,
-              specify  <b>-d  ALL  deferred</b>  to  delete  mail in the
-              <b>deferred</b> queue.  As a safety measure, the word  <b>ALL</b>
-              must be specified in upper case.
+              Specify "<b>-d ALL</b>" to remove all messages; for  exam-
+              ple,  specify  "<b>-d ALL deferred</b>" to delete all mail
+              in the <b>deferred</b> queue.  As a  safety  measure,  the
+              word <b>ALL</b> must be specified in upper case.
 
               Warning:  Postfix queue IDs are reused.  There is a
               very small possibility that postsuper  deletes  the
@@ -91,8 +91,8 @@ POSTSUPER(1)                                                      POSTSUPER(1)
               If  a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the program reads
               queue IDs from standard input.
 
-              Specify <b>-h ALL</b> to hold all messages;  for  example,
-              specify  <b>-h  ALL  deferred</b>  to  hold  mail  in  the
+              Specify "<b>-h ALL</b>" to hold all messages; for example,
+              specify  "<b>-h  ALL deferred</b>" to hold all mail in the
               <b>deferred</b> queue.  As a safety measure, the word  <b>ALL</b>
               must be specified in upper case.
 
@@ -110,12 +110,12 @@ POSTSUPER(1)                                                      POSTSUPER(1)
               If  a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the program reads
               queue IDs from standard input.
 
-              Note: use "<b>postsuper -r</b>" to release mail  that  was
-              kept  on  hold for a significant fraction of <b>$<a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-</b>
-              <b><a href="postconf.5.html#maximal_queue_lifetime">mal_queue_lifetime</a></b>  or  <b>$<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>,  or
-              longer.
+              Note: specify "<b>postsuper -r</b>" to release  mail  that
+              was  kept  on  hold  for  a significant fraction of
+              <b>$<a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a></b> or  <b>$<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>,
+              or longer.
 
-              Specify  <b>-H  ALL</b>  to  release  all mail that is "on
+              Specify  "<b>-H  ALL</b>"  to release all mail that is "on
               hold".  As a safety measure, the word <b>ALL</b>  must  be
               specified in upper case.
 
@@ -131,9 +131,9 @@ POSTSUPER(1)                                                      POSTSUPER(1)
               Alternatively, if a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the
               program reads queue IDs from standard input.
 
-              Specify <b>-r ALL</b> to requeue all messages. As a safety
-              measure,  the  word  <b>ALL</b> must be specified in upper
-              case.
+              Specify "<b>-r ALL</b>" to  requeue  all  messages.  As  a
+              safety  measure,  the word <b>ALL</b> must be specified in
+              upper case.
 
               A requeued message is moved to the <b>maildrop</b>  queue,
               from  where  it  is  copied  by  the  <a href="pickup.8.html"><b>pickup</b>(8)</a> and
index a60f09dcec41723d0d25795535a59b34eae5f06b..490cb713b06ad3a391a550e04cf94a01161a847d 100644 (file)
@@ -20,7 +20,7 @@ QSHAPE(1)                                                            QSHAPE(1)
        Postfix queue message distribution in time and  by  sender
        domain  or recipient domain. The program needs read access
        to the queue directories and queue files, so it  must  run
-       as  the  superuser  or the <b><a href="postconf.5.html#mail_owner">mail_owner</a></b> specified in <i<a href="postconf.5.html">>main.cf</</a>i>
+       as  the  superuser  or the <b><a href="postconf.5.html#mail_owner">mail_owner</a></b> specified in <a href="postconf.5.html"><b>main.cf</b></a>
        (typically <b>postfix</b>).
 
        Options:
@@ -90,8 +90,8 @@ QSHAPE(1)                                                            QSHAPE(1)
               a different set of queues, just list  their  direc-
               tory names on the command line.  Absolute paths are
               used as is, other paths are taken relative  to  the
-              <i<a href="postconf.5.html">>main.cf</</a>i>  <b><a href="postconf.5.html#queue_directory">queue_directory</a></b>  parameter setting.  While
-              <i<a href="postconf.5.html">>main.cf</</a>i> supports the use of <i>$variable</i> expansion  in
+              <a href="postconf.5.html"><b>main.cf</a>  <a href="postconf.5.html#queue_directory">queue_directory</a></b>  parameter setting.  While
+              <a href="postconf.5.html"><b>main.cf</b></a> supports the use of <i>$variable</i> expansion  in
               the  definition  of  the <b><a href="postconf.5.html#queue_directory">queue_directory</a></b> parameter,
               the <b>qshape</b> program does not. If you must use  vari-
               able expansions in the <b><a href="postconf.5.html#queue_directory">queue_directory</a></b> setting, you
index 96428e6105faa569a8e45a27612c527cc8bc1943..c79578d8e744669cbf9cb46fe7849b74924ce59c 100644 (file)
@@ -439,11 +439,6 @@ SENDMAIL(1)                                                        SENDMAIL(1)
               process name in syslog  records,  so  that  "smtpd"
               becomes, for example, "postfix/smtpd".
 
-       <b><a href="postconf.5.html#trigger_timeout">trigger_timeout</a> (10s)</b>
-              The  time  limit for sending a trigger to a Postfix
-              daemon (for example, the <a href="pickup.8.html"><b>pickup</b>(8)</a> or <a href="qmgr.8.html"><b>qmgr</b>(8)</a>  dae-
-              mon).
-
 <b>FILES</b>
        /var/spool/postfix, mail queue
        /etc/postfix, configuration files
index c8bd57491a2ad83a02dbade8dab78601e0c0b8fd..358b97e56dd099326e06a476b11558f8c542c743 100644 (file)
@@ -21,12 +21,12 @@ file formats are expected to be compatible with Sendmail version 8,
 and are expected to be suitable for the use as NIS alias maps.
 
 If the result files do not exist they will be created with the
-same group and other read permissions as the source file.
+same group and other read permissions as their source file.
 
 While a database update is in progress, signal delivery is
 postponed, and an exclusive, advisory, lock is placed on the
 entire database, in order to avoid surprises in spectator
-programs.
+processes.
 
 The format of Postfix alias input files is described in
 \fBaliases\fR(5).
index dc3e9bce73a837e5a12a7202bf545cb3c57ec3ae..bedee7d6d5fc0ee706a8fc26e88dd1e89f72c545 100644 (file)
@@ -23,12 +23,12 @@ file formats are expected to be compatible with:
 \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR
 
 If the result files do not exist they will be created with the
-same group and other read permissions as the source file.
+same group and other read permissions as their source file.
 
 While the table update is in progress, signal delivery is
 postponed, and an exclusive, advisory, lock is placed on the
 entire table, in order to avoid surprises in spectator
-programs.
+processes.
 .SH "INPUT FILE FORMAT"
 .na
 .nf
index 2b803854bc10206288819724258e73165f5ee906..a6800a474350cae85ad7824d7fad6a380e5586ca 100644 (file)
@@ -52,8 +52,8 @@ print $1 }
 .br
 \' | tr -d '*!' | postsuper -d -
 .sp
-Specify \fB-d ALL\fR to remove all messages; for example, specify
-\fB-d ALL deferred\fR to delete mail in the \fBdeferred\fR queue.
+Specify "\fB-d ALL\fR" to remove all messages; for example, specify
+"\fB-d ALL deferred\fR" to delete all mail in the \fBdeferred\fR queue.
 As a safety measure, the word \fBALL\fR must be specified in upper
 case.
 .sp
@@ -87,8 +87,8 @@ mail queue(s) (default: \fBincoming\fR, \fBactive\fR and
 If a \fIqueue_id\fR of \fB-\fR is specified, the program reads
 queue IDs from standard input.
 .sp
-Specify \fB-h ALL\fR to hold all messages; for example, specify
-\fB-h ALL deferred\fR to hold mail in the \fBdeferred\fR queue.
+Specify "\fB-h ALL\fR" to hold all messages; for example, specify
+"\fB-h ALL deferred\fR" to hold all mail in the \fBdeferred\fR queue.
 As a safety measure, the word \fBALL\fR must be specified in upper
 case.
 .sp
@@ -104,11 +104,11 @@ mail queue(s) (default: \fBhold\fR) to the \fBdeferred\fR queue.
 If a \fIqueue_id\fR of \fB-\fR is specified, the program reads
 queue IDs from standard input.
 .sp
-Note: use "\fBpostsuper -r\fR" to release mail that was kept on
+Note: specify "\fBpostsuper -r\fR" to release mail that was kept on
 hold for a significant fraction of \fB$maximal_queue_lifetime\fR
 or \fB$bounce_queue_lifetime\fR, or longer.
 .sp
-Specify \fB-H ALL\fR to release all mail that is "on hold".
+Specify "\fB-H ALL\fR" to release all mail that is "on hold".
 As a safety measure, the word \fBALL\fR must be specified in upper
 case.
 .IP \fB-p\fR
@@ -124,7 +124,7 @@ command-line options.
 Alternatively, if a \fIqueue_id\fR of \fB-\fR is specified,
 the program reads queue IDs from standard input.
 .sp
-Specify \fB-r ALL\fR to requeue all messages. As a safety
+Specify "\fB-r ALL\fR" to requeue all messages. As a safety
 measure, the word \fBALL\fR must be specified in upper case.
 .sp
 A requeued message is moved to the \fBmaildrop\fR queue,
index 6c2c9908aecd3a984e26f3a80fab3faf791d8f54..4badd4c02ef4d8a4a972a26db5d115d3df438267 100644 (file)
@@ -20,7 +20,7 @@ The \fBqshape\fR program helps the administrator understand the
 Postfix queue message distribution in time and by sender domain
 or recipient domain. The program needs read access to the queue
 directories and queue files, so it must run as the superuser or
-the \fBmail_owner\fR specified in \fImain.cf\fR (typically
+the \fBmail_owner\fR specified in \fBmain.cf\fR (typically
 \fBpostfix\fR).
 
 Options:
@@ -74,8 +74,8 @@ By default \fBqshape\fR displays the combined distribution of
 the incoming and active queues. To display a different set of
 queues, just list their directory names on the command line.
 Absolute paths are used as is, other paths are taken relative
-to the \fImain.cf\fR \fBqueue_directory\fR parameter setting.
-While \fImain.cf\fR supports the use of \fI$variable\fR expansion
+to the \fBmain.cf\fR \fBqueue_directory\fR parameter setting.
+While \fBmain.cf\fR supports the use of \fI$variable\fR expansion
 in the definition of the \fBqueue_directory\fR parameter, the
 \fBqshape\fR program does not. If you must use variable expansions
 in the \fBqueue_directory\fR setting, you must specify an explicit
index 827d483801a0c47b0bbd405c65dafbe652dd263b..a4e99359df11ca08277177b784ed9a682b3e3cad 100644 (file)
@@ -369,9 +369,6 @@ The syslog facility of Postfix logging.
 .IP "\fBsyslog_name (postfix)\fR"
 The mail system name that is prepended to the process name in syslog
 records, so that "smtpd" becomes, for example, "postfix/smtpd".
-.IP "\fBtrigger_timeout (10s)\fR"
-The time limit for sending a trigger to a Postfix daemon (for
-example, the \fBpickup\fR(8) or \fBqmgr\fR(8) daemon).
 .SH "FILES"
 .na
 .nf
index 9672f5a9d4adbfbfc6e24d4e589994251c84c6e1..7f56cf04f00869cdfb5ad662979657b7fdca9ef6 100644 (file)
@@ -57,6 +57,17 @@ make -f Makefile.init makefiles \
 </pre>
 </blockquote>
 
+<p> On Solaris, use this instead: </p>
+
+<blockquote>
+<pre>
+make -f Makefile.init makefiles \
+    'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
+    'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
+        -lmysqlclient -lz -lm'
+</pre>
+</blockquote>
+
 <p> Then, just run 'make'. This requires libz, the compression
 library.  Older mysql implementations build without libz. </p>
 
index 501d61b7e94db01d8faa3085b0485361c85b0cec..f8a1d565ac88a5bcecca83f2b9e69a6c532dfc02 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      "20060903"
+#define MAIL_RELEASE_DATE      "20060930"
 #define MAIL_VERSION_NUMBER    "2.4"
 
 #ifdef SNAPSHOT
index a62d065f020507464c70648757f9aa494f7c078d..b31a719e88111fa242a20ac1744d08a4cdd59e8d 100644 (file)
 /*     and are expected to be suitable for the use as NIS alias maps.
 /*
 /*     If the result files do not exist they will be created with the
-/*     same group and other read permissions as the source file.
+/*     same group and other read permissions as their source file.
 /*
 /*     While a database update is in progress, signal delivery is
 /*     postponed, and an exclusive, advisory, lock is placed on the
 /*     entire database, in order to avoid surprises in spectator
-/*     programs.
+/*     processes.
 /*
 /*     The format of Postfix alias input files is described in
 /*     \fBaliases\fR(5).
index bc9e2bd8fc7c25dae9e5a2c6c69e02b60f122f18..c02e394a3d6dd209e9e6a91842b6c353c53d4e02 100644 (file)
 /*     \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR
 /*
 /*     If the result files do not exist they will be created with the
-/*     same group and other read permissions as the source file.
+/*     same group and other read permissions as their source file.
 /*
 /*     While the table update is in progress, signal delivery is
 /*     postponed, and an exclusive, advisory, lock is placed on the
 /*     entire table, in order to avoid surprises in spectator
-/*     programs.
+/*     processes.
 /* INPUT FILE FORMAT
 /* .ad
 /* .fi
index e3636cdf766f2983a59300333b6fb3ef3ef368cf..2f9622d9092e0a07119d796f7e2c1e941a5274e6 100644 (file)
@@ -46,8 +46,8 @@
 /* .br
 /*     \' | tr -d '*!' | postsuper -d -
 /* .sp
-/*     Specify \fB-d ALL\fR to remove all messages; for example, specify
-/*     \fB-d ALL deferred\fR to delete mail in the \fBdeferred\fR queue.
+/*     Specify "\fB-d ALL\fR" to remove all messages; for example, specify
+/*     "\fB-d ALL deferred\fR" to delete all mail in the \fBdeferred\fR queue.
 /*     As a safety measure, the word \fBALL\fR must be specified in upper
 /*     case.
 /* .sp
@@ -81,8 +81,8 @@
 /*     If a \fIqueue_id\fR of \fB-\fR is specified, the program reads
 /*     queue IDs from standard input.
 /* .sp
-/*     Specify \fB-h ALL\fR to hold all messages; for example, specify
-/*     \fB-h ALL deferred\fR to hold mail in the \fBdeferred\fR queue.
+/*     Specify "\fB-h ALL\fR" to hold all messages; for example, specify
+/*     "\fB-h ALL deferred\fR" to hold all mail in the \fBdeferred\fR queue.
 /*     As a safety measure, the word \fBALL\fR must be specified in upper
 /*     case.
 /* .sp
 /*     If a \fIqueue_id\fR of \fB-\fR is specified, the program reads
 /*     queue IDs from standard input.
 /* .sp
-/*     Note: use "\fBpostsuper -r\fR" to release mail that was kept on
+/*     Note: specify "\fBpostsuper -r\fR" to release mail that was kept on
 /*     hold for a significant fraction of \fB$maximal_queue_lifetime\fR
 /*     or \fB$bounce_queue_lifetime\fR, or longer.
 /* .sp
-/*     Specify \fB-H ALL\fR to release all mail that is "on hold".
+/*     Specify "\fB-H ALL\fR" to release all mail that is "on hold".
 /*     As a safety measure, the word \fBALL\fR must be specified in upper
 /*     case.
 /* .IP \fB-p\fR
 /*     Alternatively, if a \fIqueue_id\fR of \fB-\fR is specified,
 /*     the program reads queue IDs from standard input.
 /* .sp
-/*     Specify \fB-r ALL\fR to requeue all messages. As a safety
+/*     Specify "\fB-r ALL\fR" to requeue all messages. As a safety
 /*     measure, the word \fBALL\fR must be specified in upper case.
 /* .sp
 /*     A requeued message is moved to the \fBmaildrop\fR queue,
index 4f33a0c04b5686c5df8246f2ebbf7544de0c07e9..da88542b10a16162db8a1b720d2b91c67f3096ba 100644 (file)
 /* .IP "\fBsyslog_name (postfix)\fR"
 /*     The mail system name that is prepended to the process name in syslog
 /*     records, so that "smtpd" becomes, for example, "postfix/smtpd".
-/* .IP "\fBtrigger_timeout (10s)\fR"
-/*     The time limit for sending a trigger to a Postfix daemon (for
-/*     example, the \fBpickup\fR(8) or \fBqmgr\fR(8) daemon).
 /* FILES
 /*     /var/spool/postfix, mail queue
 /*     /etc/postfix, configuration files
index a7c86584510e5bc7572d449a99faee01aa230a4b..276db41ce130ac657c1b9838b9654d660d4f46d0 100644 (file)
@@ -230,6 +230,11 @@ char   *xfer_request[SMTP_STATE_LAST] = {
     "QUIT command",
 };
 
+#define SMTP_MIME_DOWNGRADE(session, request) \
+    (var_disable_mime_oconv == 0 \
+     && (session->features & SMTP_FEATURE_8BITMIME) == 0 \
+     && strcmp(request->encoding, MAIL_ATTR_ENC_7BIT) != 0)
+
 static int smtp_start_tls(SMTP_STATE *);
 
 /* smtp_helo - perform initial handshake with SMTP server */
@@ -1172,7 +1177,9 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
            QUOTE_ADDRESS(session->scratch, vstring_str(session->scratch2));
            vstring_sprintf(next_command, "MAIL FROM:<%s>",
                            vstring_str(session->scratch));
-           if (session->features & SMTP_FEATURE_SIZE)  /* RFC 1870 */
+           /* XXX Don't announce SIZE if we're going to MIME downgrade. */
+           if (session->features & SMTP_FEATURE_SIZE   /* RFC 1870 */
+               && !SMTP_MIME_DOWNGRADE(session, request))
                vstring_sprintf_append(next_command, " SIZE=%lu",
                                       request->data_size);
            if (session->features & SMTP_FEATURE_8BITMIME) {    /* RFC 1652 */
@@ -1619,13 +1626,13 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
         * transaction in progress.
         */
        if (send_state == SMTP_STATE_DOT && nrcpt > 0) {
-           downgrading =
-               (var_disable_mime_oconv == 0
-                && (session->features & SMTP_FEATURE_8BITMIME) == 0
-                && strcmp(request->encoding, MAIL_ATTR_ENC_7BIT) != 0);
+           downgrading = SMTP_MIME_DOWNGRADE(session, request);
+           /* XXX Don't downgrade just because generic_maps is turned on. */
            if (downgrading || smtp_generic_maps)
-               session->mime_state = mime_state_alloc(MIME_OPT_DOWNGRADE
-                                                 | MIME_OPT_REPORT_NESTING,
+               session->mime_state = mime_state_alloc(downgrading ?
+                                                      MIME_OPT_DOWNGRADE
+                                                | MIME_OPT_REPORT_NESTING :
+                                                   MIME_OPT_REPORT_NESTING,
                                                       smtp_generic_maps ?
                                                       smtp_header_rewrite :
                                                       smtp_header_out,
index 8dacecffbbecb5a63b6f64c9ac5ffb38db7dd281..d2e7c14d2a7a56bb524e7c9a17b7a2c7b2a4c451 100644 (file)
@@ -143,6 +143,13 @@ void    smtpd_peer_init(SMTPD_STATE *state)
      * Milter applications as {if_name} and {if_addr}, then we also must be
      * able to provide this via the XCLIENT command for Milter testing.
      * 
+     * XXX If we make local or remote port information available to policy
+     * servers or Milter applications, then we must also make this testable
+     * with the XCLIENT command, otherwise there will be confusion.
+     * 
+     * XXX If we make local or remote port information available via logging,
+     * then we must also support these attributes with the XFORWARD command.
+     * 
      * XXX If support were to be added for Milter applications in down-stream
      * MTAs, then consistency demands that we propagate a lot of Sendmail
      * macro information via the XFORWARD command. Otherwise we could end up
index e5c19c76bb61c6f6537193def3c92185f6a42c92..0680ee0cd14bdd5f034560456dbb03caa810f96c 100644 (file)
@@ -565,7 +565,7 @@ static void verify_extract_peer(const char *nexthop, const char *hname,
                        break;
                }
            }
-           sk_GENERAL_NAME_free(gens);
+           sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free);
        }
     }
     if (dNSName_found) {
index 941d58b94f17f1101d0a7d86b16e29945648c928..171528c22939be23e278110ffc2455f84f18cc5f 100644 (file)
@@ -400,8 +400,12 @@ int     hostname_to_sockaddr(const char *hostname, const char *service,
      * might blow up. Instead we turn off IPV6_V6ONLY in inet_listen(), and
      * supply a protocol-dependent hard-coded string value to getaddrinfo()
      * below, so that it will convert into the appropriate wild-card address.
+     * 
+     * XXX AIX 5.[1-3] getaddrinfo() may return a non-null port when a null
+     * service argument is specified.
      */
     struct addrinfo hints;
+    int     err;
 
     memset((char *) &hints, 0, sizeof(hints));
     hints.ai_family = inet_proto_info()->ai_family;
@@ -423,7 +427,18 @@ int     hostname_to_sockaddr(const char *hostname, const char *service,
        }
 #endif
     }
-    return (getaddrinfo(hostname, service, &hints, res));
+    err = getaddrinfo(hostname, service, &hints, res);
+#if defined(BROKEN_AI_NULL_SERVICE)
+    if (service == 0 && err == 0) {
+       struct addrinfo *r;
+       unsigned short *portp;
+
+       for (r = *res; r != 0; r = r->ai_next)
+           if (*(portp = SOCK_ADDR_PORTP(r->ai_addr)) != 0)
+               *portp = 0;
+    }
+#endif
+    return (err);
 #endif
 }
 
@@ -500,8 +515,12 @@ int     hostaddr_to_sockaddr(const char *hostaddr, const char *service,
      * ai_family=PF_UNSPEC, ai_flags=AI_NUMERICHOST, ai_socktype=SOCK_STREAM,
      * ai_protocol=0 or IPPROTO_TCP, and service=0. The workaround is to
      * ignore all but the first result.
+     * 
+     * XXX AIX 5.[1-3] getaddrinfo() may return a non-null port when a null
+     * service argument is specified.
      */
     struct addrinfo hints;
+    int     err;
 
     memset(&hints, 0, sizeof(hints));
     hints.ai_family = inet_proto_info()->ai_family;
@@ -524,7 +543,18 @@ int     hostaddr_to_sockaddr(const char *hostaddr, const char *service,
        }
 #endif
     }
-    return (getaddrinfo(hostaddr, service, &hints, res));
+    err = getaddrinfo(hostaddr, service, &hints, res);
+#if defined(BROKEN_AI_NULL_SERVICE)
+    if (service == 0 && err == 0) {
+       struct addrinfo *r;
+       unsigned short *portp;
+
+       for (r = *res; r != 0; r = r->ai_next)
+           if (*(portp = SOCK_ADDR_PORTP(r->ai_addr)) != 0)
+               *portp = 0;
+    }
+#endif
+    return (err);
 #endif
 }
 
index 6ccd041d4aec6f076fd029707ad64030d1a532fc..f80d082078b4673415297eea4c46b0f5941e6b49 100644 (file)
@@ -28,6 +28,8 @@
 /*     struct sockaddr *SOCK_ADDR_PTR(ptr)
 /*     unsigned char SOCK_ADDR_FAMILY(ptr)
 /*     unsigned char SOCK_ADDR_LEN(ptr)
+/*     unsigned short SOCK_ADDR_PORT(ptr)
+/*     unsigned short *SOCK_ADDR_PORTP(ptr)
 /*
 /*     struct sockaddr_in *SOCK_ADDR_IN_PTR(ptr)
 /*     unsigned char SOCK_ADDR_IN_FAMILY(ptr)
@@ -66,7 +68,9 @@
 /*     address family and length of the real structure that hides
 /*     inside a generic sockaddr structure. On systems where struct
 /*     sockaddr has no sa_len member, SOCK_ADDR_LEN() cannot be
-/*     used as lvalue.
+/*     used as lvalue. SOCK_ADDR_PORT() returns the IPv4 or IPv6
+/*     port number, in network byte order; it must not be used as
+/*     lvalue. SOCK_ADDR_PORTP() returns a pointer to the same.
 /*
 /*     The macros SOCK_ADDR_IN{,6}_{PTR,FAMILY,PORT,ADDR}() cast
 /*     a generic pointer to a specific socket address structure
index 1fb54a8a0a6cab949ff50ef96798af7b8f3f437a..1f5407a4be9bcf86b0091fe26775ff8d05ea2a0a 100644 (file)
@@ -45,6 +45,13 @@ extern int sock_addr_in_loopback(const struct sockaddr *);
      sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in))
 #endif
 
+#define SOCK_ADDR_PORT(sa) \
+    (SOCK_ADDR_PTR(sa)->sa_family == AF_INET6 ? \
+       SOCK_ADDR_IN6_PORT(sa) : SOCK_ADDR_IN_PORT(sa))
+#define SOCK_ADDR_PORTP(sa) \
+    (SOCK_ADDR_PTR(sa)->sa_family == AF_INET6 ? \
+       &SOCK_ADDR_IN6_PORT(sa) : &SOCK_ADDR_IN_PORT(sa))
+
 #define SOCK_ADDR_IN6_PTR(sa)  ((struct sockaddr_in6 *)(sa))
 #define SOCK_ADDR_IN6_FAMILY(sa) SOCK_ADDR_IN6_PTR(sa)->sin6_family
 #define SOCK_ADDR_IN6_PORT(sa) SOCK_ADDR_IN6_PTR(sa)->sin6_port
@@ -71,6 +78,9 @@ extern int sock_addr_in_loopback(const struct sockaddr *);
 #define SOCK_ADDR_LEN(sa)      sizeof(struct sockaddr_in)
 #endif
 
+#define SOCK_ADDR_PORT(sa)     SOCK_ADDR_IN_PORT(sa))
+#define SOCK_ADDR_PORTP(sa)    &SOCK_ADDR_IN_PORT(sa))
+
 #define SOCK_ADDR_EQ_ADDR(sa, sb) \
     (SOCK_ADDR_FAMILY(sa) == AF_INET && SOCK_ADDR_FAMILY(sb) == AF_INET \
      && SOCK_ADDR_IN_ADDR(sa).s_addr == SOCK_ADDR_IN_ADDR(sb).s_addr)
index 11499916bf14366bd40655ece8bf6bef236dbc6c..513d252236dba8189139751b36ac5728e1e16fe2 100644 (file)
@@ -513,6 +513,7 @@ extern int opterr;
 # define HAS_IPV6
 #endif
 #define BROKEN_AI_PASSIVE_NULL_HOST
+#define BROKEN_AI_NULL_SERVICE
 #endif
 
 #ifdef AIX4