]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.11-20131105
authorWietse Venema <wietse@porcupine.org>
Tue, 5 Nov 2013 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Thu, 7 Nov 2013 03:20:14 +0000 (22:20 -0500)
postfix/HISTORY
postfix/html/pipe.8.html
postfix/man/man8/pipe.8
postfix/mantools/postlink
postfix/src/global/mail_version.h
postfix/src/pipe/pipe.c
postfix/src/util/dict_lmdb.c

index 435f5c65af36e5a0417dfef6a5a953d81039822a..b914324e7aeb718fd103ab8a5d0fe92c1dc82530 100644 (file)
@@ -19039,7 +19039,7 @@ Apologies for any names omitted.
 
        Security violation: by default, LMDB 0.9.9 writes uninitialized
        heap memory to a world-readable database file, as chunks
-       of up to 4096 bytes.  This is a gross memory disclosure
+       of up to 4096 bytes.  This is a huge memory disclosure
        vulnerability: memory content that a program does not intend
        to share ends up in a world-readable file.  The content of
        uninitialized heap memory depends on program execution
@@ -19068,3 +19068,8 @@ Apologies for any names omitted.
        This was primarily an issue with non-HTML output, but it does
        not hurt to do this also for HTML.  Files: proto/Makefile.in,
        proto/MULTI_INSTANCE_README.html.
+
+20121104
+
+       Feature: ${queue_id} macro support for the pipe(8) delivery
+       agent by Andreas Schulze. File: pipe/pipe.c.
index afe2b5a2e2d7fa6f892033bca32a48dacfa9f315..9705d00e5e84f9851038923e5ee88a9d526aad36 100644 (file)
@@ -223,37 +223,37 @@ PIPE(8)                                                                PIPE(8)
               and $(<i>name</i>) are also recognized.  Specify <b>$$</b>  where
               a single <b>$</b> is wanted.
 
-              <b>${client_address</b>}
+              <b>${client_address}</b>
                      This macro expands to the remote client net-
                      work address.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${client_helo</b>}
+              <b>${client_helo}</b>
                      This macro expands to the remote client HELO
                      command parameter.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${client_hostname</b>}
+              <b>${client_hostname}</b>
                      This  macro  expands  to  the  remote client
                      hostname.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${client_port</b>}
+              <b>${client_port}</b>
                      This  macro expands to the remote client TCP
                      port number.
 
                      This feature is available as of Postfix 2.5.
 
-              <b>${client_protocol</b>}
+              <b>${client_protocol}</b>
                      This macro expands to the remote client pro-
                      tocol.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${domain</b>}
+              <b>${domain}</b>
                      This  macro expands to the domain portion of
                      the recipient address.  For example, with an
                      address   <i>user+foo@domain</i>   the   domain  is
@@ -264,45 +264,45 @@ PIPE(8)                                                                PIPE(8)
 
                      This feature is available as of Postfix 2.5.
 
-              <b>${extension</b>}
+              <b>${extension}</b>
                      This macro expands to the extension part  of
                      a  recipient  address.  For example, with an
                      address  <i>user+foo@domain</i>  the  extension  is
                      <i>foo</i>.
 
                      A   command-line   argument   that  contains
-                     <b>${extension</b>} expands into as  many  command-
+                     <b>${extension}</b> expands into as  many  command-
                      line arguments as there are recipients.
 
                      This  information  is modified by the <b>u</b> flag
                      for case folding.
 
-              <b>${mailbox</b>}
+              <b>${mailbox}</b>
                      This macro expands  to  the  complete  local
                      part  of  a recipient address.  For example,
                      with an address <i>user+foo@domain</i> the  mailbox
                      is <i>user+foo</i>.
 
                      A   command-line   argument   that  contains
-                     <b>${mailbox</b>} expands to as  many  command-line
+                     <b>${mailbox}</b> expands to as  many  command-line
                      arguments as there are recipients.
 
                      This  information  is modified by the <b>u</b> flag
                      for case folding.
 
-              <b>${nexthop</b>}
+              <b>${nexthop}</b>
                      This macro expands to the next-hop hostname.
 
                      This  information  is modified by the <b>h</b> flag
                      for case folding.
 
-              <b>${original_recipient</b>}
+              <b>${original_recipient}</b>
                      This macro expands to the complete recipient
                      address  before  any  address  rewriting  or
                      aliasing.
 
                      A  command-line   argument   that   contains
