]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.4-20190106
authorWietse Venema <wietse@porcupine.org>
Sun, 6 Jan 2019 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Tue, 8 Jan 2019 00:23:55 +0000 (19:23 -0500)
postfix/HISTORY
postfix/WISHLIST
postfix/html/postmap.1.html
postfix/man/man1/postmap.1
postfix/src/global/mail_version.h
postfix/src/postmap/postmap.c
postfix/src/util/dict_file.c
postfix/src/util/dict_open.c

index b3a77cf05d4d4ed8f1fb8e122c9e47d0fdd9f7ec..033625768ce00665715b5d9b9db0a19533e20dd1 100644 (file)
@@ -23928,3 +23928,8 @@ Apologies for any names omitted.
        into the maps_find() method. Files: util/dict.h.
        util/dict_file.c, global/maps.[hc], postmap/postmap.c.
 
+20190106
+
+       Documentation: documented the SRC_RHS_IS_FILE flag in 
+       dict_open.c, and updated the -F description in the postmap
+       manpage. Files: util/dict_open.c, postmap/postmap.c.
index edc77926a9f2f65f62a343a1bc2f1b80b3b924e9..67a0abb8ecbd9609a52ebd5db49d037c57d2a3f9 100644 (file)
@@ -1,8 +1,5 @@
 Wish list:
 
-       With DICT_FLAG_RHS_IS_FILE, should dict_update() open a
-       file? base64-encode the value?
-
        In smtpd(8) and postscreen(8), set the ehlo_discard_mask
        to ~0 so that STARTTLS, BDAT, DSN, etc. work only for clients
        that send EHLO.
index d7a2056609c872c805bb88267c0a2f6bf72ae73f..5e84454725f5b252dec6088ee91c2a28e0c50ff8 100644 (file)
@@ -41,143 +41,146 @@ POSTMAP(1)                                                          POSTMAP(1)
        space is stripped off. Whitespace in lookup keys  is  supported  as  of
        Postfix 3.2.
 
-       When  the  <b>-F</b>  option  is  given,  the  <i>value</i>  must specify a filename;
-       <a href="postmap.1.html"><b>postmap</b>(1)</a> will store the base64-encoded content of that  file  instead
-       of the <i>value</i> itself.
+       When  the  <b>-F</b> option is given, the <i>value</i> must specify one or more file-
+       names separated by comma and/or whitespace; <a href="postmap.1.html"><b>postmap</b>(1)</a> will concatenate
+       the  file content (with a newline character inserted between files) and
+       will store the base64-encoded result instead of the <i>value</i>.
 
-       When  the <i>key</i> specifies email address information, the localpart should
+       When the <i>key</i> specifies email address information, the localpart  should
        be enclosed with double quotes if required by <a href="http://tools.ietf.org/html/rfc5322">RFC 5322</a>. For example, an
        address localpart that contains ";", or a localpart that starts or ends
        with ".".
 
-       By default the lookup key is mapped to lowercase to  make  the  lookups
+       By  default  the  lookup key is mapped to lowercase to make the lookups
        case insensitive; as of Postfix 2.3 this case folding happens only with
        tables whose lookup keys are fixed-case strings such as <a href="DATABASE_README.html#types">btree</a>:, <a href="DATABASE_README.html#types">dbm</a>: or
        <a href="DATABASE_README.html#types">hash</a>:. With earlier versions, the lookup key is folded even with tables
-       where a lookup field can match both upper and lower case text, such  as
-       <a href="regexp_table.5.html">regexp</a>:  and  <a href="pcre_table.5.html">pcre</a>:.  This resulted in loss of information with $<i>number</i>
+       where  a lookup field can match both upper and lower case text, such as
+       <a href="regexp_table.5.html">regexp</a>: and <a href="pcre_table.5.html">pcre</a>:. This resulted in loss of  information  with  $<i>number</i>
        substitutions.
 
 <b>COMMAND-LINE ARGUMENTS</b>