-                     <b>${original_recipient</b>}  expands  to  as  many
+                     <b>${original_recipient}</b>  expands  to  as  many
                      command-line arguments as there are  recipi-
                      ents.
 
@@ -311,143 +311,149 @@ PIPE(8)                                                                PIPE(8)
 
                      This feature is available as of Postfix 2.5.
 
-              <b>${recipient</b>}
+              <b>${queue_id}</b>
+                     This macro expands to the queue id.
+
+                     This  feature  is  available  as  of Postfix
+                     2.11.
+
+              <b>${recipient}</b>
                      This macro expands to the complete recipient
                      address.
 
-                     A  command-line   argument   that   contains
-                     <b>${recipient</b>} expands to as many command-line
+                     A   command-line   argument   that  contains
+                     <b>${recipient}</b> expands to as many command-line
                      arguments as there are recipients.
 
-                     This information  is  modified  by  the  <b>hqu</b>
+                     This  information  is  modified  by  the <b>hqu</b>
                      flags for quoting and case folding.
 
-              <b>${sasl_method</b>}
-                     This  macro  expands to the name of the SASL
+              <b>${sasl_method}</b>
+                     This macro expands to the name of  the  SASL
                      authentication mechanism in the AUTH command
-                     when  the  Postfix  SMTP server received the
+                     when the Postfix SMTP  server  received  the
                      message.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${sasl_sender</b>}
-                     This  macro  expands to the SASL sender name
-                     (i.e. the  original  submitter  as  per  <a href="http://tools.ietf.org/html/rfc4954">RFC</a>
-                     <a href="http://tools.ietf.org/html/rfc4954">4954</a>)  in  the  MAIL  FROM  command when the
+              <b>${sasl_sender}</b>
+                     This macro expands to the SASL  sender  name
+                     (i.e.  the  original  submitter  as  per <a href="http://tools.ietf.org/html/rfc4954">RFC</a>
+                     <a href="http://tools.ietf.org/html/rfc4954">4954</a>) in the  MAIL  FROM  command  when  the
                      Postfix SMTP server received the message.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${sasl_username</b>}
-                     This  macro expands to the SASL user name in
+              <b>${sasl_username}</b>
+                     This macro expands to the SASL user name  in
                      the  AUTH  command  when  the  Postfix  SMTP
                      server received the message.
 
                      This feature is available as of Postfix 2.2.
 
-              <b>${sender</b>}
-                     This macro expands to  the  envelope  sender
+              <b>${sender}</b>
+                     This  macro  expands  to the envelope sender
                      address. By default, the null sender address
-                     expands  to  MAILER-DAEMON;  this   can   be
-                     changed  with  the <b>null_sender</b> attribute, as
+                     expands   to   MAILER-DAEMON;  this  can  be
+                     changed with the <b>null_sender</b>  attribute,  as
                      described above.
 
-                     This information is modified by the  <b>q</b>  flag
+                     This  information  is modified by the <b>q</b> flag
                      for quoting.
 
-              <b>${size</b>}
-                     This  macro expands to Postfix's idea of the
-                     message size, which is an  approximation  of
+              <b>${size}</b>
+                     This macro expands to Postfix's idea of  the
+                     message  size,  which is an approximation of
                      the size of the message as delivered.
 
-              <b>${user</b>}
+              <b>${user}</b>
                      This macro expands to the username part of a
-                     recipient address.   For  example,  with  an
+                     recipient  address.   For  example,  with an
                      address <i>user+foo@domain</i> the username part is
                      <i>user</i>.
 
-                     A  command-line   argument   that   contains
-                     <b>${user</b>}  expands  into  as many command-line
+                     A   command-line   argument   that  contains
+                     <b>${user}</b> expands into  as  many  command-line
                      arguments as there are recipients.
 
-                     This information is modified by the  <b>u</b>  flag
+                     This  information  is modified by the <b>u</b> flag
                      for case folding.
 
 <b>STANDARDS</b>
        <a href="http://tools.ietf.org/html/rfc3463">RFC 3463</a> (Enhanced status codes)
 
 <b>DIAGNOSTICS</b>
-       Command  exit status codes are expected to follow the con-
-       ventions defined in &lt;<b>sysexits.h</b>&gt;.   Exit  status  0  means
+       Command exit status codes are expected to follow the  con-
+       ventions  defined  in  &lt;<b>sysexits.h</b>&gt;.   Exit status 0 means
        normal successful completion.
 
        In the case of a non-zero exit status, a limited amount of
        command output is reported in an delivery status notifica-
-       tion.   When  the  output  begins  with  a  4.X.X or 5.X.X
-       enhanced status code, the  status  code  takes  precedence
-       over  the  non-zero  exit  status (Postfix version 2.3 and
+       tion.  When the  output  begins  with  a  4.X.X  or  5.X.X
+       enhanced  status  code,  the  status code takes precedence
+       over the non-zero exit status  (Postfix  version  2.3  and
        later).
 
-       Problems and transactions are logged to <b>syslogd</b>(8).   Cor-
-       rupted  message files are marked so that the queue manager
+       Problems  and transactions are logged to <b>syslogd</b>(8).  Cor-
+       rupted message files are marked so that the queue  manager
        can move them to the <b>corrupt</b> queue for further inspection.
 
 <b>SECURITY</b>
-       This  program  needs  a  dual personality 1) to access the
-       private Postfix queue and IPC mechanisms, and 2)  to  exe-
+       This program needs a dual personality  1)  to  access  the
+       private  Postfix  queue and IPC mechanisms, and 2) to exe-
        cute external commands as the specified user. It is there-
        fore security sensitive.
 
 <b>CONFIGURATION PARAMETERS</b>
-       Changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically as  <a href="pipe.8.html"><b>pipe</b>(8)</a>
-       processes  run  for only a limited amount of time. Use the
+       Changes  to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically as <a href="pipe.8.html"><b>pipe</b>(8)</a>
+       processes run for only a limited amount of time.  Use  the
        command "<b>postfix reload</b>" to speed up a change.
 
-       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>RESOURCE AND RATE CONTROLS</b>
-       In  the text below, <i>transport</i> is the first field in a <b>mas-</b>
-       <b>ter.cf</b> entry.
+       In the text below, <i>transport</i> is the first field in a  <a href="master.5.html"><b>mas-</b>
+       <b>ter.cf</b></a> entry.
 
        <b><a href="postconf.5.html#transport_destination_concurrency_limit"><i>transport</i>_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destina</a>-</b>
        <b><a href="postconf.5.html#default_destination_concurrency_limit">tion_concurrency_limit</a>)</b>
               Limit the number of parallel deliveries to the same
-              destination,  for delivery via the named <i>transport</i>.
+              destination, for delivery via the named  <i>transport</i>.
               The limit is enforced by the Postfix queue manager.
 
        <b><a href="postconf.5.html#transport_destination_recipient_limit"><i>transport</i>_destination_recipient_limit</a>   ($<a href="postconf.5.html#default_destination_recipient_limit">default_destina</a>-</b>
        <b><a href="postconf.5.html#default_destination_recipient_limit">tion_recipient_limit</a>)</b>
-              Limit  the  number of recipients per message deliv-
-              ery, for delivery via  the  named  <i>transport</i>.   The
+              Limit the number of recipients per  message  deliv-
+              ery,  for  delivery  via  the named <i>transport</i>.  The
               limit is enforced by the Postfix queue manager.
 
        <b><a href="postconf.5.html#transport_time_limit"><i>transport</i>_time_limit</a> ($<a href="postconf.5.html#command_time_limit">command_time_limit</a>)</b>
-              Limit  the  time  for delivery to external command,
+              Limit the time for delivery  to  external  command,
               for delivery via the named <i>transport</i>.  The limit is
               enforced by the pipe delivery agent.
 
-              Postfix  2.4 and later support a suffix that speci-
-              fies the time unit: s  (seconds),  m  (minutes),  h
+              Postfix 2.4 and later support a suffix that  speci-
+              fies  the  time  unit:  s (seconds), m (minutes), h
               (hours), d (days), w (weeks). The default time unit
               is seconds.
 
 <b>MISCELLANEOUS CONTROLS</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.
 
        <b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
-              How  much time a Postfix daemon process may take to
-              handle a request  before  it  is  terminated  by  a
+              How much time a Postfix daemon process may take  to
+              handle  a  request  before  it  is  terminated by a
               built-in watchdog timer.
 
        <b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