-       <b>-b</b>     Enable message body query mode. When reading  lookup  keys  from
-              standard  input  with  "<b>-q  -</b>", process the input as if it is an
-              email message in <a href="http://tools.ietf.org/html/rfc5322">RFC 5322</a> format.  Each  line  of  body  content
+       <b>-b</b>     Enable  message  body  query mode. When reading lookup keys from
+              standard input with "<b>-q -</b>", process the input as  if  it  is  an
+              email  message  in  <a href="http://tools.ietf.org/html/rfc5322">RFC  5322</a> format.  Each line of body content
               becomes one lookup key.
 
-              By  default,  the <b>-b</b> option starts generating lookup keys at the
-              first non-header line, and stops when the end of the message  is
-              reached.   To  simulate  <a href="header_checks.5.html"><b>body_checks</b>(5)</a>  processing, enable MIME
-              parsing  with  <b>-m</b>.  With  this,  the  <b>-b</b>  option  generates   no
-              body-style  lookup  keys  for  attachment  MIME  headers and for
+              By default, the <b>-b</b> option starts generating lookup keys  at  the
+              first  non-header line, and stops when the end of the message is
+              reached.  To simulate  <a href="header_checks.5.html"><b>body_checks</b>(5)</a>  processing,  enable  MIME
+              parsing   with  <b>-m</b>.  With  this,  the  <b>-b</b>  option  generates  no
+              body-style lookup keys  for  attachment  MIME  headers  and  for
               attached message/* headers.
 
-              NOTE: with "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> = yes", the <b>-b</b>  option  option  dis-
-              ables  UTF-8  syntax  checks  on  query keys and lookup results.
+              NOTE:  with  "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a>  = yes", the <b>-b</b> option option dis-
+              ables UTF-8 syntax checks on  query  keys  and  lookup  results.
               Specify the <b>-U</b> option to force UTF-8 syntax checks anyway.
 
               This feature is available in Postfix version 2.6 and later.
 
        <b>-c</b> <i>config</i><b>_</b><i>dir</i>
-              Read the <a href="postconf.5.html"><b>main.cf</b></a>  configuration  file  in  the  named  directory
+              Read  the  <a href="postconf.5.html"><b>main.cf</b></a>  configuration  file  in  the named directory
               instead of the default configuration directory.
 
-       <b>-d</b> <i>key</i> Search  the specified maps for <i>key</i> and remove one entry per map.
-              The exit status is  zero  when  the  requested  information  was
+       <b>-d</b> <i>key</i> Search the specified maps for <i>key</i> and remove one entry per  map.
+              The  exit  status  is  zero  when  the requested information was
               found.
 
-              If  a  key value of <b>-</b> is specified, the program reads key values
-              from the standard input stream. The exit status is zero when  at
+              If a key value of <b>-</b> is specified, the program reads  key  values
+              from  the standard input stream. The exit status is zero when at
               least one of the requested keys was found.
 
-       <b>-f</b>     Do  not  fold  the  lookup  key  to lower case while creating or
+       <b>-f</b>     Do not fold the lookup key  to  lower  case  while  creating  or
               querying a table.
 
-              With Postfix version 2.3 and later, this option  has  no  effect
+              With  Postfix  version  2.3 and later, this option has no effect
               for regular expression tables. There, case folding is controlled
               by appending a flag to a pattern.
 
-       <b>-F</b>     When creating a map from source file, replace  each  value  with
-              the  base64-encoded  content of the named file.  When querying a
-              map, or listing a map, base64-decode each value.
+       <b>-F</b>     When querying a map, or listing a map, base64-decode each value.
+              When creating a map from source file, process each  value  as  a
+              list  of  filenames, concatenate the content of those files, and
+              store the base64-encoded result instead of the value (see  INPUT
+              FORMAT for details).
 
-       <b>-h</b>     Enable message header query mode. When reading lookup keys  from
-              standard  input  with  "<b>-q  -</b>", process the input as if it is an
-              email message in <a href="http://tools.ietf.org/html/rfc5322">RFC 5322</a>  format.   Each  logical  header  line
-              becomes  one  lookup key. A multi-line header becomes one lookup
+       <b>-h</b>     Enable  message header query mode. When reading lookup keys from
+              standard input with "<b>-q -</b>", process the input as  if  it  is  an
+              email  message  in  <a href="http://tools.ietf.org/html/rfc5322">RFC  5322</a>  format.  Each logical header line
+              becomes one lookup key. A multi-line header becomes  one  lookup
               key with one or more embedded newline characters.
 
-              By default, the <b>-h</b> option generates lookup keys until the  first
-              non-header  line  is reached.  To simulate <a href="header_checks.5.html"><b>header_checks</b>(5)</a> pro-
-              cessing, enable MIME parsing with <b>-m</b>. With this, the  <b>-h</b>  option
-              also  generates  header-style  lookup  keys  for attachment MIME
+              By  default, the <b>-h</b> option generates lookup keys until the first
+              non-header line is reached.  To simulate  <a href="header_checks.5.html"><b>header_checks</b>(5)</a>  pro-
+              cessing,  enable  MIME parsing with <b>-m</b>. With this, the <b>-h</b> option
+              also generates header-style  lookup  keys  for  attachment  MIME
               headers and for attached message/* headers.
 
-              NOTE: with "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> = yes", the <b>-b</b>  option  option  dis-
-              ables  UTF-8  syntax  checks  on  query keys and lookup results.
+              NOTE:  with  "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a>  = yes", the <b>-b</b> option option dis-
+              ables UTF-8 syntax checks on  query  keys  and  lookup  results.
               Specify the <b>-U</b> option to force UTF-8 syntax checks anyway.
 
               This feature is available in Postfix version 2.6 and later.
 
-       <b>-i</b>     Incremental mode. Read entries from standard input  and  do  not
-              truncate  an existing database. By default, <a href="postmap.1.html"><b>postmap</b>(1)</a> creates a
+       <b>-i</b>     Incremental  mode.  Read  entries from standard input and do not
+              truncate an existing database. By default, <a href="postmap.1.html"><b>postmap</b>(1)</a> creates  a
               new database from the entries in <b>file_name</b>.
 
        <b>-m</b>     Enable MIME parsing with "<b>-b</b>" and "<b>-h</b>".
 
               This feature is available in Postfix version 2.6 and later.
 
-       <b>-N</b>     Include the terminating null character  that  terminates  lookup
-              keys  and  values.  By  default, <a href="postmap.1.html"><b>postmap</b>(1)</a> does whatever is the
+       <b>-N</b>     Include  the  terminating  null character that terminates lookup
+              keys and values. By default, <a href="postmap.1.html"><b>postmap</b>(1)</a>  does  whatever  is  the
               default for the host operating system.
 
-       <b>-n</b>     Don't include the terminating  null  character  that  terminates
-              lookup  keys and values. By default, <a href="postmap.1.html"><b>postmap</b>(1)</a> does whatever is
+       <b>-n</b>     Don't  include  the  terminating  null character that terminates
+              lookup keys and values. By default, <a href="postmap.1.html"><b>postmap</b>(1)</a> does whatever  is
               the default for the host operating system.
 
-       <b>-o</b>     Do not release root privileges when processing a non-root  input
-              file.  By  default, <a href="postmap.1.html"><b>postmap</b>(1)</a> drops root privileges and runs as
+       <b>-o</b>     Do  not release root privileges when processing a non-root input
+              file. By default, <a href="postmap.1.html"><b>postmap</b>(1)</a> drops root privileges and  runs  as
               the source file owner instead.
 
-       <b>-p</b>     Do not inherit the file access permissions from the  input  file
-              when  creating  a  new  file.   Instead,  create a new file with
+       <b>-p</b>     Do  not  inherit the file access permissions from the input file
+              when creating a new file.   Instead,  create  a  new  file  with
               default access permissions (mode 0644).
 
-       <b>-q</b> <i>key</i> Search the specified maps for <i>key</i>  and  write  the  first  value
-              found  to  the  standard  output stream. The exit status is zero
+       <b>-q</b> <i>key</i> Search  the  specified  maps  for  <i>key</i> and write the first value
+              found to the standard output stream. The  exit  status  is  zero
               when the requested information was found.
 
-              Note: this performs a single query with the  key  as  specified,
-              and  does  not make iterative queries with substrings of the key
-              as described for  <a href="access.5.html">access(5)</a>,  <a href="canonical.5.html">canonical(5)</a>,  <a href="transport.5.html">transport(5)</a>,  <a href="virtual.5.html">vir-</a>
+              Note:  this  performs  a single query with the key as specified,
+              and does not make iterative queries with substrings of  the  key
+              as  described  for  <a href="access.5.html">access(5)</a>,  <a href="canonical.5.html">canonical(5)</a>, <a href="transport.5.html">transport(5)</a>, <a href="virtual.5.html">vir-</a>
               <a href="virtual.5.html">tual(5)</a> and other Postfix table-driven features.
 
-              If  a  key value of <b>-</b> is specified, the program reads key values
-              from the standard input stream and writes one line of <i>key  value</i>
+              If a key value of <b>-</b> is specified, the program reads  key  values
+              from  the standard input stream and writes one line of <i>key value</i>
               output for each key that was found. The exit status is zero when
               at least one of the requested keys was found.
 
-       <b>-r</b>     When updating a table, do not complain about attempts to  update
+       <b>-r</b>     When  updating a table, do not complain about attempts to update
               existing entries, and make those updates anyway.
 
-       <b>-s</b>     Retrieve  all database elements, and write one line of <i>key value</i>
-              output for each element. The elements are  printed  in  database
-              order,  which  is not necessarily the same as the original input
+       <b>-s</b>     Retrieve all database elements, and write one line of <i>key  value</i>
+              output  for  each  element. The elements are printed in database
+              order, which is not necessarily the same as the  original  input
               order.
 
-              This feature is available in Postfix version 2.2 and later,  and
+              This  feature is available in Postfix version 2.2 and later, and
               is not available for all database types.
 
-       <b>-u</b>     Disable  UTF-8 support. UTF-8 support is enabled by default when
-              "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> = yes". It requires that keys  and  values  are
+       <b>-u</b>     Disable UTF-8 support. UTF-8 support is enabled by default  when
+              "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a>  =  yes".  It requires that keys and values are
               valid UTF-8 strings.
 
        <b>-U</b>     With "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> = yes", force UTF-8 syntax checks with the
               <b>-b</b> and <b>-h</b> options.
 
-       <b>-v</b>     Enable verbose  logging  for  debugging  purposes.  Multiple  <b>-v</b>
+       <b>-v</b>     Enable  verbose  logging  for  debugging  purposes.  Multiple <b>-v</b>
               options make the software increasingly verbose.
 
-       <b>-w</b>     When  updating a table, do not complain about attempts to update
+       <b>-w</b>     When updating a table, do not complain about attempts to  update
               existing entries, and ignore those attempts.
 
        Arguments:
@@ -189,32 +192,32 @@ POSTMAP(1)                                                          POSTMAP(1)
               The <a href="postmap.1.html"><b>postmap</b>(1)</a> command can query any supported file type, but it
               can create only the following file types:
 
-              <b>btree</b>  The output file is  a  btree  file,  named  <i>file</i><b>_</b><i>name</i><b>.db</b>.
-                     This  is  available  on systems with support for <b>db</b> data-
+              <b>btree</b>  The  output  file  is  a  btree file, named <i>file</i><b>_</b><i>name</i><b>.db</b>.
+                     This is available on systems with support  for  <b>db</b>  data-
                      bases.
 
-              <b>cdb</b>    The output consists of  one  file,  named  <i>file</i><b>_</b><i>name</i><b>.cdb</b>.
-                     This  is  available on systems with support for <b>cdb</b> data-
+              <b>cdb</b>    The  output  consists  of  one file, named <i>file</i><b>_</b><i>name</i><b>.cdb</b>.
+                     This is available on systems with support for  <b>cdb</b>  data-
                      bases.
 
               <b>dbm</b>    The output consists of two files, named <i>file</i><b>_</b><i>name</i><b>.pag</b> and
                      <i>file</i><b>_</b><i>name</i><b>.dir</b>.  This is available on systems with support
                      for <b>dbm</b> databases.
 
-              <b>hash</b>   The output file is a  hashed  file,  named  <i>file</i><b>_</b><i>name</i><b>.db</b>.
-                     This  is  available  on systems with support for <b>db</b> data-
+              <b>hash</b>   The  output  file  is  a hashed file, named <i>file</i><b>_</b><i>name</i><b>.db</b>.
+                     This is available on systems with support  for  <b>db</b>  data-
                      bases.
 
-              <b>fail</b>   A table that reliably fails all requests. The lookup  ta-
-                     ble  name  is used for logging only. This table exists to
+              <b>fail</b>   A  table that reliably fails all requests. The lookup ta-
+                     ble name is used for logging only. This table  exists  to
                      simplify Postfix error tests.
 
               <b>sdbm</b>   The output consists of two files, named <i>file</i><b>_</b><i>name</i><b>.pag</b> and
                      <i>file</i><b>_</b><i>name</i><b>.dir</b>.  This is available on systems with support
                      for <b>sdbm</b> databases.
 
-              When no <i>file</i><b>_</b><i>type</i> is specified, the software uses  the  database
-              type   specified  via  the  <b><a href="postconf.5.html#default_database_type">default_database_type</a></b>  configuration
+              When  no  <i>file</i><b>_</b><i>type</i> is specified, the software uses the database
+              type  specified  via  the  <b><a href="postconf.5.html#default_database_type">default_database_type</a></b>   configuration
               parameter.
 
        <i>file</i><b>_</b><i>name</i>
@@ -223,11 +226,11 @@ POSTMAP(1)                                                          POSTMAP(1)
 
 <b>DIAGNOSTICS</b>
        Problems are logged to the standard error stream and to <b>syslogd</b>(8).  No
-       output means that no problems  were  detected.  Duplicate  entries  are
+       output  means  that  no  problems  were detected. Duplicate entries are
        skipped and are flagged with a warning.
 
        <a href="postmap.1.html"><b>postmap</b>(1)</a> terminates with zero exit status in case of success (includ-
-       ing successful "<b>postmap -q</b>" lookup) and terminates with  non-zero  exit
+       ing  successful  "<b>postmap -q</b>" lookup) and terminates with non-zero exit
        status in case of failure.
 
 <b>ENVIRONMENT</b>
@@ -238,12 +241,12 @@ POSTMAP(1)                                                          POSTMAP(1)
               Enable verbose logging for debugging purposes.
 
 <b>CONFIGURATION PARAMETERS</b>
-       The  following  <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to this pro-
-       gram.  The text below provides only  a  parameter  summary.  See  <a href="postconf.5.html"><b>post-</b></a>
+       The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant to  this  pro-
+       gram.   The  text  below  provides  only a parameter summary. See <a href="postconf.5.html"><b>post-</b></a>
        <a href="postconf.5.html"><b>conf</b>(5)</a> for more details including examples.
 
        <b><a href="postconf.5.html#berkeley_db_create_buffer_size">berkeley_db_create_buffer_size</a> (16777216)</b>
-              The  per-table I/O buffer size for programs that create Berkeley
+              The per-table I/O buffer size for programs that create  Berkeley
               DB hash or btree tables.
 
        <b><a href="postconf.5.html#berkeley_db_read_buffer_size">berkeley_db_read_buffer_size</a> (131072)</b>
@@ -251,7 +254,7 @@ POSTMAP(1)                                                          POSTMAP(1)
               hash or btree tables.
 
        <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 <a href="master.5.html">master.cf</a> con-
+              The default location of the Postfix <a href="postconf.5.html">main.cf</a> and  <a href="master.5.html">master.cf</a>  con-
               figuration files.
 
        <b><a href="postconf.5.html#default_database_type">default_database_type</a> (see 'postconf -d' output)</b>
@@ -259,19 +262,19 @@ POSTMAP(1)                                                          POSTMAP(1)
               and <a href="postmap.1.html"><b>postmap</b>(1)</a> commands.
 
        <b><a href="postconf.5.html#import_environment">import_environment</a> (see 'postconf -d' output)</b>
-              The  list  of  environment  parameters that a privileged Postfix
-              process will  import  from  a  non-Postfix  parent  process,  or
+              The list of environment parameters  that  a  privileged  Postfix
+              process  will  import  from  a  non-Postfix  parent  process, or
               name=value environment overrides.
 
        <b><a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> (yes)</b>
-              Enable  preliminary SMTPUTF8 support for the protocols described
+              Enable preliminary SMTPUTF8 support for the protocols  described
               in <a href="http://tools.ietf.org/html/rfc6531">RFC 6531</a>..6533.
 
        <b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
               The syslog facility of Postfix logging.
 
        <b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
-              A prefix that  is  prepended  to  the  process  name  in  syslog
+              A  prefix  that  is  prepended  to  the  process  name in syslog
               records, so that, for example, "smtpd" becomes "prefix/smtpd".
 
 <b>SEE ALSO</b>
index a6f32c4dbb3d49c1a1373b2fd417dc2d379a5b4c..bfb06328d794677b3d16932f5dbe5b2f15f06c49 100644 (file)
@@ -49,9 +49,11 @@ surrounding white space is stripped off. Whitespace in lookup
 keys is supported as of Postfix 3.2.
 
 When the \fB\-F\fR option is given, the \fIvalue\fR must
-specify a filename; \fBpostmap\fR(1) will store the
-base64\-encoded content of that file instead of the \fIvalue\fR
-itself.
+specify one or more filenames separated by comma and/or
+whitespace; \fBpostmap\fR(1) will concatenate the file
+content (with a newline character inserted between files)
+and will store the base64\-encoded result instead of the
+\fIvalue\fR.
 
 When the \fIkey\fR specifies email address information, the
 localpart should be enclosed with double quotes if required
@@ -109,9 +111,11 @@ With Postfix version 2.3 and later, this option has no
 effect for regular expression tables. There, case folding
 is controlled by appending a flag to a pattern.
 .IP \fB\-F\fR
-When creating a map from source file, replace each value
-with the base64\-encoded content of the named file.  When
-querying a map, or listing a map, base64\-decode each value.
+When querying a map, or listing a map, base64\-decode each
+value. When creating a map from source file, process each
+value as a list of filenames, concatenate the content of
+those files, and store the base64\-encoded result instead
+of the value (see INPUT FORMAT for details).
 .IP \fB\-h\fR
 Enable message header query mode. When reading lookup keys
 from standard input with "\fB\-q \-\fR", process the input
index 012f65a779a9f053b8b0915e2bbdc555c6e26055..f4091897b4e112b5d01dd69237396972775965f1 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      "20181229"
+#define MAIL_RELEASE_DATE      "20190106"
 #define MAIL_VERSION_NUMBER    "3.4"
 
 #ifdef SNAPSHOT
index 9f368abb552607c3889b6637d3fcc6af408d1789..db40a38c3c21d10ea9accb423642bd0deb77d106 100644 (file)
 /*     keys is supported as of Postfix 3.2.
 /*
 /*     When the \fB-F\fR option is given, the \fIvalue\fR must
-/*     specify a filename; \fBpostmap\fR(1) will store the
-/*     base64-encoded content of that file instead of the \fIvalue\fR
-/*     itself.
+/*     specify one or more filenames separated by comma and/or
+/*     whitespace; \fBpostmap\fR(1) will concatenate the file
+/*     content (with a newline character inserted between files)
+/*     and will store the base64-encoded result instead of the
+/*     \fIvalue\fR.
 /*
 /*     When the \fIkey\fR specifies email address information, the
 /*     localpart should be enclosed with double quotes if required
 /*     effect for regular expression tables. There, case folding
 /*     is controlled by appending a flag to a pattern.
 /* .IP \fB-F\fR
-/*     When creating a map from source file, replace each value
-/*     with the base64-encoded content of the named file.  When
-/*     querying a map, or listing a map, base64-decode each value.
+/*     When querying a map, or listing a map, base64-decode each
+/*     value. When creating a map from source file, process each
+/*     value as a list of filenames, concatenate the content of
+/*     those files, and store the base64-encoded result instead
+/*     of the value (see INPUT FORMAT for details).
 /* .IP \fB-h\fR
 /*     Enable message header query mode. When reading lookup keys
 /*     from standard input with "\fB-q -\fR", process the input
@@ -884,9 +888,9 @@ static void postmap_seq(const char *map_type, const char *map_name,
            if ((unb64 = dict_file_from_b64(dict, value)) == 0) {
                err = dict_file_get_error(dict);
                msg_warn("table %s:%s: key %s: %s",
-                        dict->type, dict->name,
-                        key, err);
+                        dict->type, dict->name, key, err);
                myfree(err);
+               /* dict->error = DICT_ERR_CONFIG; */
                continue;
            }
            value = STR(unb64);