-              The  maximal  number  of  digits  after the decimal
+              The maximal number  of  digits  after  the  decimal
               point when logging sub-second delay values.
 
        <b><a href="postconf.5.html#export_environment">export_environment</a> (see 'postconf -d' output)</b>
-              The list of environment variables  that  a  Postfix
+              The  list  of  environment variables that a Postfix
               process will export to non-Postfix processes.
 
        <b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
@@ -459,25 +465,25 @@ PIPE(8)                                                                PIPE(8)
               and most Postfix daemon processes.
 
        <b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
-              The  maximum  amount  of  time that an idle Postfix
-              daemon process waits  for  an  incoming  connection
+              The maximum amount of time  that  an  idle  Postfix
+              daemon  process  waits  for  an incoming connection
               before terminating voluntarily.
 
        <b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
-              The  maximal  number of incoming connections that a
-              Postfix daemon process will service  before  termi-
+              The maximal number of incoming connections  that  a
+              Postfix  daemon  process will service before termi-
               nating voluntarily.
 
        <b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
-              The  process  ID  of  a  Postfix  command or daemon
+              The process ID  of  a  Postfix  command  or  daemon
               process.
 
        <b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
-              The process name of a  Postfix  command  or  daemon
+              The  process  name  of  a Postfix command or daemon
               process.
 
        <b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
-              The  location of the Postfix top-level queue direc-
+              The location of the Postfix top-level queue  direc-
               tory.
 
        <b><a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> (empty)</b>
@@ -488,8 +494,8 @@ PIPE(8)                                                                PIPE(8)
               The syslog facility of Postfix logging.
 
        <b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
-              The  mail  system  name  that  is  prepended to the
-              process name in syslog  records,  so  that  "smtpd"
+              The mail system  name  that  is  prepended  to  the
+              process  name  in  syslog  records, so that "smtpd"
               becomes, for example, "postfix/smtpd".
 
 <b>SEE ALSO</b>
@@ -501,7 +507,7 @@ PIPE(8)                                                                PIPE(8)
        syslogd(8), system logging
 
 <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 a24a5ee48d08ed1483d0fccd661f99e6dc2cd5a0..dc594a814bd55d7f88ab56d8fd7b6a213510d855 100644 (file)
@@ -207,27 +207,27 @@ In addition to the form ${\fIname\fR}, the forms $\fIname\fR and
 $(\fIname\fR) are also recognized.  Specify \fB$$\fR where a single
 \fB$\fR is wanted.
 .RS
-.IP \fB${\fBclient_address\fR}\fR
+.IP \fB${client_address}\fR
 This macro expands to the remote client network address.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBclient_helo\fR}\fR
+.IP \fB${client_helo}\fR
 This macro expands to the remote client HELO command parameter.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBclient_hostname\fR}\fR
+.IP \fB${client_hostname}\fR
 This macro expands to the remote client hostname.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBclient_port\fR}\fR
+.IP \fB${client_port}\fR
 This macro expands to the remote client TCP port number.
 .sp
 This feature is available as of Postfix 2.5.
-.IP \fB${\fBclient_protocol\fR}\fR
+.IP \fB${client_protocol}\fR
 This macro expands to the remote client protocol.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBdomain\fR}\fR
+.IP \fB${domain}\fR
 This macro expands to the domain portion of the recipient
 address.  For example, with an address \fIuser+foo@domain\fR
 the domain is \fIdomain\fR.
@@ -235,81 +235,85 @@ the domain is \fIdomain\fR.
 This information is modified by the \fBh\fR flag for case folding.
 .sp
 This feature is available as of Postfix 2.5.
-.IP \fB${\fBextension\fR}\fR
+.IP \fB${extension}\fR
 This macro expands to the extension part of a recipient address.
 For example, with an address \fIuser+foo@domain\fR the extension is
 \fIfoo\fR.
 .sp
-A command-line argument that contains \fB${\fBextension\fR}\fR expands
+A command-line argument that contains \fB${extension}\fR expands
 into as many command-line arguments as there are recipients.
 .sp
 This information is modified by the \fBu\fR flag for case folding.
-.IP \fB${\fBmailbox\fR}\fR
+.IP \fB${mailbox}\fR
 This macro expands to the complete local part of a recipient address.
 For example, with an address \fIuser+foo@domain\fR the mailbox is
 \fIuser+foo\fR.
 .sp
-A command-line argument that contains \fB${\fBmailbox\fR}\fR
+A command-line argument that contains \fB${mailbox}\fR
 expands to as many command-line arguments as there are recipients.
 .sp
 This information is modified by the \fBu\fR flag for case folding.
-.IP \fB${\fBnexthop\fR}\fR
+.IP \fB${nexthop}\fR
 This macro expands to the next-hop hostname.
 .sp
 This information is modified by the \fBh\fR flag for case folding.
-.IP \fB${\fBoriginal_recipient\fR}\fR
+.IP \fB${original_recipient}\fR
 This macro expands to the complete recipient address before any
 address rewriting or aliasing.
 .sp
 A command-line argument that contains
-\fB${\fBoriginal_recipient\fR}\fR expands to as many
+\fB${original_recipient}\fR expands to as many
 command-line arguments as there are recipients.
 .sp
 This information is modified by the \fBhqu\fR flags for quoting
 and case folding.
 .sp
 This feature is available as of Postfix 2.5.
-.IP \fB${\fBrecipient\fR}\fR
+.IP \fB${queue_id}\fR
+This macro expands to the queue id.
+.sp
+This feature is available as of Postfix 2.11.
+.IP \fB${recipient}\fR
 This macro expands to the complete recipient address.
 .sp
-A command-line argument that contains \fB${\fBrecipient\fR}\fR
+A command-line argument that contains \fB${recipient}\fR
 expands to as many command-line arguments as there are recipients.
 .sp
 This information is modified by the \fBhqu\fR flags for quoting
 and case folding.
-.IP \fB${\fBsasl_method\fR}\fR
+.IP \fB${sasl_method}\fR
 This macro expands to the name of the SASL authentication
 mechanism in the AUTH command when the Postfix SMTP server
 received the message.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBsasl_sender\fR}\fR
+.IP \fB${sasl_sender}\fR
 This macro expands to the SASL sender name (i.e. the original
 submitter as per RFC 4954) in the MAIL FROM command when
 the Postfix SMTP server received the message.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBsasl_username\fR}\fR
+.IP \fB${sasl_username}\fR
 This macro expands to the SASL user name in the AUTH command
 when the Postfix SMTP server received the message.
 .sp
 This feature is available as of Postfix 2.2.
-.IP \fB${\fBsender\fR}\fR
+.IP \fB${sender}\fR
 This macro expands to the envelope sender address. By default,
 the null sender address expands to MAILER-DAEMON; this can
 be changed with the \fBnull_sender\fR attribute, as described
 above.
 .sp
 This information is modified by the \fBq\fR flag for quoting.
-.IP \fB${\fBsize\fR}\fR
+.IP \fB${size}\fR
 This macro expands to Postfix's idea of the message size, which
 is an approximation of the size of the message as delivered.
-.IP \fB${\fBuser\fR}\fR
+.IP \fB${user}\fR
 This macro expands to the username part of a recipient address.
 For example, with an address \fIuser+foo@domain\fR the username
 part is \fIuser\fR.
 .sp
-A command-line argument that contains \fB${\fBuser\fR}\fR expands
+A command-line argument that contains \fB${user}\fR expands
 into as many command-line arguments as there are recipients.
 .sp
 This information is modified by the \fBu\fR flag for case folding.