index ca4924c850801394537889b662b45f38b0e554c5..eb86b3522b301caf0212cf4f4039b3211a3b1b0f 100644 (file)
@@ -222,9 +222,7 @@ const char *dict_file_lookup(DICT *dict, const char *key)
        return (0);
     if ((unb64 = dict_file_from_b64(dict, res)) == 0) {
        err = dict_file_get_error(dict);
-       msg_warn("table %s:%s: key %s: %s",
-                dict->type, dict->name,
-                key, err);
+       msg_warn("table %s:%s: key %s: %s", dict->type, dict->name, key, err);
        myfree(err);
        dict->error = DICT_ERR_CONFIG;
        return (0);
index ca8df67eea5abd2ce6a5c1892ec56f0efec23501..afea3917f05496cc9a0c2a398fca6f414064cfa3 100644 (file)
 /*     request with a non-UTF-8 key, skip an update request with
 /*     a non-UTF-8 value, and fail a lookup request with a non-UTF-8
 /*     value.
+/* .IP DICT_FLAG_SRC_RHS_IS_FILE
+/*     With dictionaries that are created from source text, each
+/*     value in the source of a dictionary specifies a list of
+/*     file names separated by comma and/or whitespace. The file
+/*     contents are concatenated with a newline inserted between
+/*     files, and the base64-encoded result is stored under the
+/*     key.
+/* .sp
+/*     NOTE 1: it is up to the application to decode lookup results
+/*     with dict_file_lookup() or equivalent (this requires that
+/*     the dictionary is opened with DICT_FLAG_SRC_RHS_IS_FILE).
+/*     Decoding is not built into the normal dictionary lookup
+/*     method, because that would complicate dictionary nesting,
+/*     pipelining, and proxying.
+/* .sp
+/*     NOTE 2: it is up to the application to convert file names
+/*     into base64-encoded file content before calling the dictionary
+/*     update method (see dict_file(3) for support). Automatic
+/*     file content encoding is available only when a dictionary
+/*     is created from source text.
 /* .PP
 /*     Specify DICT_FLAG_NONE for no special processing.
 /*