index 75083a73c8c526167b70ddb2edcffb27f147b0ed..233a9828fd4cf1ad4f9bed074cdd0e2f760e11ad 100755 (executable)
@@ -830,7 +830,7 @@ while (<>) {
     s/[<bB>]*header_checks[<\/bB>]*\(5\)/<a href="header_checks.5.html">$&<\/a>/g;
 
     s/[<bB>]*main\.cf[<\/bB>]*/<a href="postconf.5.html">$&<\/a>/g;
-    s/[<bB>]*master\.cf[<\/bB>]*/<a href="master.5.html">$&<\/a>/g;
+    s/[<bB>]*mas[-<\/bB>]*\n* *[<bB>]*ter\.cf[<\/bB>]*/<a href="master.5.html">$&<\/a>/g;
 
     # Hyperlink README document names
 
index d4dbebdc1cab487d1fc475ba5922df5556d8972e..af0c64ee1a73e118e3057167d1a34a416099ec84 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      "20131104"
+#define MAIL_RELEASE_DATE      "20131105"
 #define MAIL_VERSION_NUMBER    "2.11"
 
 #ifdef SNAPSHOT
index b6329f02f2d285ce8af3be073d5c0837d85664f2..6c4da668cb82795a2f914c5fa4b14d10d394436a 100644 (file)
 /*     $(\fIname\fR) are also recognized.  Specify \fB$$\fR where a single
 /*     \fB$\fR is wanted.
 /* .RS
-/* .IP \fB${\fBclient_address\fR}\fR
+/* .IP \fB${client_address}\fR
 /*     This macro expands to the remote client network address.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBclient_helo\fR}\fR
+/* .IP \fB${client_helo}\fR
 /*     This macro expands to the remote client HELO command parameter.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBclient_hostname\fR}\fR
+/* .IP \fB${client_hostname}\fR
 /*     This macro expands to the remote client hostname.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBclient_port\fR}\fR
+/* .IP \fB${client_port}\fR
 /*     This macro expands to the remote client TCP port number.
 /* .sp
 /*     This feature is available as of Postfix 2.5.
-/* .IP \fB${\fBclient_protocol\fR}\fR
+/* .IP \fB${client_protocol}\fR
 /*     This macro expands to the remote client protocol.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBdomain\fR}\fR
+/* .IP \fB${domain}\fR
 /*     This macro expands to the domain portion of the recipient
 /*     address.  For example, with an address \fIuser+foo@domain\fR
 /*     the domain is \fIdomain\fR.
 /*     This information is modified by the \fBh\fR flag for case folding.
 /* .sp
 /*     This feature is available as of Postfix 2.5.
-/* .IP \fB${\fBextension\fR}\fR
+/* .IP \fB${extension}\fR
 /*     This macro expands to the extension part of a recipient address.
 /*     For example, with an address \fIuser+foo@domain\fR the extension is
 /*     \fIfoo\fR.
 /* .sp
-/*     A command-line argument that contains \fB${\fBextension\fR}\fR expands
+/*     A command-line argument that contains \fB${extension}\fR expands
 /*     into as many command-line arguments as there are recipients.
 /* .sp
 /*     This information is modified by the \fBu\fR flag for case folding.
-/* .IP \fB${\fBmailbox\fR}\fR
+/* .IP \fB${mailbox}\fR
 /*     This macro expands to the complete local part of a recipient address.
 /*     For example, with an address \fIuser+foo@domain\fR the mailbox is
 /*     \fIuser+foo\fR.
 /* .sp
-/*     A command-line argument that contains \fB${\fBmailbox\fR}\fR
+/*     A command-line argument that contains \fB${mailbox}\fR
 /*     expands to as many command-line arguments as there are recipients.
 /* .sp
 /*     This information is modified by the \fBu\fR flag for case folding.
-/* .IP \fB${\fBnexthop\fR}\fR
+/* .IP \fB${nexthop}\fR
 /*     This macro expands to the next-hop hostname.
 /* .sp
 /*     This information is modified by the \fBh\fR flag for case folding.
-/* .IP \fB${\fBoriginal_recipient\fR}\fR
+/* .IP \fB${original_recipient}\fR
 /*     This macro expands to the complete recipient address before any
 /*     address rewriting or aliasing.
 /* .sp
 /*     A command-line argument that contains
-/*     \fB${\fBoriginal_recipient\fR}\fR expands to as many
+/*     \fB${original_recipient}\fR expands to as many
 /*     command-line arguments as there are recipients.
 /* .sp
 /*     This information is modified by the \fBhqu\fR flags for quoting
 /*     and case folding.
 /* .sp
 /*     This feature is available as of Postfix 2.5.
-/* .IP \fB${\fBrecipient\fR}\fR
+/* .IP \fB${queue_id}\fR
+/*     This macro expands to the queue id.
+/* .sp
+/*     This feature is available as of Postfix 2.11.
+/* .IP \fB${recipient}\fR
 /*     This macro expands to the complete recipient address.
 /* .sp
-/*     A command-line argument that contains \fB${\fBrecipient\fR}\fR
+/*     A command-line argument that contains \fB${recipient}\fR
 /*     expands to as many command-line arguments as there are recipients.
 /* .sp
 /*     This information is modified by the \fBhqu\fR flags for quoting
 /*     and case folding.
-/* .IP \fB${\fBsasl_method\fR}\fR
+/* .IP \fB${sasl_method}\fR
 /*     This macro expands to the name of the SASL authentication
 /*     mechanism in the AUTH command when the Postfix SMTP server
 /*     received the message.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBsasl_sender\fR}\fR
+/* .IP \fB${sasl_sender}\fR
 /*     This macro expands to the SASL sender name (i.e. the original
 /*     submitter as per RFC 4954) in the MAIL FROM command when
 /*     the Postfix SMTP server received the message.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBsasl_username\fR}\fR
+/* .IP \fB${sasl_username}\fR
 /*     This macro expands to the SASL user name in the AUTH command
 /*     when the Postfix SMTP server received the message.
 /* .sp
 /*     This feature is available as of Postfix 2.2.
-/* .IP \fB${\fBsender\fR}\fR
+/* .IP \fB${sender}\fR
 /*     This macro expands to the envelope sender address. By default,
 /*     the null sender address expands to MAILER-DAEMON; this can
 /*     be changed with the \fBnull_sender\fR attribute, as described
 /*     above.
 /* .sp
 /*     This information is modified by the \fBq\fR flag for quoting.
-/* .IP \fB${\fBsize\fR}\fR
+/* .IP \fB${size}\fR
 /*     This macro expands to Postfix's idea of the message size, which
 /*     is an approximation of the size of the message as delivered.
-/* .IP \fB${\fBuser\fR}\fR
+/* .IP \fB${user}\fR
 /*     This macro expands to the username part of a recipient address.
 /*     For example, with an address \fIuser+foo@domain\fR the username
 /*     part is \fIuser\fR.
 /* .sp
-/*     A command-line argument that contains \fB${\fBuser\fR}\fR expands
+/*     A command-line argument that contains \fB${user}\fR expands
 /*     into as many command-line arguments as there are recipients.
 /* .sp
 /*     This information is modified by the \fBu\fR flag for case folding.
 #define PIPE_DICT_SASL_METHOD  "sasl_method"   /* key */
 #define PIPE_DICT_SASL_USERNAME        "sasl_username" /* key */
 #define PIPE_DICT_SASL_SENDER  "sasl_sender"   /* key */
+#define PIPE_DICT_QUEUE_ID     "queue_id"      /* key */
 
  /*
   * Flags used to pass back the type of special parameter found by
@@ -600,6 +605,7 @@ static int parse_callback(int type, VSTRING *buf, char *context)
        PIPE_DICT_SASL_METHOD, 0,
        PIPE_DICT_SASL_USERNAME, 0,
        PIPE_DICT_SASL_SENDER, 0,
+       PIPE_DICT_QUEUE_ID, 0,
        0, 0,
     };
     struct cmd_flags *p;
@@ -736,7 +742,7 @@ static ARGV *expand_argv(const char *service, char **argv,
                        msg_warn("no @ in recipient address: %s",
                                 rcpt_list->info[i].address);
                    if (*var_rcpt_delim == 0
-                     || (ext = split_addr(STR(buf), var_rcpt_delim)) == 0)
+                       || (ext = split_addr(STR(buf), var_rcpt_delim)) == 0)
                        ext = "";               /* insert null arg */
                    dict_update(PIPE_DICT_TABLE, PIPE_DICT_EXTENSION, ext);
                }
@@ -1220,6 +1226,8 @@ static int deliver_message(DELIVER_REQUEST *request, char *service, char **argv)
                request->sasl_username);
     dict_update(PIPE_DICT_TABLE, PIPE_DICT_SASL_SENDER,
                request->sasl_sender);
+    dict_update(PIPE_DICT_TABLE, PIPE_DICT_QUEUE_ID,
+               request->queue_id);
     vstring_free(buf);
 
     if ((expanded_argv = expand_argv(service, attr.command,
index 2bc032107635704a78c98f173426f4f070bc1a61..3b9987d7f453d5134ad119b54d032955c1f5a4f4 100644 (file)
@@ -566,7 +566,7 @@ DICT   *dict_lmdb_open(const char *path, int open_flags, int dict_flags)
      * 
      * By default, LMDB 0.9.9 writes uninitialized heap memory to a
      * world-readable database file, as chunks of up to 4096 bytes. This is a
-     * gross memory disclosure vulnerability: memory content that a program
+     * huge memory disclosure vulnerability: memory content that a program
      * does not intend to share ends up in a world-readable file. The content
      * of uninitialized heap memory depends on program execution history.
      * That history includes code execution in other libraries that are