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

postfix-2.11-20131121

This commit is contained in:
Wietse Venema 2013-11-21 00:00:00 -05:00 committed by Viktor Dukhovni
parent 4e73c4a049
commit 49530a24cc
33 changed files with 1042 additions and 313 deletions

View File

@ -19209,3 +19209,10 @@ Apologies for any names omitted.
Workaround: increased the 5s connection timeout to 30s.
Viktor Dukhovni. File: posttls-finger/posttls-finger.c.
20131121
Documentation: new socketmap_table(5) and lmdb_table(5)
manpages. Files: mantools/postlink, conf/postfix-files,
html/Makefile.in, man/Makefile.in, proto/DATABASE_README.html,
postconf/postconf.c, proto/socketmap_table, proto/lmdb_table.

View File

@ -195,10 +195,11 @@ To find out what database types your Postfix system supports, use the "ppooss
(CIDR) patterns. The table format is described in cidr_table(5).
ddbbmm
An indexed file type based on hashing. This is available only on
systems with support for DBM databases. Database files are created with
the postmap(1) or postalias(1) command. The lookup table name as used
in "dbm:table" is the database file name without the ".dir" or ".pag"
suffix.
systems with support for DBM databases. Public database files are
created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The lookup table name as
used in "dbm:table" is the database file name without the ".dir" or
".pag" suffix.
eennvviirroonn
The UNIX process environment array. The lookup key is the variable
name. The lookup table name in "environ:table" is ignored.
@ -207,79 +208,80 @@ To find out what database types your Postfix system supports, use the "ppooss
for logging only. This table exists to simplify Postfix error tests.
hhaasshh
An indexed file type based on hashing. This is available only on
systems with support for Berkeley DB databases. Database files are
created with the postmap(1) or postalias(1) command. The database name
as used in "hash:table" is the database file name without the ".db"
suffix.
systems with support for Berkeley DB databases. Public database files
are created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The database name as used
in "hash:table" is the database file name without the ".db" suffix.
iinntteerrnnaall
A non-shared, in-memory hash table. Its content are lost when a process
terminates.
llmmddbb (unsupported)
The OpenLDAP LMDB database (a memory-mapped, persistent file). Database
files are created with the postmap(1) or postalias(1) command. The
database name as used in "lmdb:table" is the database file name without
the ".lmdb" suffix.
llmmddbb
OpenLDAP LMDB database (a memory-mapped. This is available only on
systems with support for LMDB databases. Public database files are
created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The database name as used
in "lmdb:table" is the database file name without the ".lmdb" suffix.
See lmdb_table(5) for details.
llddaapp (read-only)
Perform lookups using the LDAP protocol. Configuration details are
given in the ldap_table(5).
LDAP database client. Configuration details are given in the ldap_table
(5).
mmeemmccaacchhee
Perform memcache database lookups or updates. Configuration details are
given in memcache_table(5).
Memcache database client. Configuration details are given in
memcache_table(5).
mmyyssqqll (read-only)
Perform MySQL database lookups. Configuration details are given in
mysql_table(5).
MySQL database client. Configuration details are given in mysql_table
(5).
nneettiinnffoo (read-only)
Perform Netinfo database lookups.
Netinfo database client.
nniiss (read-only)
Perform NIS database lookups.
NIS database client.
nniisspplluuss (read-only)
Perform NIS+ database lookups. Configuration details are given in
nisplus_table(5).
NIS+ database client. Configuration details are given in nisplus_table
(5).
ppccrree (read-only)
A lookup table based on Perl Compatible Regular Expressions. The file
format is described in pcre_table(5). The lookup table name as used in
"pcre:table" is the name of the regular expression file.
ppggssqqll (read-only)
Perform PostgreSQL database lookups. Configuration details are given in
PostgreSQL database client. Configuration details are given in
pgsql_table(5).
pprrooxxyy
Access information via the Postfix proxymap(8) service. The lookup
table name syntax is "proxy:type:table".
Postfix proxymap(8) client for shared access to Postfix databases. The
lookup table name syntax is "proxy:type:table".
rreeggeexxpp (read-only)
A lookup table based on regular expressions. The file format is
described in regexp_table(5). The lookup table name as used in "regexp:
table" is the name of the regular expression file.
ssddbbmm
An indexed file type based on hashing. This is available only on
systems with support for SDBM databases. Database files are created
with the postmap(1) or postalias(1) command. The lookup table name as
systems with support for SDBM databases. Public database files are
created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The lookup table name as
used in "sdbm:table" is the database file name without the ".dir" or
".pag" suffix.
ssoocckkeettmmaapp (read-only)
Query a Sendmail-style socketmap server. The name of the table
specifies iinneett:host:port:socketmap-name for a TCP-based server, or
uunniixx:pathname:socketmap-name for a UNIX-domain server. In both cases
socketmap-name is the name of the socketmap.
Sendmail-style socketmap client. The name of the table is either iinneett:
host:port:name for a TCP/IP server, or uunniixx:pathname:name for a UNIX-
domain server. See socketmap_table(5) for details.
ssqqlliittee (read-only)
Perform SQLite database lookups. Configuration details are given in
sqlite_table(5).
SQLite database. Configuration details are given in sqlite_table(5).
ssttaattiicc (read-only)
Always returns its lookup table name as lookup result. For example, the
lookup table "static:foobar" always returns the string "foobar" as
A table that always returns its name as the lookup result. For example,
the lookup table "static:foobar" always returns the string "foobar" as
lookup result.
ttccpp
Access information through a TCP/IP server. The protocol is described
in tcp_table(5). The lookup table name is "tcp:host:port" where "host"
specifies a symbolic hostname or a numeric IP address, and "port"
specifies a symbolic service name or a numeric port number.
TCP/IP client. The protocol is described in tcp_table(5). The lookup
table name is "tcp:host:port" where "host" specifies a symbolic
hostname or a numeric IP address, and "port" specifies a symbolic
service name or a numeric port number.
tteexxtthhaasshh (read-only)
This produces similar results as hash: files, except that you don't
have to run the postmap(1) command before you can use the file, and
that texthash: does not detect changes after the file is read. The
A table that produces similar results as hash: files, except that you
don't have to run the postmap(1) command before you can use the file,
and that texthash: does not detect changes after the file is read. The
lookup table name is "texthash:filename", where the file name is taken
literally; no suffix is appended.
uunniixx (read-only)
A limited way to query the UNIX authentication database. The following
A limited view of the UNIX authentication database. The following
tables are implemented:
uunniixx::ppaasssswwdd..bbyynnaammee
The table is the UNIX password database. The key is a login name.

View File

@ -165,9 +165,11 @@ $manpage_directory/man5/generics.5:f:root:-:644:o
$manpage_directory/man5/generic.5:f:root:-:644
$manpage_directory/man5/header_checks.5:f:root:-:644
$manpage_directory/man5/ldap_table.5:f:root:-:644
$manpage_directory/man5/lmdb_table.5:f:root:-:644
$manpage_directory/man5/master.5:f:root:-:644
$manpage_directory/man5/memcache_table.5:f:root:-:644
$manpage_directory/man5/mysql_table.5:f:root:-:644
$manpage_directory/man5/socketmap_table.5:f:root:-:644
$manpage_directory/man5/sqlite_table.5:f:root:-:644
$manpage_directory/man5/nisplus_table.5:f:root:-:644
$manpage_directory/man5/pcre_table.5:f:root:-:644

View File

@ -286,10 +286,11 @@ Routing (CIDR) patterns. The table format is described in <a href="cidr_table.5.
<dt> <b>dbm</b> </dt>
<dd> An indexed file type based on hashing. This is available only
on systems with support for DBM databases. Database files are
created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command. The lookup
table name as used in "dbm:table" is the database file name without
the ".dir" or ".pag" suffix. </dd>
on systems with support for DBM databases. Public database files
are created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command, and private
databases are maintained by Postfix daemons. The lookup table name
as used in "dbm:table" is the database file name without the ".dir"
or ".pag" suffix. </dd>
<dt> <b>environ</b> </dt>
@ -306,50 +307,53 @@ error tests. </dd>
<dt> <b>hash</b> </dt>
<dd> An indexed file type based on hashing. This is available only
on systems with support for Berkeley DB databases. Database files are
created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command. The database
on systems with support for Berkeley DB databases. Public database
files are created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command, and
private databases are maintained by Postfix daemons. The database
name as used in "hash:table" is the database file name without the
".db" suffix. </dd>
".db" suffix. </dd>
<dt> <b>internal</b> </dt>
<dd> A non-shared, in-memory hash table. Its content are lost when
a process terminates. </dd>
<dt> <b>lmdb</b> (unsupported) </dt>
<dt> <b>lmdb</b> </dt>
<dd> The OpenLDAP LMDB database (a memory-mapped, persistent file).
Database files are created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a>
command. The database name as used in "<a href="LMDB_README.html">lmdb</a>:table" is the database
file name without the ".lmdb" suffix.
<dd> OpenLDAP LMDB database (a memory-mapped. This is available
only on systems with support for LMDB databases. Public database
files are created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command, and
private databases are maintained by Postfix daemons. The database
name as used in "<a href="lmdb_table.5.html">lmdb</a>:table" is the database file name without the
".lmdb" suffix. See <a href="lmdb_table.5.html">lmdb_table(5)</a> for details. </dd>
<dt> <b>ldap</b> (read-only) </dt>
<dd> Perform lookups using the LDAP protocol. Configuration details
are given in the <a href="ldap_table.5.html">ldap_table(5)</a>. </dd>
<dd> LDAP database client. Configuration details are given in the
<a href="ldap_table.5.html">ldap_table(5)</a>. </dd>
<dt> <b>memcache</b> </dt>
<dd> Perform memcache database lookups or updates. Configuration
details are given in <a href="memcache_table.5.html">memcache_table(5)</a>. </dd>
<dd> Memcache database client. Configuration details are given in
<a href="memcache_table.5.html">memcache_table(5)</a>. </dd>
<dt> <b>mysql</b> (read-only) </dt>
<dd> Perform MySQL database lookups. Configuration details are given
in <a href="mysql_table.5.html">mysql_table(5)</a>. </dd>
<dd> MySQL database client. Configuration details are given in
<a href="mysql_table.5.html">mysql_table(5)</a>. </dd>
<dt> <b>netinfo</b> (read-only) </dt>
<dd> Perform Netinfo database lookups. </dd>
<dd> Netinfo database client. </dd>
<dt> <b>nis</b> (read-only) </dt>
<dd> Perform NIS database lookups. </dd>
<dd> NIS database client. </dd>
<dt> <b>nisplus</b> (read-only) </dt>
<dd> Perform NIS+ database lookups. Configuration details are given
in <a href="nisplus_table.5.html">nisplus_table(5)</a>. </dd>
<dd> NIS+ database client. Configuration details are given in
<a href="nisplus_table.5.html">nisplus_table(5)</a>. </dd>
<dt> <b>pcre</b> (read-only) </dt>
@ -360,13 +364,14 @@ file. </dd>
<dt> <b>pgsql</b> (read-only) </dt>
<dd> Perform PostgreSQL database lookups. Configuration details
are given in <a href="pgsql_table.5.html">pgsql_table(5)</a>. </dd>
<dd> PostgreSQL database client. Configuration details are given
in <a href="pgsql_table.5.html">pgsql_table(5)</a>. </dd>
<dt> <b>proxy</b> </dt>
<dd> Access information via the Postfix <a href="proxymap.8.html">proxymap(8)</a> service. The
lookup table name syntax is "<a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html">type:table</a>". </dd>
<dd> Postfix <a href="proxymap.8.html">proxymap(8)</a> client for shared access to Postfix
databases. The lookup table name syntax is "<a href="proxymap.8.html">proxy</a>:<a href="DATABASE_README.html">type:table</a>".
</dd>
<dt> <b>regexp</b> (read-only) </dt>
@ -377,52 +382,49 @@ is described in <a href="regexp_table.5.html">regexp_table(5)</a>. The lookup ta
<dt> <b>sdbm</b> </dt>
<dd> An indexed file type based on hashing. This is available only
on systems with support for SDBM databases. Database files are
created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command. The lookup
table name as used in "sdbm:table" is the database file name without
the ".dir" or ".pag" suffix. </dd>
on systems with support for SDBM databases. Public database files
are created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1.html">postalias(1)</a> command, and private
databases are maintained by Postfix daemons. The lookup table name
as used in "sdbm:table" is the database file name without the ".dir"
or ".pag" suffix. </dd>
<dt> <b>socketmap</b> (read-only) </dt>
<dd> Query a Sendmail-style socketmap server. The name of the table
specifies <b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i>
for a TCP-based server, or
<b>unix</b>:<i>pathname</i>:<i>socketmap-name</i> for a UNIX-domain
server. In both cases <i>socketmap-name</i> is the name of the
socketmap. </dd>
<dd> Sendmail-style socketmap client. The name of the table is
either <b>inet</b>:<i>host</i>:<i>port</i>:<i>name</i> for a TCP/IP
server, or <b>unix</b>:<i>pathname</i>:<i>name</i> for a UNIX-domain
server. See <a href="socketmap_table.5.html">socketmap_table(5)</a> for details. </dd>
<dt> <b>sqlite</b> (read-only) </dt>
<dd> Perform SQLite database lookups. Configuration details are given
in <a href="sqlite_table.5.html">sqlite_table(5)</a>. </dd>
<dd> SQLite database. Configuration details are given in <a href="sqlite_table.5.html">sqlite_table(5)</a>.
</dd>
<dt> <b>static</b> (read-only) </dt>
<dd> Always returns its lookup table name as lookup result. For
example, the lookup table "<a href="DATABASE_README.html#types">static</a>:foobar" always returns the string
"foobar" as lookup result. </dd>
<dd> A table that always returns its name as the lookup result.
For example, the lookup table "<a href="DATABASE_README.html#types">static</a>:foobar" always returns the
string "foobar" as lookup result. </dd>
<dt> <b>tcp</b> </dt>
<dd> Access information through a TCP/IP server. The protocol is
described in <a href="tcp_table.5.html">tcp_table(5)</a>. The lookup table name is "<a href="tcp_table.5.html">tcp</a>:host:port"
where "host" specifies a symbolic hostname or a numeric IP address,
and "port" specifies a symbolic service name or a numeric port
number.
</dd>
<dd> TCP/IP client. The protocol is described in <a href="tcp_table.5.html">tcp_table(5)</a>. The
lookup table name is "<a href="tcp_table.5.html">tcp</a>:host:port" where "host" specifies a
symbolic hostname or a numeric IP address, and "port" specifies a
symbolic service name or a numeric port number. </dd>
<dt> <b>texthash</b> (read-only) </dt>
<dd> This produces similar results as hash: files, except that you
don't have to run the <a href="postmap.1.html">postmap(1)</a> command before you can use the
file, and that <a href="DATABASE_README.html#types">texthash</a>: does not detect changes after the file is
read. The lookup table name is "<a href="DATABASE_README.html#types">texthash</a>:filename", where the file
name is taken literally; no suffix is appended. </dd>
<dd> A table that produces similar results as hash: files, except
that you don't have to run the <a href="postmap.1.html">postmap(1)</a> command before you can
use the file, and that <a href="DATABASE_README.html#types">texthash</a>: does not detect changes after the
file is read. The lookup table name is "<a href="DATABASE_README.html#types">texthash</a>:filename", where
the file name is taken literally; no suffix is appended. </dd>
<dt> <b>unix</b> (read-only) </dt>
<dd> A limited way to query the UNIX authentication database. The
following tables are implemented:
<dd> A limited view of the UNIX authentication database. The following
tables are implemented:
<dl>

View File

@ -177,7 +177,7 @@ errors. </strong></p>
<dl>
<dt> Problem: </dt> <dd> <p> The "postmap <a href="LMDB_README.html">lmdb</a>:filename" command
<dt> Problem: </dt> <dd> <p> The "postmap <a href="lmdb_table.5.html">lmdb</a>:filename" command
fails with an MDB_TXN_FULL error. This problem does not exist with
other Postfix databases. </p> </dd>
@ -199,7 +199,7 @@ resolved by increasing the database size. </p> </dd>
<!--
<p> Problem: </dt> <dd> <p> The "postmap <a href="LMDB_README.html">lmdb</a>:filename" command
<p> Problem: </dt> <dd> <p> The "postmap <a href="lmdb_table.5.html">lmdb</a>:filename" command
fails with an MDB_MAP_FULL error. This problem does not exist with
other Postfix databases. </p> </dd>
@ -212,7 +212,7 @@ other Postfix databases. </p> </dd>
<p> LMDB databases have a hard size limit (configured with the
<a href="postconf.5.html#lmdb_map_size">lmdb_map_size</a> configuration parameter). </p>
<p> When executing "postmap <a href="LMDB_README.html">lmdb</a>:filename", the Postfix LMDB database
<p> When executing "postmap <a href="lmdb_table.5.html">lmdb</a>:filename", the Postfix LMDB database
client stores the new data in a transaction which takes up space
in addition to the existing data, and commits the transaction when
it closes the database. Only then can the space for old data be
@ -234,13 +234,13 @@ LMDB map size limit before terminating. </p>
it discovers that the LMDB file is larger than <a href="postconf.5.html#lmdb_map_size">lmdb_map_size</a>/3,
logs a warning, and uses a larger LMDB map size limit instead: </p>
<p> <tt> warning: <i>filename</i>.<a href="LMDB_README.html">lmdb</a>: file size 15024128 &ge;
(lmdb map size limit 16777216)/3<br> warning: <i>filename</i>.<a href="LMDB_README.html">lmdb</a>:
<p> <tt> warning: <i>filename</i>.<a href="lmdb_table.5.html">lmdb</a>: file size 15024128 &ge;
(lmdb map size limit 16777216)/3<br> warning: <i>filename</i>.<a href="lmdb_table.5.html">lmdb</a>:
using map size limit 45072384</tt> </p>
<p> By repeating the two steps above you can automate recovery and
avoid the need for human intervention. Just repeat "postmap
<a href="LMDB_README.html">lmdb</a>:filename" (up to some limit). After each failure it will use
<a href="lmdb_table.5.html">lmdb</a>:filename" (up to some limit). After each failure it will use
a 3x larger size limit, and eventually the "database full" error
should disappear. This fails only when the disk is full or when
the LMDB map size limit would exceed the memory address space size
@ -274,8 +274,8 @@ the database again as described next. </p> </dd>
file larger than <a href="postconf.5.html#lmdb_map_size">lmdb_map_size</a>/3, it logs a warning and uses a
larger size limit instead: </p>
<p> <tt> warning: <i>filename</i>.<a href="LMDB_README.html">lmdb</a>: file size 15024128 &ge;
(lmdb map size limit 16777216)/3 <br>warning: <i>filename</i>.<a href="LMDB_README.html">lmdb</a>:
<p> <tt> warning: <i>filename</i>.<a href="lmdb_table.5.html">lmdb</a>: file size 15024128 &ge;
(lmdb map size limit 16777216)/3 <br>warning: <i>filename</i>.<a href="lmdb_table.5.html">lmdb</a>:
using map size limit 45072384</tt> </p>
<p> This can be used to automate recovery and avoid the need for

View File

@ -19,10 +19,10 @@ COMMANDS= mailq.1.html newaliases.1.html postalias.1.html postcat.1.html \
CONFIG = access.5.html aliases.5.html canonical.5.html relocated.5.html \
transport.5.html virtual.5.html pcre_table.5.html regexp_table.5.html \
cidr_table.5.html tcp_table.5.html header_checks.5.html \
ldap_table.5.html mysql_table.5.html pgsql_table.5.html \
memcache_table.5.html \
ldap_table.5.html lmdb_table.5.html mysql_table.5.html \
pgsql_table.5.html memcache_table.5.html \
master.5.html nisplus_table.5.html generic.5.html bounce.5.html \
postfix-wrapper.5.html sqlite_table.5.html
postfix-wrapper.5.html sqlite_table.5.html socketmap_table.5.html
OTHER = postfix-manuals.html
AWK = awk '{ print; if (NR == 2) print ".pl 9999\n.ll 65" }'
MAN2HTML = man2html -t "Postfix manual - `IFS=.; set \`echo $@\`; echo \"$$1($$2)\"`"
@ -274,6 +274,10 @@ ldap_table.5.html: ../proto/ldap_table
PATH=../mantools:$$PATH; \
srctoman - $? | $(AWK) | $(NROFF) -man | uniq | $(MAN2HTML) | postlink >$@
lmdb_table.5.html: ../proto/lmdb_table
PATH=../mantools:$$PATH; \
srctoman - $? | $(AWK) | $(NROFF) -man | uniq | $(MAN2HTML) | postlink >$@
master.5.html: ../proto/master
PATH=../mantools:$$PATH; \
srctoman - $? | $(AWK) | $(NROFF) -man | uniq | $(MAN2HTML) | postlink >$@
@ -286,6 +290,10 @@ mysql_table.5.html: ../proto/mysql_table
PATH=../mantools:$$PATH; \
srctoman - $? | $(AWK) | $(NROFF) -man | uniq | $(MAN2HTML) | postlink >$@
socketmap_table.5.html: ../proto/socketmap_table
PATH=../mantools:$$PATH; \
srctoman - $? | $(AWK) | $(NROFF) -man | uniq | $(MAN2HTML) | postlink >$@
sqlite_table.5.html: ../proto/sqlite_table
PATH=../mantools:$$PATH; \
srctoman - $? | $(AWK) | $(NROFF) -man | uniq | $(MAN2HTML) | postlink >$@

View File

@ -0,0 +1,96 @@
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<title> Postfix manual - lmdb_table(5) </title>
</head> <body> <pre>
LMDB_TABLE(5) LMDB_TABLE(5)
<b>NAME</b>
lmdb_table - Postfix LMDB adapter
<b>SYNOPSIS</b>
<b>postmap <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i>
<b>postmap -i <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i> &lt;<i>inputfile</i>
<b>postmap -d "</b><i>key</i><b>" <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i>
<b>postmap -d - <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i> &lt;<i>inputfile</i>
<b>postmap -q "</b><i>key</i><b>" <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i>
<b>postmap -q - <a href="lmdb_table.5.html">lmdb</a>:/etc/postfix/</b><i>filename</i> &lt;<i>inputfile</i>
<b>DESCRIPTION</b>
The Postfix LMDB adapter provides access to a persistent,
memory-mapped, key-value store. The database size is lim-
ited only by the size of the memory address space and file
system.
<b>REQUESTS</b>
The LMDB adapter supports all Postfix lookup table opera-
tions. This makes LMDB suitable for Postfix address
rewriting, routing, access policies, caches, or any infor-
mation that can be stored under a fixed lookup key.
When a transaction fails due to a full database, Postfix
resizes the database and retries the transaction.
Postfix access, address mapping and routing tables will
generate queries with partial keys such as parent domains
or networks, and keys without the address extension or
domain portion of an email address.
Unlike other flat-file based Postfix databases, changes to
an LMDB database do not require automatic daemon program
restart.
<b>RELIABILITY</b>
LMDB's copy-on-write architecture achieves reliable
updates, at the cost of using more space than some other
flat-file databases. Read operations are memory-mapped
for speed. Write operations are not memory-mapped to
avoid silent curruption due stray pointer bugs.
The Postfix LMDB adapter implements locking with fcntl(2)
locks at whole-file granularity. LMDB's native locking
scheme would require world-writable lockfiles and would
therefore violate the Postfix security model. Unlike some
other Postfix flat-file databases, LMDB databases can
safely be updated without serializing requests through the
<a href="proxymap.8.html">proxymap(8)</a> service.
<b>CONFIGURATION PARAMETERS</b>
Short-lived programs automatically pick up changes to
<a href="postconf.5.html">main.cf</a>. With long-running daemon programs, Use the com-
mand "<b>postfix reload</b>" after a configuration change.
<b><a href="postconf.5.html#lmdb_map_size">lmdb_map_size</a> (default: 16777216)</b>
The initial OpenLDAP LMDB database size limit in
bytes.
<b>SEE ALSO</b>
<a href="postconf.1.html">postconf(1)</a>, Postfix supported lookup tables
<a href="postmap.1.html">postmap(1)</a>, Postfix lookup table maintenance
<a href="postconf.5.html">postconf(5)</a>, configuration parameters
<b>README FILES</b>
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
<a href="LMDB_README.html">LMDB_README</a>, Postfix LMDB howto
<b>LICENSE</b>
The Secure Mailer license must be distributed with this
software.
<b>HISTORY</b>
LMDB support was introduced with Postfix version 2.11.
<b>AUTHOR(S)</b>
Howard Chu
Symas Corporation
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
LMDB_TABLE(5)
</pre> </body> </html>

View File

@ -160,20 +160,20 @@ POSTCONF(1) POSTCONF(1)
on the lookup table type as described in the <a href="DATABASE_README.html">DATA</a>-
<a href="DATABASE_README.html">BASE_README</a> document.
<b>btree</b> A sorted, balanced tree structure. This is
available on systems with support for Berke-
ley DB databases.
<b>btree</b> A sorted, balanced tree structure. Avail-
able on systems with support for Berkeley DB
databases.
<b>cdb</b> A read-optimized structure with no support
for incremental updates. This is available
on systems with support for CDB databases.
for incremental updates. Available on sys-
tems with support for CDB databases.
<b>cidr</b> A table that associates values with Class-
less Inter-Domain Routing (CIDR) patterns.
This is described in <a href="cidr_table.5.html"><b>cidr_table</b>(5)</a>.
<b>dbm</b> An indexed file type based on hashing. This
is available on systems with support for DBM
<b>dbm</b> An indexed file type based on hashing.
Available on systems with support for DBM
databases.
<b>environ</b>
@ -187,74 +187,74 @@ POSTCONF(1) POSTCONF(1)
This table exists to simplify Postfix error
tests.
<b>hash</b> An indexed file type based on hashing. This
is available on systems with support for
Berkeley DB databases.
<b>hash</b> An indexed file type based on hashing.
Available on systems with support for Berke-
ley DB databases.
<b>internal</b>
A non-shared, in-memory hash table. Its con-
tent are lost when a process terminates.
<b>lmdb</b> (unsupported)
The OpenLDAP LMDB database (a memory-mapped,
persistent file).
<b>lmdb</b> OpenLDAP LMDB database (a memory-mapped,
persistent file). Available on systems with
support for LMDB databases. This is
described in <a href="lmdb_table.5.html"><b>lmdb_table</b>(5)</a>.
<b>ldap</b> (read-only)
Perform lookups using the LDAP protocol.
This is described in <a href="ldap_table.5.html"><b>ldap_table</b>(5)</a>.
LDAP database client. This is described in
<a href="ldap_table.5.html"><b>ldap_table</b>(5)</a>.
<b>memcache</b>
Perform lookups using the memcache protocol.
This is described in <a href="memcache_table.5.html"><b>memcache_table</b>(5)</a>.
Memcache database client. This is described
in <a href="memcache_table.5.html"><b>memcache_table</b>(5)</a>.
<b>mysql</b> (read-only)
Perform lookups using the MYSQL protocol.
This is described in <a href="mysql_table.5.html"><b>mysql_table</b>(5)</a>.
MySQL database client. Available on systems
with support for MySQL databases. This is
described in <a href="mysql_table.5.html"><b>mysql_table</b>(5)</a>.
<b>pcre</b> (read-only)
A lookup table based on Perl Compatible Reg-
ular Expressions. The file format is
ular Expressions. The file format is
described in <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
<b>pgsql</b> (read-only)
Perform lookups using the PostgreSQL proto-
col. This is described in <a href="pgsql_table.5.html"><b>pgsql_table</b>(5)</a>.
PostgreSQL database client. This is
described in <a href="pgsql_table.5.html"><b>pgsql_table</b>(5)</a>.
<b>proxy</b> A lookup table that is implemented via the
Postfix <a href="proxymap.8.html"><b>proxymap</b>(8)</a> service. The table name
syntax is <i>type</i><b>:</b><i>name</i>.
<b>proxy</b> Postfix <a href="proxymap.8.html"><b>proxymap</b>(8)</a> client for shared access
to Postfix databases. The table name syntax
is <i>type</i><b>:</b><i>name</i>.
<b>regexp</b> (read-only)
A lookup table based on regular expressions.
The file format is described in <a href="regexp_table.5.html"><b>regexp_ta-</b></a>
The file format is described in <a href="regexp_table.5.html"><b>regexp_ta-</b></a>
<a href="regexp_table.5.html"><b>ble</b>(5)</a>.
<b>sdbm</b> An indexed file type based on hashing. This
is available on systems with support for
SDBM databases.
<b>sdbm</b> An indexed file type based on hashing.
Available on systems with support for SDBM
databases.
<b>socketmap</b> (read-only)
Query a Sendmail-style socketmap server. The
name of the table specifies
<b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i> for a TCP-
based server, or <b>unix</b>:<i>pathname</i>:<i>socketmap-</i>
<i>name</i> for a UNIX-domain server. In both
cases, <i>socketmap-name</i> is the name of the
socketmap.
Sendmail-style socketmap client. The table
name is <b>inet</b>:<i>host</i>:<i>port</i>:<i>name</i> for a TCP/IP
server, or <b>unix</b>:<i>pathname</i>:<i>name</i> for a UNIX-
domain server. This is described in <a href="socketmap_table.5.html"><b>sock-</b></a>
<a href="socketmap_table.5.html"><b>etmap_table</b>(5)</a>.
<b>sqlite</b> (read-only)
Perform lookups from SQLite database files.
This is described in <a href="sqlite_table.5.html"><b>sqlite_table</b>(5)</a>.
SQLite database. This is described in
<a href="sqlite_table.5.html"><b>sqlite_table</b>(5)</a>.
<b>static</b> (read-only)
A table that always returns its name as
lookup result. For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
always returns the string <b>foobar</b> as lookup
A table that always returns its name as
lookup result. For example, <b><a href="DATABASE_README.html#types">static</a>:foobar</b>
always returns the string <b>foobar</b> as lookup
result.
<b>tcp</b> (read-only)
Perform lookups using a simple request-reply
protocol that is described in <a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>.
TCP/IP client. The protocol is described in
<a href="tcp_table.5.html"><b>tcp_table</b>(5)</a>.
<b>texthash</b> (read-only)
Produces similar results as hash: files,
@ -264,9 +264,9 @@ POSTCONF(1) POSTCONF(1)
after the file is read.
<b>unix</b> (read-only)
A limited way to query the UNIX authentica-
tion database. The following tables are
implemented:
A limited view of the UNIX authentication
database. The following tables are imple-
mented:
<b>unix:passwd.byname</b>
The table is the UNIX password data-

View File

@ -677,7 +677,7 @@ Enable the rewriting of the form "user%domain" to "user@domain".
This is enabled by default.
</p>
<p> Note: with Postfix version 2.2, message header address rewriting
<p> Note: as of Postfix version 2.2, message header address rewriting
happens only when one of the following conditions is true: </p>
<ul>

View File

@ -155,6 +155,8 @@ the following convention: </p>
<li> <a href="ldap_table.5.html">ldap_table(5)</a>, Postfix LDAP client
<li> <a href="lmdb_table.5.html">lmdb_table(5)</a>, Postfix LMDB database driver
<li> <a href="memcache_table.5.html">memcache_table(5)</a>, Postfix memcache client
<li> <a href="mysql_table.5.html">mysql_table(5)</a>, Postfix MYSQL client
@ -167,6 +169,8 @@ the following convention: </p>
<li> <a href="regexp_table.5.html">regexp_table(5)</a>, Associate POSIX regexp pattern with value
<li> <a href="socketmap_table.5.html">socketmap_table(5)</a>, Postfix socketmap client
<li> <a href="sqlite_table.5.html">sqlite_table(5)</a>, Postfix SQLite database driver
<li> <a href="tcp_table.5.html">tcp_table(5)</a>, Postfix client-server table lookup

View File

@ -296,12 +296,14 @@ POSTFIX(1) POSTFIX(1)
Table lookup mechanisms:
<a href="cidr_table.5.html">cidr_table(5)</a>, Associate CIDR pattern with value
<a href="ldap_table.5.html">ldap_table(5)</a>, Postfix LDAP client
<a href="lmdb_table.5.html">lmdb_table(5)</a>, Postfix LMDB database driver
<a href="memcache_table.5.html">memcache_table(5)</a>, Postfix memcache client
<a href="mysql_table.5.html">mysql_table(5)</a>, Postfix MYSQL client
<a href="nisplus_table.5.html">nisplus_table(5)</a>, Postfix NIS+ client
<a href="pcre_table.5.html">pcre_table(5)</a>, Associate PCRE pattern with value
<a href="pgsql_table.5.html">pgsql_table(5)</a>, Postfix PostgreSQL client
<a href="regexp_table.5.html">regexp_table(5)</a>, Associate POSIX regexp pattern with value
<a href="socketmap_table.5.html">socketmap_table(5)</a>, Postfix socketmap client
<a href="sqlite_table.5.html">sqlite_table(5)</a>, Postfix SQLite database driver
<a href="tcp_table.5.html">tcp_table(5)</a>, Postfix client-server table lookup

View File

@ -0,0 +1,91 @@
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<title> Postfix manual - socketmap_table(5) </title>
</head> <body> <pre>
SOCKETMAP_TABLE(5) SOCKETMAP_TABLE(5)
<b>NAME</b>
socketmap_table - Postfix socketmap table lookup client
<b>SYNOPSIS</b>
<b>postmap -q "</b><i>string</i><b>" <a href="socketmap_table.html">socketmap</a>:inet:</b><i>host</i><b>:</b><i>port</i><b>:</b><i>name</i>
<b>postmap -q "</b><i>string</i><b>" <a href="socketmap_table.html">socketmap</a>:unix:</b><i>pathname</i><b>:</b><i>name</i>
<b>postmap -q - <a href="socketmap_table.html">socketmap</a>:inet:</b><i>host</i><b>:</b><i>port</i><b>:</b><i>name</i> &lt;<i>inputfile</i>
<b>postmap -q - <a href="socketmap_table.html">socketmap</a>:unix:</b><i>pathname</i><b>:</b><i>name</i> &lt;<i>inputfile</i>
<b>DESCRIPTION</b>
The Postfix mail system uses optional tables for address
rewriting. mail routing or policy lookup.
The Postfix socketmap client expects TCP endpoint names of
the form <b>inet:</b><i>host</i><b>:</b><i>port</i><b>:</b><i>name</i>, or UNIX-domain endponts of
the form <b>unix:</b><i>pathname</i><b>:</b><i>name</i>. In both cases, <i>name</i> speci-
fies the name field in a socketmap client request (see
"REQUEST FORMAT" below).
<b>PROTOCOL</b>
Socketmaps use a simple protocol: the client sends one
request, and the server sends one reply. Each request and
reply are sent as one netstring object.
<b>REQUEST FORMAT</b>
The socketmap protocol supports only the lookup request.
Postfix access, address mapping and routing tables will
not generate requests with partial keys such as parent
domains or networks, or keys without the address extension
or domain portion of an email address.
<i>name</i> &lt;<b>space</b>&gt; <i>key</i>
Search the named socketmap for the specified key.
<b>REPLY FORMAT</b>
The Postfix socketmap client requires that replies are not
longer than 100000 characters (not including the netstring
encapsulation). Replies must have the following form:
<b>OK</b> &lt;<b>space</b>&gt; <i>data</i>
The requested data was found.
<b>NOTFOUND</b> &lt;<b>space</b>&gt;
The requested data was not found.
<b>TEMP</b> &lt;<b>space</b>&gt; <i>reason</i>
<b>TIMEOUT</b> &lt;<b>space</b>&gt; <i>reason</i>
<b>PERM</b> &lt;<b>space</b>&gt; <i>reason</i>
The request failed. The reason, if non-empty, is
descriptive text.
<b>SECURITY</b>
This map cannot be used for security-sensitive information,
because neither the connection nor the server are authenticated.
<b>SEE ALSO</b>
<a href="postconf.1.html">postconf(1)</a>, Postfix supported lookup tables
<a href="postmap.1.html">postmap(1)</a>, Postfix lookup table manager
<a href="regexp_table.5.html">regexp_table(5)</a>, format of regular expression tables
<a href="pcre_table.5.html">pcre_table(5)</a>, format of PCRE tables
<a href="cidr_table.5.html">cidr_table(5)</a>, format of CIDR tables
<b>README FILES</b>
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
<b>BUGS</b>
The protocol limits are not yet configurable.
<b>LICENSE</b>
The Secure Mailer license must be distributed with this
software.
<b>AUTHOR(S)</b>
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
SOCKETMAP_TABLE(5)
</pre> </body> </html>

View File

@ -16,11 +16,11 @@ COMMANDS= man1/postalias.1 man1/postcat.1 man1/postconf.1 man1/postfix.1 \
CONFIG = man5/access.5 man5/aliases.5 man5/canonical.5 man5/relocated.5 \
man5/transport.5 man5/virtual.5 man5/pcre_table.5 man5/regexp_table.5 \
man5/cidr_table.5 man5/tcp_table.5 man5/header_checks.5 \
man5/body_checks.5 man5/ldap_table.5 man5/memcache_table.5 \
man5/mysql_table.5 \
man5/body_checks.5 man5/ldap_table.5 man5/lmdb_table.5 \
man5/memcache_table.5 man5/mysql_table.5 \
man5/pgsql_table.5 man5/master.5 man5/nisplus_table.5 \
man5/generic.5 man5/bounce.5 man5/postfix-wrapper.5 \
man5/sqlite_table.5
man5/sqlite_table.5 man5/socketmap_table.5
TOOLS = man1/smtp-sink.1 man1/smtp-source.1 man1/qmqp-sink.1 \
man1/qmqp-source.1 man1/qshape.1 man1/posttls-finger.1
@ -274,6 +274,9 @@ man5/body_checks.5: ../proto/header_checks
man5/ldap_table.5: ../proto/ldap_table
../mantools/srctoman - $? >$@
man5/lmdb_table.5: ../proto/lmdb_table
../mantools/srctoman - $? >$@
man5/master.5: ../proto/master
../mantools/srctoman - $? >$@
@ -283,6 +286,9 @@ man5/memcache_table.5: ../proto/memcache_table
man5/mysql_table.5: ../proto/mysql_table
../mantools/srctoman - $? >$@
man5/socketmap_table.5: ../proto/socketmap_table
../mantools/srctoman - $? >$@
man5/sqlite_table.5: ../proto/sqlite_table
../mantools/srctoman - $? >$@

View File

@ -156,85 +156,77 @@ syntax depends on the lookup table type as described in the
DATABASE_README document.
.RS
.IP \fBbtree\fR
A sorted, balanced tree structure.
This is available on systems with support for Berkeley DB
databases.
A sorted, balanced tree structure. Available on systems
with support for Berkeley DB databases.
.IP \fBcdb\fR
A read-optimized structure with no support for incremental updates.
This is available on systems with support for CDB databases.
A read-optimized structure with no support for incremental
updates. Available on systems with support for CDB databases.
.IP \fBcidr\fR
A table that associates values with Classless Inter-Domain Routing
(CIDR) patterns. This is described in \fBcidr_table\fR(5).
A table that associates values with Classless Inter-Domain
Routing (CIDR) patterns. This is described in \fBcidr_table\fR(5).
.IP \fBdbm\fR
An indexed file type based on hashing.
This is available on systems with support for DBM databases.
An indexed file type based on hashing. Available on systems
with support for DBM databases.
.IP \fBenviron\fR
The UNIX process environment array. The lookup key is the variable
name. Originally implemented for testing, someone may find this
useful someday.
The UNIX process environment array. The lookup key is the
variable name. Originally implemented for testing, someone
may find this useful someday.
.IP \fBfail\fR
A table that reliably fails all requests. The lookup table
name is used for logging. This table exists to simplify
Postfix error tests.
.IP \fBhash\fR
An indexed file type based on hashing.
This is available on systems with support for Berkeley DB
databases.
An indexed file type based on hashing. Available on systems
with support for Berkeley DB databases.
.IP \fBinternal\fR
A non-shared, in-memory hash table. Its content are lost
when a process terminates.
.IP "\fBlmdb\fR (unsupported)"
The OpenLDAP LMDB database (a memory-mapped, persistent
file).
.IP "\fBlmdb\fR"
OpenLDAP LMDB database (a memory-mapped, persistent file).
Available on systems with support for LMDB databases. This
is described in \fBlmdb_table\fR(5).
.IP "\fBldap\fR (read-only)"
Perform lookups using the LDAP protocol. This is described
in \fBldap_table\fR(5).
LDAP database client. This is described in \fBldap_table\fR(5).
.IP "\fBmemcache\fR"
Perform lookups using the memcache protocol. This is described
in \fBmemcache_table\fR(5).
Memcache database client. This is described in
\fBmemcache_table\fR(5).
.IP "\fBmysql\fR (read-only)"
Perform lookups using the MYSQL protocol. This is described
in \fBmysql_table\fR(5).
MySQL database client. Available on systems with support
for MySQL databases. This is described in \fBmysql_table\fR(5).
.IP "\fBpcre\fR (read-only)"
A lookup table based on Perl Compatible Regular Expressions. The
file format is described in \fBpcre_table\fR(5).
A lookup table based on Perl Compatible Regular Expressions.
The file format is described in \fBpcre_table\fR(5).
.IP "\fBpgsql\fR (read-only)"
Perform lookups using the PostgreSQL protocol. This is described
in \fBpgsql_table\fR(5).
PostgreSQL database client. This is described in
\fBpgsql_table\fR(5).
.IP "\fBproxy\fR"
A lookup table that is implemented via the Postfix
\fBproxymap\fR(8) service. The table name syntax is
\fItype\fB:\fIname\fR.
Postfix \fBproxymap\fR(8) client for shared access to Postfix
databases. The table name syntax is \fItype\fB:\fIname\fR.
.IP "\fBregexp\fR (read-only)"
A lookup table based on regular expressions. The file format is
described in \fBregexp_table\fR(5).
A lookup table based on regular expressions. The file format
is described in \fBregexp_table\fR(5).
.IP \fBsdbm\fR
An indexed file type based on hashing.
This is available on systems with support for SDBM databases.
An indexed file type based on hashing. Available on systems
with support for SDBM databases.
.IP "\fBsocketmap\fR (read-only)"
Query a Sendmail-style socketmap server. The name of the
table specifies
\fBinet\fR:\fIhost\fR:\fIport\fR:\fIsocketmap-name\fR for
a TCP-based server, or
\fBunix\fR:\fIpathname\fR:\fIsocketmap-name\fR for a
UNIX-domain server. In both cases, \fIsocketmap-name\fR is
the name of the socketmap.
Sendmail-style socketmap client. The table name is
\fBinet\fR:\fIhost\fR:\fIport\fR:\fIname\fR for a TCP/IP
server, or \fBunix\fR:\fIpathname\fR:\fIname\fR for a
UNIX-domain server. This is described in \fBsocketmap_table\fR(5).
.IP "\fBsqlite\fR (read-only)"
Perform lookups from SQLite database files. This is described
in \fBsqlite_table\fR(5).
SQLite database. This is described in \fBsqlite_table\fR(5).
.IP "\fBstatic\fR (read-only)"
A table that always returns its name as lookup result. For example,
\fBstatic:foobar\fR always returns the string \fBfoobar\fR as lookup
result.
.IP "\fBtcp\fR (read-only)"
Perform lookups using a simple request-reply protocol that is
described in \fBtcp_table\fR(5).
TCP/IP client. The protocol is described in \fBtcp_table\fR(5).
.IP "\fBtexthash\fR (read-only)"
Produces similar results as hash: files, except that you don't
need to run the \fBpostmap\fR(1) command before you can use the file,
and that it does not detect changes after the file is read.
.IP "\fBunix\fR (read-only)"
A limited way to query the UNIX authentication database. The
A limited view of the UNIX authentication database. The
following tables are implemented:
.RS
. IP \fBunix:passwd.byname\fR

View File

@ -254,12 +254,14 @@ virtual(5), Postfix virtual aliasing
Table lookup mechanisms:
cidr_table(5), Associate CIDR pattern with value
ldap_table(5), Postfix LDAP client
lmdb_table(5), Postfix LMDB database driver
memcache_table(5), Postfix memcache client
mysql_table(5), Postfix MYSQL client
nisplus_table(5), Postfix NIS+ client
pcre_table(5), Associate PCRE pattern with value
pgsql_table(5), Postfix PostgreSQL client
regexp_table(5), Associate POSIX regexp pattern with value
socketmap_table(5), Postfix socketmap client
sqlite_table(5), Postfix SQLite database driver
tcp_table(5), Postfix client-server table lookup

View File

@ -0,0 +1,113 @@
.TH LMDB_TABLE 5
.ad
.fi
.SH NAME
lmdb_table
\-
Postfix LMDB adapter
.SH "SYNOPSIS"
.na
.nf
\fBpostmap lmdb:/etc/postfix/\fIfilename\fR
.br
\fBpostmap -i lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
\fBpostmap -d "\fIkey\fB" lmdb:/etc/postfix/\fIfilename\fR
.br
\fBpostmap -d - lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
\fBpostmap -q "\fIkey\fB" lmdb:/etc/postfix/\fIfilename\fR
.br
\fBpostmap -q - lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
.SH DESCRIPTION
.ad
.fi
The Postfix LMDB adapter provides access to a persistent,
memory-mapped, key-value store. The database size is limited
only by the size of the memory address space and file system.
.SH "REQUESTS"
.na
.nf
.ad
.fi
The LMDB adapter supports all Postfix lookup table operations.
This makes LMDB suitable for Postfix address rewriting,
routing, access policies, caches, or any information that
can be stored under a fixed lookup key.
When a transaction fails due to a full database, Postfix
resizes the database and retries the transaction.
Postfix access, address mapping and routing tables will
generate queries with partial keys such as parent domains
or networks, and keys without the address extension or
domain portion of an email address.
Unlike other flat-file based Postfix databases, changes to
an LMDB database do not require automatic daemon program
restart.
.SH "RELIABILITY"
.na
.nf
.ad
.fi
LMDB's copy-on-write architecture achieves reliable updates,
at the cost of using more space than some other flat-file
databases. Read operations are memory-mapped for speed.
Write operations are not memory-mapped to avoid silent
curruption due stray pointer bugs.
The Postfix LMDB adapter implements locking with fcntl(2)
locks at whole-file granularity. LMDB's native locking
scheme would require world-writable lockfiles and would
therefore violate the Postfix security model. Unlike some
other Postfix flat-file databases, LMDB databases can safely
be updated without serializing requests through the proxymap(8)
service.
.SH "CONFIGURATION PARAMETERS"
.na
.nf
.ad
.fi
Short-lived programs automatically pick up changes to
main.cf. With long-running daemon programs, Use the command
"\fBpostfix reload\fR" after a configuration change.
.IP "\fBlmdb_map_size (default: 16777216)\fR"
The initial OpenLDAP LMDB database size limit in bytes.
.SH "SEE ALSO"
.na
.nf
postconf(1), Postfix supported lookup tables
postmap(1), Postfix lookup table maintenance
postconf(5), configuration parameters
.SH "README FILES"
.na
.nf
.ad
.fi
Use "\fBpostconf readme_directory\fR" or
"\fBpostconf html_directory\fR" to locate this information.
.na
.nf
DATABASE_README, Postfix lookup table overview
LMDB_README, Postfix LMDB howto
.SH "LICENSE"
.na
.nf
.ad
.fi
The Secure Mailer license must be distributed with this software.
.SH "HISTORY"
.na
.nf
LMDB support was introduced with Postfix version 2.11.
.SH "AUTHOR(S)"
.na
.nf
Howard Chu
Symas Corporation
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA

View File

@ -385,7 +385,7 @@ by \fBqmgr\fR(8) and was limited to recipient addresses only.
Enable the rewriting of the form "user%domain" to "user@domain".
This is enabled by default.
.PP
Note: with Postfix version 2.2, message header address rewriting
Note: as of Postfix version 2.2, message header address rewriting
happens only when one of the following conditions is true:
.IP \(bu
The message is received with the Postfix \fBsendmail\fR(1) command,

View File

@ -0,0 +1,105 @@
.TH SOCKETMAP_TABLE 5
.ad
.fi
.SH NAME
socketmap_table
\-
Postfix socketmap table lookup client
.SH "SYNOPSIS"
.na
.nf
\fBpostmap -q "\fIstring\fB" socketmap:inet:\fIhost\fB:\fIport\fB:\fIname\fR
.br
\fBpostmap -q "\fIstring\fB" socketmap:unix:\fIpathname\fB:\fIname\fR
\fBpostmap -q - socketmap:inet:\fIhost\fB:\fIport\fB:\fIname\fB <\fIinputfile\fR
.br
\fBpostmap -q - socketmap:unix:\fIpathname\fB:\fIname\fB <\fIinputfile\fR
.SH DESCRIPTION
.ad
.fi
The Postfix mail system uses optional tables for address
rewriting. mail routing or policy lookup.
The Postfix socketmap client expects TCP endpoint names of
the form \fBinet:\fIhost\fB:\fIport\fB:\fIname\fR, or
UNIX-domain endponts of the form \fBunix:\fIpathname\fB:\fIname\fR.
In both cases, \fIname\fR specifies the name field in a
socketmap client request (see "REQUEST FORMAT" below).
.SH "PROTOCOL"
.na
.nf
.ad
.fi
Socketmaps use a simple protocol: the client sends one
request, and the server sends one reply. Each request and
reply are sent as one netstring object.
.SH "REQUEST FORMAT"
.na
.nf
.ad
.fi
The socketmap protocol supports only the lookup request.
Postfix access, address mapping and routing tables will not
generate requests with partial keys such as parent domains
or networks, or keys without the address extension or domain
portion of an email address.
.IP "\fB\fIname\fB <space> \fIkey\fR"
Search the named socketmap for the specified key.
.SH "REPLY FORMAT"
.na
.nf
.ad
.fi
The Postfix socketmap client requires that replies are not
longer than 100000 characters (not including the netstring
encapsulation). Replies must have the following form:
.IP "\fBOK <space> \fIdata\fR"
The requested data was found.
.IP "\fBNOTFOUND <space>"
The requested data was not found.
.IP "\fBTEMP <space> \fIreason\fR"
.IP "\fBTIMEOUT <space> \fIreason\fR"
.IP "\fBPERM <space> \fIreason\fR"
The request failed. The reason, if non-empty, is descriptive
text.
.SH "SECURITY"
.na
.nf
This map cannot be used for security-sensitive information,
because neither the connection nor the server are authenticated.
.SH "SEE ALSO"
.na
.nf
postconf(1), Postfix supported lookup tables
postmap(1), Postfix lookup table manager
regexp_table(5), format of regular expression tables
pcre_table(5), format of PCRE tables
cidr_table(5), format of CIDR tables
.SH "README FILES"
.na
.nf
.ad
.fi
Use "\fBpostconf readme_directory\fR" or
"\fBpostconf html_directory\fR" to locate this information.
.na
.nf
DATABASE_README, Postfix lookup table overview
.SH BUGS
.ad
.fi
The protocol limits are not yet configurable.
.SH "LICENSE"
.na
.nf
.ad
.fi
The Secure Mailer license must be distributed with this software.
.SH "AUTHOR(S)"
.na
.nf
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA

View File

@ -805,8 +805,9 @@ while (<>) {
s/[<bB>]*canonical[<\/bB>]*\(5\)/<a href="canonical.5.html">$&<\/a>/g;
s/[<bB>]*gener[-<\/bB>]*\n* *[<bB>]*ic[<\/bB>]*\(5\)/<a href="generic.5.html">$&<\/a>/g;
s/[<bB>]*ldap[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="ldap_table.5.html">$&<\/a>/g;
s/[<bB>]*lmdb[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="lmdb_table.5.html">$&<\/a>/g;
s/[<bB>]*mas[-<\/bB>]*\n* *[<bB>]*ter[<\/bB>]*\(5\)/<a href="master.5.html">$&<\/a>/g;
s/[<bB>]*memcache[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="memcache_table.5.html">$&<\/a>/g;
s/[<bB>]*mem[-<\/bB>]*\n* *[<bB>]*cache[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="memcache_table.5.html">$&<\/a>/g;
s/[<bB>]*mysql[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="mysql_table.5.html">$&<\/a>/g;
s/[<bB>]*nisplus[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="nisplus_table.5.html">$&<\/a>/g;
s/[<bB>]*pcre[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="pcre_table.5.html">$&<\/a>/g;
@ -817,6 +818,7 @@ while (<>) {
s/[<bB>]*reg[-<\/bB>]*\n*[ <bB>]*exp[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="regexp_table.5.html">$&<\/a>/g;
s/[<bB>]*relocated[<\/bB>]*\(5\)/<a href="relocated.5.html">$&<\/a>/g;
s/[<bB>]*scache[<\/bB>]*\(8\)/<a href="scache.8.html">$&<\/a>/g;
s/[<bB>]*sock[-<\/bB>]*\n*[ <bB>]*etmap[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="socketmap_table.5.html">$&<\/a>/g;
s/[<bB>]*sqlite[<\/bBiI>]*_[<\/iIbB>]*ta[-<\/bB>]*\n*[ <bB>]*ble[<\/bB>]*\(5\)/<a href="sqlite_table.5.html">$&<\/a>/g;
s/[<bB>]*trans[-<\/bB>]*\n*[ <bB>]*port[<\/bB>]*\(5\)/<a href="transport.5.html">$&<\/a>/g;
s/[<bB>]*ver[-<\/bB>]*\n*[ <bB>]*ify[<\/bB>]*\(8\)/<a href="verify.8.html">$&<\/a>/g;
@ -1095,8 +1097,9 @@ while (<>) {
s/\b(mysql):/<a href="mysql_table.5.html">$1<\/a>:/g;
s/\b(nisplus):/<a href="nisplus_table.5.html">$1<\/a>:/g;
s/\b(ldap):/<a href="ldap_table.5.html">$1<\/a>:/g;
s/\b(lmdb):/<a href="LMDB_README.html">$1<\/a>:/g;
s/\b(lmdb):/<a href="lmdb_table.5.html">$1<\/a>:/g;
s/\b(regexp):/<a href="regexp_table.5.html">$1<\/a>:/g;
s/\b(socketmap):/<a href="socketmap_table.html">$1<\/a>:/g;
s/\b(sqlite):/<a href="sqlite_table.5.html">$1<\/a>:/g;
s/\b(static):/<a href="DATABASE_README.html#types">$1<\/a>:/g;
s/\b(tcp):/<a href="tcp_table.5.html">$1<\/a>:/g;

View File

@ -286,10 +286,11 @@ Routing (CIDR) patterns. The table format is described in cidr_table(5).
<dt> <b>dbm</b> </dt>
<dd> An indexed file type based on hashing. This is available only
on systems with support for DBM databases. Database files are
created with the postmap(1) or postalias(1) command. The lookup
table name as used in "dbm:table" is the database file name without
the ".dir" or ".pag" suffix. </dd>
on systems with support for DBM databases. Public database files
are created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The lookup table name
as used in "dbm:table" is the database file name without the ".dir"
or ".pag" suffix. </dd>
<dt> <b>environ</b> </dt>
@ -306,50 +307,53 @@ error tests. </dd>
<dt> <b>hash</b> </dt>
<dd> An indexed file type based on hashing. This is available only
on systems with support for Berkeley DB databases. Database files are
created with the postmap(1) or postalias(1) command. The database
on systems with support for Berkeley DB databases. Public database
files are created with the postmap(1) or postalias(1) command, and
private databases are maintained by Postfix daemons. The database
name as used in "hash:table" is the database file name without the
".db" suffix. </dd>
".db" suffix. </dd>
<dt> <b>internal</b> </dt>
<dd> A non-shared, in-memory hash table. Its content are lost when
a process terminates. </dd>
<dt> <b>lmdb</b> (unsupported) </dt>
<dt> <b>lmdb</b> </dt>
<dd> The OpenLDAP LMDB database (a memory-mapped, persistent file).
Database files are created with the postmap(1) or postalias(1)
command. The database name as used in "lmdb:table" is the database
file name without the ".lmdb" suffix.
<dd> OpenLDAP LMDB database (a memory-mapped. This is available
only on systems with support for LMDB databases. Public database
files are created with the postmap(1) or postalias(1) command, and
private databases are maintained by Postfix daemons. The database
name as used in "lmdb:table" is the database file name without the
".lmdb" suffix. See lmdb_table(5) for details. </dd>
<dt> <b>ldap</b> (read-only) </dt>
<dd> Perform lookups using the LDAP protocol. Configuration details
are given in the ldap_table(5). </dd>
<dd> LDAP database client. Configuration details are given in the
ldap_table(5). </dd>
<dt> <b>memcache</b> </dt>
<dd> Perform memcache database lookups or updates. Configuration
details are given in memcache_table(5). </dd>
<dd> Memcache database client. Configuration details are given in
memcache_table(5). </dd>
<dt> <b>mysql</b> (read-only) </dt>
<dd> Perform MySQL database lookups. Configuration details are given
in mysql_table(5). </dd>
<dd> MySQL database client. Configuration details are given in
mysql_table(5). </dd>
<dt> <b>netinfo</b> (read-only) </dt>
<dd> Perform Netinfo database lookups. </dd>
<dd> Netinfo database client. </dd>
<dt> <b>nis</b> (read-only) </dt>
<dd> Perform NIS database lookups. </dd>
<dd> NIS database client. </dd>
<dt> <b>nisplus</b> (read-only) </dt>
<dd> Perform NIS+ database lookups. Configuration details are given
in nisplus_table(5). </dd>
<dd> NIS+ database client. Configuration details are given in
nisplus_table(5). </dd>
<dt> <b>pcre</b> (read-only) </dt>
@ -360,13 +364,14 @@ file. </dd>
<dt> <b>pgsql</b> (read-only) </dt>
<dd> Perform PostgreSQL database lookups. Configuration details
are given in pgsql_table(5). </dd>
<dd> PostgreSQL database client. Configuration details are given
in pgsql_table(5). </dd>
<dt> <b>proxy</b> </dt>
<dd> Access information via the Postfix proxymap(8) service. The
lookup table name syntax is "proxy:type:table". </dd>
<dd> Postfix proxymap(8) client for shared access to Postfix
databases. The lookup table name syntax is "proxy:type:table".
</dd>
<dt> <b>regexp</b> (read-only) </dt>
@ -377,52 +382,49 @@ is described in regexp_table(5). The lookup table name as used in
<dt> <b>sdbm</b> </dt>
<dd> An indexed file type based on hashing. This is available only
on systems with support for SDBM databases. Database files are
created with the postmap(1) or postalias(1) command. The lookup
table name as used in "sdbm:table" is the database file name without
the ".dir" or ".pag" suffix. </dd>
on systems with support for SDBM databases. Public database files
are created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The lookup table name
as used in "sdbm:table" is the database file name without the ".dir"
or ".pag" suffix. </dd>
<dt> <b>socketmap</b> (read-only) </dt>
<dd> Query a Sendmail-style socketmap server. The name of the table
specifies <b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i>
for a TCP-based server, or
<b>unix</b>:<i>pathname</i>:<i>socketmap-name</i> for a UNIX-domain
server. In both cases <i>socketmap-name</i> is the name of the
socketmap. </dd>
<dd> Sendmail-style socketmap client. The name of the table is
either <b>inet</b>:<i>host</i>:<i>port</i>:<i>name</i> for a TCP/IP
server, or <b>unix</b>:<i>pathname</i>:<i>name</i> for a UNIX-domain
server. See socketmap_table(5) for details. </dd>
<dt> <b>sqlite</b> (read-only) </dt>
<dd> Perform SQLite database lookups. Configuration details are given
in sqlite_table(5). </dd>
<dd> SQLite database. Configuration details are given in sqlite_table(5).
</dd>
<dt> <b>static</b> (read-only) </dt>
<dd> Always returns its lookup table name as lookup result. For
example, the lookup table "static:foobar" always returns the string
"foobar" as lookup result. </dd>
<dd> A table that always returns its name as the lookup result.
For example, the lookup table "static:foobar" always returns the
string "foobar" as lookup result. </dd>
<dt> <b>tcp</b> </dt>
<dd> Access information through a TCP/IP server. The protocol is
described in tcp_table(5). The lookup table name is "tcp:host:port"
where "host" specifies a symbolic hostname or a numeric IP address,
and "port" specifies a symbolic service name or a numeric port
number.
</dd>
<dd> TCP/IP client. The protocol is described in tcp_table(5). The
lookup table name is "tcp:host:port" where "host" specifies a
symbolic hostname or a numeric IP address, and "port" specifies a
symbolic service name or a numeric port number. </dd>
<dt> <b>texthash</b> (read-only) </dt>
<dd> This produces similar results as hash: files, except that you
don't have to run the postmap(1) command before you can use the
file, and that texthash: does not detect changes after the file is
read. The lookup table name is "texthash:filename", where the file
name is taken literally; no suffix is appended. </dd>
<dd> A table that produces similar results as hash: files, except
that you don't have to run the postmap(1) command before you can
use the file, and that texthash: does not detect changes after the
file is read. The lookup table name is "texthash:filename", where
the file name is taken literally; no suffix is appended. </dd>
<dt> <b>unix</b> (read-only) </dt>
<dd> A limited way to query the UNIX authentication database. The
following tables are implemented:
<dd> A limited view of the UNIX authentication database. The following
tables are implemented:
<dl>

92
postfix/proto/lmdb_table Normal file
View File

@ -0,0 +1,92 @@
#++
# NAME
# lmdb_table 5
# SUMMARY
# Postfix LMDB adapter
# SYNOPSIS
# \fBpostmap lmdb:/etc/postfix/\fIfilename\fR
# .br
# \fBpostmap -i lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
#
# \fBpostmap -d "\fIkey\fB" lmdb:/etc/postfix/\fIfilename\fR
# .br
# \fBpostmap -d - lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
#
# \fBpostmap -q "\fIkey\fB" lmdb:/etc/postfix/\fIfilename\fR
# .br
# \fBpostmap -q - lmdb:/etc/postfix/\fIfilename\fB <\fIinputfile\fR
# DESCRIPTION
# The Postfix LMDB adapter provides access to a persistent,
# memory-mapped, key-value store. The database size is limited
# only by the size of the memory address space and file system.
# REQUESTS
# .ad
# .fi
# The LMDB adapter supports all Postfix lookup table operations.
# This makes LMDB suitable for Postfix address rewriting,
# routing, access policies, caches, or any information that
# can be stored under a fixed lookup key.
#
# When a transaction fails due to a full database, Postfix
# resizes the database and retries the transaction.
#
# Postfix access, address mapping and routing tables will
# generate queries with partial keys such as parent domains
# or networks, and keys without the address extension or
# domain portion of an email address.
#
# Unlike other flat-file based Postfix databases, changes to
# an LMDB database do not require automatic daemon program
# restart.
# RELIABILITY
# .ad
# .fi
# LMDB's copy-on-write architecture achieves reliable updates,
# at the cost of using more space than some other flat-file
# databases. Read operations are memory-mapped for speed.
# Write operations are not memory-mapped to avoid silent
# curruption due stray pointer bugs.
#
# The Postfix LMDB adapter implements locking with fcntl(2)
# locks at whole-file granularity. LMDB's native locking
# scheme would require world-writable lockfiles and would
# therefore violate the Postfix security model. Unlike some
# other Postfix flat-file databases, LMDB databases can safely
# be updated without serializing requests through the proxymap(8)
# service.
# CONFIGURATION PARAMETERS
# .ad
# .fi
# Short-lived programs automatically pick up changes to
# main.cf. With long-running daemon programs, Use the command
# "\fBpostfix reload\fR" after a configuration change.
# .IP "\fBlmdb_map_size (default: 16777216)\fR"
# The initial OpenLDAP LMDB database size limit in bytes.
# SEE ALSO
# postconf(1), Postfix supported lookup tables
# postmap(1), Postfix lookup table maintenance
# postconf(5), configuration parameters
# README FILES
# .ad
# .fi
# Use "\fBpostconf readme_directory\fR" or
# "\fBpostconf html_directory\fR" to locate this information.
# .na
# .nf
# DATABASE_README, Postfix lookup table overview
# LMDB_README, Postfix LMDB howto
# LICENSE
# .ad
# .fi
# The Secure Mailer license must be distributed with this software.
# HISTORY
# LMDB support was introduced with Postfix version 2.11.
# AUTHOR(S)
# Howard Chu
# Symas Corporation
#
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
#--

View File

@ -583,7 +583,7 @@ Enable the rewriting of the form "user%domain" to "user@domain".
This is enabled by default.
</p>
<p> Note: with Postfix version 2.2, message header address rewriting
<p> Note: as of Postfix version 2.2, message header address rewriting
happens only when one of the following conditions is true: </p>
<ul>

View File

@ -0,0 +1,83 @@
#++
# NAME
# socketmap_table 5
# SUMMARY
# Postfix socketmap table lookup client
# SYNOPSIS
# \fBpostmap -q "\fIstring\fB" socketmap:inet:\fIhost\fB:\fIport\fB:\fIname\fR
# .br
# \fBpostmap -q "\fIstring\fB" socketmap:unix:\fIpathname\fB:\fIname\fR
#
# \fBpostmap -q - socketmap:inet:\fIhost\fB:\fIport\fB:\fIname\fB <\fIinputfile\fR
# .br
# \fBpostmap -q - socketmap:unix:\fIpathname\fB:\fIname\fB <\fIinputfile\fR
# DESCRIPTION
# The Postfix mail system uses optional tables for address
# rewriting. mail routing or policy lookup.
#
# The Postfix socketmap client expects TCP endpoint names of
# the form \fBinet:\fIhost\fB:\fIport\fB:\fIname\fR, or
# UNIX-domain endponts of the form \fBunix:\fIpathname\fB:\fIname\fR.
# In both cases, \fIname\fR specifies the name field in a
# socketmap client request (see "REQUEST FORMAT" below).
# PROTOCOL
# .ad
# .fi
# Socketmaps use a simple protocol: the client sends one
# request, and the server sends one reply. Each request and
# reply are sent as one netstring object.
# REQUEST FORMAT
# .ad
# .fi
# The socketmap protocol supports only the lookup request.
# Postfix access, address mapping and routing tables will not
# generate requests with partial keys such as parent domains
# or networks, or keys without the address extension or domain
# portion of an email address.
# .IP "\fB\fIname\fB <space> \fIkey\fR"
# Search the named socketmap for the specified key.
# REPLY FORMAT
# .ad
# .fi
# The Postfix socketmap client requires that replies are not
# longer than 100000 characters (not including the netstring
# encapsulation). Replies must have the following form:
# .IP "\fBOK <space> \fIdata\fR"
# The requested data was found.
# .IP "\fBNOTFOUND <space>"
# The requested data was not found.
# .IP "\fBTEMP <space> \fIreason\fR"
# .IP "\fBTIMEOUT <space> \fIreason\fR"
# .IP "\fBPERM <space> \fIreason\fR"
# The request failed. The reason, if non-empty, is descriptive
# text.
# SECURITY
# This map cannot be used for security-sensitive information,
# because neither the connection nor the server are authenticated.
# SEE ALSO
# postconf(1), Postfix supported lookup tables
# postmap(1), Postfix lookup table manager
# regexp_table(5), format of regular expression tables
# pcre_table(5), format of PCRE tables
# cidr_table(5), format of CIDR tables
# README FILES
# .ad
# .fi
# Use "\fBpostconf readme_directory\fR" or
# "\fBpostconf html_directory\fR" to locate this information.
# .na
# .nf
# DATABASE_README, Postfix lookup table overview
# BUGS
# The protocol limits are not yet configurable.
# LICENSE
# .ad
# .fi
# The Secure Mailer license must be distributed with this software.
# AUTHOR(S)
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
#--

View 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 "20131120"
#define MAIL_RELEASE_DATE "20131121"
#define MAIL_VERSION_NUMBER "2.11"
#ifdef SNAPSHOT

View File

@ -27,6 +27,7 @@ typedef struct MKMAP {
struct DICT *dict; /* dict_xx_open() result */
void (*after_open) (struct MKMAP *); /* may be null */
void (*after_close) (struct MKMAP *); /* may be null */
int multi_writer; /* multi-writer safe */
} MKMAP;
extern MKMAP *mkmap_open(const char *, const char *, int, int);

View File

@ -144,7 +144,8 @@ void mkmap_close(MKMAP *mkmap)
/*
* Resume signal delivery.
*/
sigresume();
if (mkmap->multi_writer == 0)
sigresume();
/*
* Cleanup.
@ -198,6 +199,7 @@ MKMAP *mkmap_open(const char *type, const char *path,
mkmap->dict->lock_fd = -1; /* XXX just in case */
mkmap->dict->stat_fd = -1; /* XXX just in case */
mkmap->dict->flags |= DICT_FLAG_DUP_WARN;
mkmap->multi_writer = (mkmap->dict->flags & DICT_FLAG_MULTI_WRITER);
/*
* Do whatever post-open initialization is needed, such as acquiring a
@ -209,5 +211,11 @@ MKMAP *mkmap_open(const char *type, const char *path,
if (mkmap->after_open)
mkmap->after_open(mkmap);
/*
* Resume signal delivery if multi-writer safe.
*/
if (mkmap->multi_writer)
sigresume();
return (mkmap);
}

View File

@ -150,85 +150,77 @@
/* DATABASE_README document.
/* .RS
/* .IP \fBbtree\fR
/* A sorted, balanced tree structure.
/* This is available on systems with support for Berkeley DB
/* databases.
/* A sorted, balanced tree structure. Available on systems
/* with support for Berkeley DB databases.
/* .IP \fBcdb\fR
/* A read-optimized structure with no support for incremental updates.
/* This is available on systems with support for CDB databases.
/* A read-optimized structure with no support for incremental
/* updates. Available on systems with support for CDB databases.
/* .IP \fBcidr\fR
/* A table that associates values with Classless Inter-Domain Routing
/* (CIDR) patterns. This is described in \fBcidr_table\fR(5).
/* A table that associates values with Classless Inter-Domain
/* Routing (CIDR) patterns. This is described in \fBcidr_table\fR(5).
/* .IP \fBdbm\fR
/* An indexed file type based on hashing.
/* This is available on systems with support for DBM databases.
/* An indexed file type based on hashing. Available on systems
/* with support for DBM databases.
/* .IP \fBenviron\fR
/* The UNIX process environment array. The lookup key is the variable
/* name. Originally implemented for testing, someone may find this
/* useful someday.
/* The UNIX process environment array. The lookup key is the
/* variable name. Originally implemented for testing, someone
/* may find this useful someday.
/* .IP \fBfail\fR
/* A table that reliably fails all requests. The lookup table
/* name is used for logging. This table exists to simplify
/* Postfix error tests.
/* .IP \fBhash\fR
/* An indexed file type based on hashing.
/* This is available on systems with support for Berkeley DB
/* databases.
/* An indexed file type based on hashing. Available on systems
/* with support for Berkeley DB databases.
/* .IP \fBinternal\fR
/* A non-shared, in-memory hash table. Its content are lost
/* when a process terminates.
/* .IP "\fBlmdb\fR (unsupported)"
/* The OpenLDAP LMDB database (a memory-mapped, persistent
/* file).
/* .IP "\fBlmdb\fR"
/* OpenLDAP LMDB database (a memory-mapped, persistent file).
/* Available on systems with support for LMDB databases. This
/* is described in \fBlmdb_table\fR(5).
/* .IP "\fBldap\fR (read-only)"
/* Perform lookups using the LDAP protocol. This is described
/* in \fBldap_table\fR(5).
/* LDAP database client. This is described in \fBldap_table\fR(5).
/* .IP "\fBmemcache\fR"
/* Perform lookups using the memcache protocol. This is described
/* in \fBmemcache_table\fR(5).
/* Memcache database client. This is described in
/* \fBmemcache_table\fR(5).
/* .IP "\fBmysql\fR (read-only)"
/* Perform lookups using the MYSQL protocol. This is described
/* in \fBmysql_table\fR(5).
/* MySQL database client. Available on systems with support
/* for MySQL databases. This is described in \fBmysql_table\fR(5).
/* .IP "\fBpcre\fR (read-only)"
/* A lookup table based on Perl Compatible Regular Expressions. The
/* file format is described in \fBpcre_table\fR(5).
/* A lookup table based on Perl Compatible Regular Expressions.
/* The file format is described in \fBpcre_table\fR(5).
/* .IP "\fBpgsql\fR (read-only)"
/* Perform lookups using the PostgreSQL protocol. This is described
/* in \fBpgsql_table\fR(5).
/* PostgreSQL database client. This is described in
/* \fBpgsql_table\fR(5).
/* .IP "\fBproxy\fR"
/* A lookup table that is implemented via the Postfix
/* \fBproxymap\fR(8) service. The table name syntax is
/* \fItype\fB:\fIname\fR.
/* Postfix \fBproxymap\fR(8) client for shared access to Postfix
/* databases. The table name syntax is \fItype\fB:\fIname\fR.
/* .IP "\fBregexp\fR (read-only)"
/* A lookup table based on regular expressions. The file format is
/* described in \fBregexp_table\fR(5).
/* A lookup table based on regular expressions. The file format
/* is described in \fBregexp_table\fR(5).
/* .IP \fBsdbm\fR
/* An indexed file type based on hashing.
/* This is available on systems with support for SDBM databases.
/* An indexed file type based on hashing. Available on systems
/* with support for SDBM databases.
/* .IP "\fBsocketmap\fR (read-only)"
/* Query a Sendmail-style socketmap server. The name of the
/* table specifies
/* \fBinet\fR:\fIhost\fR:\fIport\fR:\fIsocketmap-name\fR for
/* a TCP-based server, or
/* \fBunix\fR:\fIpathname\fR:\fIsocketmap-name\fR for a
/* UNIX-domain server. In both cases, \fIsocketmap-name\fR is
/* the name of the socketmap.
/* Sendmail-style socketmap client. The table name is
/* \fBinet\fR:\fIhost\fR:\fIport\fR:\fIname\fR for a TCP/IP
/* server, or \fBunix\fR:\fIpathname\fR:\fIname\fR for a
/* UNIX-domain server. This is described in \fBsocketmap_table\fR(5).
/* .IP "\fBsqlite\fR (read-only)"
/* Perform lookups from SQLite database files. This is described
/* in \fBsqlite_table\fR(5).
/* SQLite database. This is described in \fBsqlite_table\fR(5).
/* .IP "\fBstatic\fR (read-only)"
/* A table that always returns its name as lookup result. For example,
/* \fBstatic:foobar\fR always returns the string \fBfoobar\fR as lookup
/* result.
/* .IP "\fBtcp\fR (read-only)"
/* Perform lookups using a simple request-reply protocol that is
/* described in \fBtcp_table\fR(5).
/* TCP/IP client. The protocol is described in \fBtcp_table\fR(5).
/* .IP "\fBtexthash\fR (read-only)"
/* Produces similar results as hash: files, except that you don't
/* need to run the \fBpostmap\fR(1) command before you can use the file,
/* and that it does not detect changes after the file is read.
/* .IP "\fBunix\fR (read-only)"
/* A limited way to query the UNIX authentication database. The
/* A limited view of the UNIX authentication database. The
/* following tables are implemented:
/* .RS
/*. IP \fBunix:passwd.byname\fR

View File

@ -240,12 +240,14 @@
/* Table lookup mechanisms:
/* cidr_table(5), Associate CIDR pattern with value
/* ldap_table(5), Postfix LDAP client
/* lmdb_table(5), Postfix LMDB database driver
/* memcache_table(5), Postfix memcache client
/* mysql_table(5), Postfix MYSQL client
/* nisplus_table(5), Postfix NIS+ client
/* pcre_table(5), Associate PCRE pattern with value
/* pgsql_table(5), Postfix PostgreSQL client
/* regexp_table(5), Associate POSIX regexp pattern with value
/* socketmap_table(5), Postfix socketmap client
/* sqlite_table(5), Postfix SQLite database driver
/* tcp_table(5), Postfix client-server table lookup
/*

View File

@ -176,6 +176,7 @@ smtp_chat.o: ../../include/attr.h
smtp_chat.o: ../../include/cleanup_user.h
smtp_chat.o: ../../include/deliver_request.h
smtp_chat.o: ../../include/dict.h
smtp_chat.o: ../../include/dns.h
smtp_chat.o: ../../include/dsn.h
smtp_chat.o: ../../include/dsn_buf.h
smtp_chat.o: ../../include/dsn_util.h
@ -192,6 +193,7 @@ smtp_chat.o: ../../include/match_list.h
smtp_chat.o: ../../include/mime_state.h
smtp_chat.o: ../../include/msg.h
smtp_chat.o: ../../include/msg_stats.h
smtp_chat.o: ../../include/myaddrinfo.h
smtp_chat.o: ../../include/myflock.h
smtp_chat.o: ../../include/mymalloc.h
smtp_chat.o: ../../include/name_code.h
@ -201,6 +203,7 @@ smtp_chat.o: ../../include/recipient_list.h
smtp_chat.o: ../../include/resolve_clnt.h
smtp_chat.o: ../../include/scache.h
smtp_chat.o: ../../include/smtp_stream.h
smtp_chat.o: ../../include/sock_addr.h
smtp_chat.o: ../../include/string_list.h
smtp_chat.o: ../../include/stringops.h
smtp_chat.o: ../../include/sys_defs.h
@ -265,6 +268,7 @@ smtp_key.o: ../../include/attr.h
smtp_key.o: ../../include/base64_code.h
smtp_key.o: ../../include/deliver_request.h
smtp_key.o: ../../include/dict.h
smtp_key.o: ../../include/dns.h
smtp_key.o: ../../include/dsn.h
smtp_key.o: ../../include/dsn_buf.h
smtp_key.o: ../../include/header_body_checks.h
@ -276,12 +280,14 @@ smtp_key.o: ../../include/match_list.h
smtp_key.o: ../../include/mime_state.h
smtp_key.o: ../../include/msg.h
smtp_key.o: ../../include/msg_stats.h
smtp_key.o: ../../include/myaddrinfo.h
smtp_key.o: ../../include/myflock.h
smtp_key.o: ../../include/name_code.h
smtp_key.o: ../../include/name_mask.h
smtp_key.o: ../../include/recipient_list.h
smtp_key.o: ../../include/resolve_clnt.h
smtp_key.o: ../../include/scache.h
smtp_key.o: ../../include/sock_addr.h
smtp_key.o: ../../include/string_list.h
smtp_key.o: ../../include/sys_defs.h
smtp_key.o: ../../include/tls.h
@ -295,6 +301,7 @@ smtp_map11.o: ../../include/argv.h
smtp_map11.o: ../../include/attr.h
smtp_map11.o: ../../include/deliver_request.h
smtp_map11.o: ../../include/dict.h
smtp_map11.o: ../../include/dns.h
smtp_map11.o: ../../include/dsn.h
smtp_map11.o: ../../include/dsn_buf.h
smtp_map11.o: ../../include/header_body_checks.h
@ -306,6 +313,7 @@ smtp_map11.o: ../../include/match_list.h
smtp_map11.o: ../../include/mime_state.h
smtp_map11.o: ../../include/msg.h
smtp_map11.o: ../../include/msg_stats.h
smtp_map11.o: ../../include/myaddrinfo.h
smtp_map11.o: ../../include/myflock.h
smtp_map11.o: ../../include/name_code.h
smtp_map11.o: ../../include/name_mask.h
@ -314,6 +322,7 @@ smtp_map11.o: ../../include/quote_flags.h
smtp_map11.o: ../../include/recipient_list.h
smtp_map11.o: ../../include/resolve_clnt.h
smtp_map11.o: ../../include/scache.h
smtp_map11.o: ../../include/sock_addr.h
smtp_map11.o: ../../include/string_list.h
smtp_map11.o: ../../include/sys_defs.h
smtp_map11.o: ../../include/tls.h
@ -331,6 +340,7 @@ smtp_proto.o: ../../include/bounce.h
smtp_proto.o: ../../include/defer.h
smtp_proto.o: ../../include/deliver_request.h
smtp_proto.o: ../../include/dict.h
smtp_proto.o: ../../include/dns.h
smtp_proto.o: ../../include/dsn.h
smtp_proto.o: ../../include/dsn_buf.h
smtp_proto.o: ../../include/dsn_mask.h
@ -351,6 +361,7 @@ smtp_proto.o: ../../include/match_list.h
smtp_proto.o: ../../include/mime_state.h
smtp_proto.o: ../../include/msg.h
smtp_proto.o: ../../include/msg_stats.h
smtp_proto.o: ../../include/myaddrinfo.h
smtp_proto.o: ../../include/myflock.h
smtp_proto.o: ../../include/mymalloc.h
smtp_proto.o: ../../include/name_code.h
@ -365,6 +376,7 @@ smtp_proto.o: ../../include/record.h
smtp_proto.o: ../../include/resolve_clnt.h
smtp_proto.o: ../../include/scache.h
smtp_proto.o: ../../include/smtp_stream.h
smtp_proto.o: ../../include/sock_addr.h
smtp_proto.o: ../../include/split_at.h
smtp_proto.o: ../../include/string_list.h
smtp_proto.o: ../../include/stringops.h
@ -385,6 +397,7 @@ smtp_rcpt.o: ../../include/bounce.h
smtp_rcpt.o: ../../include/deliver_completed.h
smtp_rcpt.o: ../../include/deliver_request.h
smtp_rcpt.o: ../../include/dict.h
smtp_rcpt.o: ../../include/dns.h
smtp_rcpt.o: ../../include/dsn.h
smtp_rcpt.o: ../../include/dsn_buf.h
smtp_rcpt.o: ../../include/dsn_mask.h
@ -397,6 +410,7 @@ smtp_rcpt.o: ../../include/match_list.h
smtp_rcpt.o: ../../include/mime_state.h
smtp_rcpt.o: ../../include/msg.h
smtp_rcpt.o: ../../include/msg_stats.h
smtp_rcpt.o: ../../include/myaddrinfo.h
smtp_rcpt.o: ../../include/myflock.h
smtp_rcpt.o: ../../include/mymalloc.h
smtp_rcpt.o: ../../include/name_code.h
@ -405,6 +419,7 @@ smtp_rcpt.o: ../../include/recipient_list.h
smtp_rcpt.o: ../../include/resolve_clnt.h
smtp_rcpt.o: ../../include/scache.h
smtp_rcpt.o: ../../include/sent.h
smtp_rcpt.o: ../../include/sock_addr.h
smtp_rcpt.o: ../../include/string_list.h
smtp_rcpt.o: ../../include/stringops.h
smtp_rcpt.o: ../../include/sys_defs.h
@ -419,6 +434,7 @@ smtp_reuse.o: ../../include/argv.h
smtp_reuse.o: ../../include/attr.h
smtp_reuse.o: ../../include/deliver_request.h
smtp_reuse.o: ../../include/dict.h
smtp_reuse.o: ../../include/dns.h
smtp_reuse.o: ../../include/dsn.h
smtp_reuse.o: ../../include/dsn_buf.h
smtp_reuse.o: ../../include/header_body_checks.h
@ -430,6 +446,7 @@ smtp_reuse.o: ../../include/match_list.h
smtp_reuse.o: ../../include/mime_state.h
smtp_reuse.o: ../../include/msg.h
smtp_reuse.o: ../../include/msg_stats.h
smtp_reuse.o: ../../include/myaddrinfo.h
smtp_reuse.o: ../../include/myflock.h
smtp_reuse.o: ../../include/mymalloc.h
smtp_reuse.o: ../../include/name_code.h
@ -437,6 +454,7 @@ smtp_reuse.o: ../../include/name_mask.h
smtp_reuse.o: ../../include/recipient_list.h
smtp_reuse.o: ../../include/resolve_clnt.h
smtp_reuse.o: ../../include/scache.h
smtp_reuse.o: ../../include/sock_addr.h
smtp_reuse.o: ../../include/string_list.h
smtp_reuse.o: ../../include/stringops.h
smtp_reuse.o: ../../include/sys_defs.h
@ -454,6 +472,7 @@ smtp_sasl_auth_cache.o: ../../include/base64_code.h
smtp_sasl_auth_cache.o: ../../include/deliver_request.h
smtp_sasl_auth_cache.o: ../../include/dict.h
smtp_sasl_auth_cache.o: ../../include/dict_proxy.h
smtp_sasl_auth_cache.o: ../../include/dns.h
smtp_sasl_auth_cache.o: ../../include/dsn.h
smtp_sasl_auth_cache.o: ../../include/dsn_buf.h
smtp_sasl_auth_cache.o: ../../include/dsn_util.h
@ -465,6 +484,7 @@ smtp_sasl_auth_cache.o: ../../include/match_list.h
smtp_sasl_auth_cache.o: ../../include/mime_state.h
smtp_sasl_auth_cache.o: ../../include/msg.h
smtp_sasl_auth_cache.o: ../../include/msg_stats.h
smtp_sasl_auth_cache.o: ../../include/myaddrinfo.h
smtp_sasl_auth_cache.o: ../../include/myflock.h
smtp_sasl_auth_cache.o: ../../include/mymalloc.h
smtp_sasl_auth_cache.o: ../../include/name_code.h
@ -472,6 +492,7 @@ smtp_sasl_auth_cache.o: ../../include/name_mask.h
smtp_sasl_auth_cache.o: ../../include/recipient_list.h
smtp_sasl_auth_cache.o: ../../include/resolve_clnt.h
smtp_sasl_auth_cache.o: ../../include/scache.h
smtp_sasl_auth_cache.o: ../../include/sock_addr.h
smtp_sasl_auth_cache.o: ../../include/string_list.h
smtp_sasl_auth_cache.o: ../../include/stringops.h
smtp_sasl_auth_cache.o: ../../include/sys_defs.h
@ -487,6 +508,7 @@ smtp_sasl_glue.o: ../../include/argv.h
smtp_sasl_glue.o: ../../include/attr.h
smtp_sasl_glue.o: ../../include/deliver_request.h
smtp_sasl_glue.o: ../../include/dict.h
smtp_sasl_glue.o: ../../include/dns.h
smtp_sasl_glue.o: ../../include/dsn.h
smtp_sasl_glue.o: ../../include/dsn_buf.h
smtp_sasl_glue.o: ../../include/header_body_checks.h
@ -499,6 +521,7 @@ smtp_sasl_glue.o: ../../include/match_list.h
smtp_sasl_glue.o: ../../include/mime_state.h
smtp_sasl_glue.o: ../../include/msg.h
smtp_sasl_glue.o: ../../include/msg_stats.h
smtp_sasl_glue.o: ../../include/myaddrinfo.h
smtp_sasl_glue.o: ../../include/myflock.h
smtp_sasl_glue.o: ../../include/mymalloc.h
smtp_sasl_glue.o: ../../include/name_code.h
@ -507,6 +530,7 @@ smtp_sasl_glue.o: ../../include/recipient_list.h
smtp_sasl_glue.o: ../../include/resolve_clnt.h
smtp_sasl_glue.o: ../../include/scache.h
smtp_sasl_glue.o: ../../include/smtp_stream.h
smtp_sasl_glue.o: ../../include/sock_addr.h
smtp_sasl_glue.o: ../../include/split_at.h
smtp_sasl_glue.o: ../../include/string_list.h
smtp_sasl_glue.o: ../../include/stringops.h
@ -525,6 +549,7 @@ smtp_sasl_proto.o: ../../include/argv.h
smtp_sasl_proto.o: ../../include/attr.h
smtp_sasl_proto.o: ../../include/deliver_request.h
smtp_sasl_proto.o: ../../include/dict.h
smtp_sasl_proto.o: ../../include/dns.h
smtp_sasl_proto.o: ../../include/dsn.h
smtp_sasl_proto.o: ../../include/dsn_buf.h
smtp_sasl_proto.o: ../../include/header_body_checks.h
@ -536,6 +561,7 @@ smtp_sasl_proto.o: ../../include/match_list.h
smtp_sasl_proto.o: ../../include/mime_state.h
smtp_sasl_proto.o: ../../include/msg.h
smtp_sasl_proto.o: ../../include/msg_stats.h
smtp_sasl_proto.o: ../../include/myaddrinfo.h
smtp_sasl_proto.o: ../../include/myflock.h
smtp_sasl_proto.o: ../../include/mymalloc.h
smtp_sasl_proto.o: ../../include/name_code.h
@ -543,6 +569,7 @@ smtp_sasl_proto.o: ../../include/name_mask.h
smtp_sasl_proto.o: ../../include/recipient_list.h
smtp_sasl_proto.o: ../../include/resolve_clnt.h
smtp_sasl_proto.o: ../../include/scache.h
smtp_sasl_proto.o: ../../include/sock_addr.h
smtp_sasl_proto.o: ../../include/string_list.h
smtp_sasl_proto.o: ../../include/stringops.h
smtp_sasl_proto.o: ../../include/sys_defs.h
@ -559,6 +586,7 @@ smtp_session.o: ../../include/attr.h
smtp_session.o: ../../include/debug_peer.h
smtp_session.o: ../../include/deliver_request.h
smtp_session.o: ../../include/dict.h
smtp_session.o: ../../include/dns.h
smtp_session.o: ../../include/dsn.h
smtp_session.o: ../../include/dsn_buf.h
smtp_session.o: ../../include/header_body_checks.h
@ -570,6 +598,7 @@ smtp_session.o: ../../include/match_list.h
smtp_session.o: ../../include/mime_state.h
smtp_session.o: ../../include/msg.h
smtp_session.o: ../../include/msg_stats.h
smtp_session.o: ../../include/myaddrinfo.h
smtp_session.o: ../../include/myflock.h
smtp_session.o: ../../include/mymalloc.h
smtp_session.o: ../../include/name_code.h
@ -577,6 +606,7 @@ smtp_session.o: ../../include/name_mask.h
smtp_session.o: ../../include/recipient_list.h
smtp_session.o: ../../include/resolve_clnt.h
smtp_session.o: ../../include/scache.h
smtp_session.o: ../../include/sock_addr.h
smtp_session.o: ../../include/string_list.h
smtp_session.o: ../../include/stringops.h
smtp_session.o: ../../include/sys_defs.h
@ -592,6 +622,7 @@ smtp_state.o: ../../include/argv.h
smtp_state.o: ../../include/attr.h
smtp_state.o: ../../include/deliver_request.h
smtp_state.o: ../../include/dict.h
smtp_state.o: ../../include/dns.h
smtp_state.o: ../../include/dsn.h
smtp_state.o: ../../include/dsn_buf.h
smtp_state.o: ../../include/header_body_checks.h
@ -603,6 +634,7 @@ smtp_state.o: ../../include/match_list.h
smtp_state.o: ../../include/mime_state.h
smtp_state.o: ../../include/msg.h
smtp_state.o: ../../include/msg_stats.h
smtp_state.o: ../../include/myaddrinfo.h
smtp_state.o: ../../include/myflock.h
smtp_state.o: ../../include/mymalloc.h
smtp_state.o: ../../include/name_code.h
@ -610,6 +642,7 @@ smtp_state.o: ../../include/name_mask.h
smtp_state.o: ../../include/recipient_list.h
smtp_state.o: ../../include/resolve_clnt.h
smtp_state.o: ../../include/scache.h
smtp_state.o: ../../include/sock_addr.h
smtp_state.o: ../../include/string_list.h
smtp_state.o: ../../include/sys_defs.h
smtp_state.o: ../../include/tls.h
@ -664,6 +697,7 @@ smtp_trouble.o: ../../include/defer.h
smtp_trouble.o: ../../include/deliver_completed.h
smtp_trouble.o: ../../include/deliver_request.h
smtp_trouble.o: ../../include/dict.h
smtp_trouble.o: ../../include/dns.h
smtp_trouble.o: ../../include/dsn.h
smtp_trouble.o: ../../include/dsn_buf.h
smtp_trouble.o: ../../include/header_body_checks.h
@ -676,6 +710,7 @@ smtp_trouble.o: ../../include/match_list.h
smtp_trouble.o: ../../include/mime_state.h
smtp_trouble.o: ../../include/msg.h
smtp_trouble.o: ../../include/msg_stats.h
smtp_trouble.o: ../../include/myaddrinfo.h
smtp_trouble.o: ../../include/myflock.h
smtp_trouble.o: ../../include/name_code.h
smtp_trouble.o: ../../include/name_mask.h
@ -683,6 +718,7 @@ smtp_trouble.o: ../../include/recipient_list.h
smtp_trouble.o: ../../include/resolve_clnt.h
smtp_trouble.o: ../../include/scache.h
smtp_trouble.o: ../../include/smtp_stream.h
smtp_trouble.o: ../../include/sock_addr.h
smtp_trouble.o: ../../include/string_list.h
smtp_trouble.o: ../../include/stringops.h
smtp_trouble.o: ../../include/sys_defs.h

View File

@ -156,6 +156,7 @@ smtpd.o: ../../include/attr_clnt.h
smtpd.o: ../../include/cleanup_user.h
smtpd.o: ../../include/debug_peer.h
smtpd.o: ../../include/dict.h
smtpd.o: ../../include/dns.h
smtpd.o: ../../include/dsn_mask.h
smtpd.o: ../../include/ehlo_mask.h
smtpd.o: ../../include/events.h
@ -194,6 +195,7 @@ smtpd.o: ../../include/recipient_list.h
smtpd.o: ../../include/record.h
smtpd.o: ../../include/resolve_clnt.h
smtpd.o: ../../include/smtp_stream.h
smtpd.o: ../../include/sock_addr.h
smtpd.o: ../../include/split_at.h
smtpd.o: ../../include/string_list.h
smtpd.o: ../../include/stringops.h
@ -224,6 +226,7 @@ smtpd.o: smtpd_token.h
smtpd_chat.o: ../../include/argv.h
smtpd_chat.o: ../../include/attr.h
smtpd_chat.o: ../../include/cleanup_user.h
smtpd_chat.o: ../../include/dns.h
smtpd_chat.o: ../../include/int_filt.h
smtpd_chat.o: ../../include/iostuff.h
smtpd_chat.o: ../../include/line_wrap.h
@ -245,6 +248,7 @@ smtpd_chat.o: ../../include/rec_type.h
smtpd_chat.o: ../../include/record.h
smtpd_chat.o: ../../include/smtp_reply_footer.h
smtpd_chat.o: ../../include/smtp_stream.h
smtpd_chat.o: ../../include/sock_addr.h
smtpd_chat.o: ../../include/stringops.h
smtpd_chat.o: ../../include/sys_defs.h
smtpd_chat.o: ../../include/tls.h
@ -329,6 +333,7 @@ smtpd_dsn_fix.o: smtpd_dsn_fix.c
smtpd_dsn_fix.o: smtpd_dsn_fix.h
smtpd_expand.o: ../../include/argv.h
smtpd_expand.o: ../../include/attr.h
smtpd_expand.o: ../../include/dns.h
smtpd_expand.o: ../../include/iostuff.h
smtpd_expand.o: ../../include/mac_expand.h
smtpd_expand.o: ../../include/mac_parse.h
@ -340,6 +345,7 @@ smtpd_expand.o: ../../include/msg.h
smtpd_expand.o: ../../include/myaddrinfo.h
smtpd_expand.o: ../../include/name_code.h
smtpd_expand.o: ../../include/name_mask.h
smtpd_expand.o: ../../include/sock_addr.h
smtpd_expand.o: ../../include/stringops.h
smtpd_expand.o: ../../include/sys_defs.h
smtpd_expand.o: ../../include/tls.h
@ -351,6 +357,7 @@ smtpd_expand.o: smtpd_expand.c
smtpd_expand.o: smtpd_expand.h
smtpd_haproxy.o: ../../include/argv.h
smtpd_haproxy.o: ../../include/attr.h
smtpd_haproxy.o: ../../include/dns.h
smtpd_haproxy.o: ../../include/haproxy_srvr.h
smtpd_haproxy.o: ../../include/mail_params.h
smtpd_haproxy.o: ../../include/mail_stream.h
@ -361,6 +368,7 @@ smtpd_haproxy.o: ../../include/mymalloc.h
smtpd_haproxy.o: ../../include/name_code.h
smtpd_haproxy.o: ../../include/name_mask.h
smtpd_haproxy.o: ../../include/smtp_stream.h
smtpd_haproxy.o: ../../include/sock_addr.h
smtpd_haproxy.o: ../../include/stringops.h
smtpd_haproxy.o: ../../include/sys_defs.h
smtpd_haproxy.o: ../../include/tls.h
@ -373,6 +381,7 @@ smtpd_haproxy.o: smtpd.h
smtpd_haproxy.o: smtpd_haproxy.c
smtpd_milter.o: ../../include/argv.h
smtpd_milter.o: ../../include/attr.h
smtpd_milter.o: ../../include/dns.h
smtpd_milter.o: ../../include/mail_params.h
smtpd_milter.o: ../../include/mail_stream.h
smtpd_milter.o: ../../include/milter.h
@ -382,6 +391,7 @@ smtpd_milter.o: ../../include/name_mask.h
smtpd_milter.o: ../../include/quote_821_local.h
smtpd_milter.o: ../../include/quote_flags.h
smtpd_milter.o: ../../include/resolve_clnt.h
smtpd_milter.o: ../../include/sock_addr.h
smtpd_milter.o: ../../include/split_at.h
smtpd_milter.o: ../../include/sys_defs.h
smtpd_milter.o: ../../include/tls.h
@ -395,6 +405,7 @@ smtpd_milter.o: smtpd_resolve.h
smtpd_milter.o: smtpd_sasl_glue.h
smtpd_peer.o: ../../include/argv.h
smtpd_peer.o: ../../include/attr.h
smtpd_peer.o: ../../include/dns.h
smtpd_peer.o: ../../include/haproxy_srvr.h
smtpd_peer.o: ../../include/htable.h
smtpd_peer.o: ../../include/inet_proto.h
@ -424,6 +435,7 @@ smtpd_proxy.o: ../../include/argv.h
smtpd_proxy.o: ../../include/attr.h
smtpd_proxy.o: ../../include/cleanup_user.h
smtpd_proxy.o: ../../include/connect.h
smtpd_proxy.o: ../../include/dns.h
smtpd_proxy.o: ../../include/iostuff.h
smtpd_proxy.o: ../../include/mail_error.h
smtpd_proxy.o: ../../include/mail_params.h
@ -439,6 +451,7 @@ smtpd_proxy.o: ../../include/name_mask.h
smtpd_proxy.o: ../../include/rec_type.h
smtpd_proxy.o: ../../include/record.h
smtpd_proxy.o: ../../include/smtp_stream.h
smtpd_proxy.o: ../../include/sock_addr.h
smtpd_proxy.o: ../../include/stringops.h
smtpd_proxy.o: ../../include/sys_defs.h
smtpd_proxy.o: ../../include/tls.h
@ -466,6 +479,7 @@ smtpd_resolve.o: smtpd_resolve.c
smtpd_resolve.o: smtpd_resolve.h
smtpd_sasl_glue.o: ../../include/argv.h
smtpd_sasl_glue.o: ../../include/attr.h
smtpd_sasl_glue.o: ../../include/dns.h
smtpd_sasl_glue.o: ../../include/mail_params.h
smtpd_sasl_glue.o: ../../include/mail_stream.h
smtpd_sasl_glue.o: ../../include/milter.h
@ -474,6 +488,7 @@ smtpd_sasl_glue.o: ../../include/myaddrinfo.h
smtpd_sasl_glue.o: ../../include/mymalloc.h
smtpd_sasl_glue.o: ../../include/name_code.h
smtpd_sasl_glue.o: ../../include/name_mask.h
smtpd_sasl_glue.o: ../../include/sock_addr.h
smtpd_sasl_glue.o: ../../include/stringops.h
smtpd_sasl_glue.o: ../../include/sys_defs.h
smtpd_sasl_glue.o: ../../include/tls.h
@ -487,6 +502,7 @@ smtpd_sasl_glue.o: smtpd_sasl_glue.c
smtpd_sasl_glue.o: smtpd_sasl_glue.h
smtpd_sasl_proto.o: ../../include/argv.h
smtpd_sasl_proto.o: ../../include/attr.h
smtpd_sasl_proto.o: ../../include/dns.h
smtpd_sasl_proto.o: ../../include/ehlo_mask.h
smtpd_sasl_proto.o: ../../include/iostuff.h
smtpd_sasl_proto.o: ../../include/mail_error.h
@ -499,6 +515,7 @@ smtpd_sasl_proto.o: ../../include/myaddrinfo.h
smtpd_sasl_proto.o: ../../include/mymalloc.h
smtpd_sasl_proto.o: ../../include/name_code.h
smtpd_sasl_proto.o: ../../include/name_mask.h
smtpd_sasl_proto.o: ../../include/sock_addr.h
smtpd_sasl_proto.o: ../../include/stringops.h
smtpd_sasl_proto.o: ../../include/sys_defs.h
smtpd_sasl_proto.o: ../../include/tls.h
@ -514,6 +531,7 @@ smtpd_sasl_proto.o: smtpd_token.h
smtpd_state.o: ../../include/argv.h
smtpd_state.o: ../../include/attr.h
smtpd_state.o: ../../include/cleanup_user.h
smtpd_state.o: ../../include/dns.h
smtpd_state.o: ../../include/events.h
smtpd_state.o: ../../include/iostuff.h
smtpd_state.o: ../../include/mail_error.h
@ -526,6 +544,7 @@ smtpd_state.o: ../../include/myaddrinfo.h
smtpd_state.o: ../../include/mymalloc.h
smtpd_state.o: ../../include/name_code.h
smtpd_state.o: ../../include/name_mask.h
smtpd_state.o: ../../include/sock_addr.h
smtpd_state.o: ../../include/sys_defs.h
smtpd_state.o: ../../include/tls.h
smtpd_state.o: ../../include/vbuf.h
@ -544,6 +563,7 @@ smtpd_token.o: smtpd_token.c
smtpd_token.o: smtpd_token.h
smtpd_xforward.o: ../../include/argv.h
smtpd_xforward.o: ../../include/attr.h
smtpd_xforward.o: ../../include/dns.h
smtpd_xforward.o: ../../include/iostuff.h
smtpd_xforward.o: ../../include/mail_proto.h
smtpd_xforward.o: ../../include/mail_stream.h
@ -553,6 +573,7 @@ smtpd_xforward.o: ../../include/myaddrinfo.h
smtpd_xforward.o: ../../include/mymalloc.h
smtpd_xforward.o: ../../include/name_code.h
smtpd_xforward.o: ../../include/name_mask.h
smtpd_xforward.o: ../../include/sock_addr.h
smtpd_xforward.o: ../../include/sys_defs.h
smtpd_xforward.o: ../../include/tls.h
smtpd_xforward.o: ../../include/vbuf.h

View File

@ -92,10 +92,13 @@ depend: $(MAKES)
# do not edit below this line - it is generated by 'make depend'
tls_bio_ops.o: ../../include/argv.h
tls_bio_ops.o: ../../include/dns.h
tls_bio_ops.o: ../../include/iostuff.h
tls_bio_ops.o: ../../include/msg.h
tls_bio_ops.o: ../../include/myaddrinfo.h
tls_bio_ops.o: ../../include/name_code.h
tls_bio_ops.o: ../../include/name_mask.h
tls_bio_ops.o: ../../include/sock_addr.h
tls_bio_ops.o: ../../include/sys_defs.h
tls_bio_ops.o: ../../include/vbuf.h
tls_bio_ops.o: ../../include/vstream.h
@ -103,10 +106,13 @@ tls_bio_ops.o: ../../include/vstring.h
tls_bio_ops.o: tls.h
tls_bio_ops.o: tls_bio_ops.c
tls_certkey.o: ../../include/argv.h
tls_certkey.o: ../../include/dns.h
tls_certkey.o: ../../include/mail_params.h
tls_certkey.o: ../../include/msg.h
tls_certkey.o: ../../include/myaddrinfo.h
tls_certkey.o: ../../include/name_code.h
tls_certkey.o: ../../include/name_mask.h
tls_certkey.o: ../../include/sock_addr.h
tls_certkey.o: ../../include/sys_defs.h
tls_certkey.o: ../../include/vbuf.h
tls_certkey.o: ../../include/vstream.h
@ -115,13 +121,16 @@ tls_certkey.o: tls.h
tls_certkey.o: tls_certkey.c
tls_client.o: ../../include/argv.h
tls_client.o: ../../include/dict.h
tls_client.o: ../../include/dns.h
tls_client.o: ../../include/iostuff.h
tls_client.o: ../../include/mail_params.h
tls_client.o: ../../include/msg.h
tls_client.o: ../../include/myaddrinfo.h
tls_client.o: ../../include/myflock.h
tls_client.o: ../../include/mymalloc.h
tls_client.o: ../../include/name_code.h
tls_client.o: ../../include/name_mask.h
tls_client.o: ../../include/sock_addr.h
tls_client.o: ../../include/stringops.h
tls_client.o: ../../include/sys_defs.h
tls_client.o: ../../include/vbuf.h
@ -152,10 +161,13 @@ tls_dane.o: ../../include/vstring.h
tls_dane.o: tls.h
tls_dane.o: tls_dane.c
tls_dh.o: ../../include/argv.h
tls_dh.o: ../../include/dns.h
tls_dh.o: ../../include/mail_params.h
tls_dh.o: ../../include/msg.h
tls_dh.o: ../../include/myaddrinfo.h
tls_dh.o: ../../include/name_code.h
tls_dh.o: ../../include/name_mask.h
tls_dh.o: ../../include/sock_addr.h
tls_dh.o: ../../include/sys_defs.h
tls_dh.o: ../../include/vbuf.h
tls_dh.o: ../../include/vstream.h
@ -163,11 +175,14 @@ tls_dh.o: ../../include/vstring.h
tls_dh.o: tls.h
tls_dh.o: tls_dh.c
tls_fprint.o: ../../include/argv.h
tls_fprint.o: ../../include/dns.h
tls_fprint.o: ../../include/mail_params.h
tls_fprint.o: ../../include/msg.h
tls_fprint.o: ../../include/myaddrinfo.h
tls_fprint.o: ../../include/mymalloc.h
tls_fprint.o: ../../include/name_code.h
tls_fprint.o: ../../include/name_mask.h
tls_fprint.o: ../../include/sock_addr.h
tls_fprint.o: ../../include/stringops.h
tls_fprint.o: ../../include/sys_defs.h
tls_fprint.o: ../../include/vbuf.h
@ -176,8 +191,11 @@ tls_fprint.o: ../../include/vstring.h
tls_fprint.o: tls.h
tls_fprint.o: tls_fprint.c
tls_level.o: ../../include/argv.h
tls_level.o: ../../include/dns.h
tls_level.o: ../../include/myaddrinfo.h
tls_level.o: ../../include/name_code.h
tls_level.o: ../../include/name_mask.h
tls_level.o: ../../include/sock_addr.h
tls_level.o: ../../include/sys_defs.h
tls_level.o: ../../include/vbuf.h
tls_level.o: ../../include/vstream.h
@ -203,12 +221,15 @@ tls_mgr.o: tls_mgr.c
tls_mgr.o: tls_mgr.h
tls_mgr.o: tls_scache.h
tls_misc.o: ../../include/argv.h
tls_misc.o: ../../include/dns.h
tls_misc.o: ../../include/mail_conf.h
tls_misc.o: ../../include/mail_params.h
tls_misc.o: ../../include/msg.h
tls_misc.o: ../../include/myaddrinfo.h
tls_misc.o: ../../include/mymalloc.h
tls_misc.o: ../../include/name_code.h
tls_misc.o: ../../include/name_mask.h
tls_misc.o: ../../include/sock_addr.h
tls_misc.o: ../../include/stringops.h
tls_misc.o: ../../include/sys_defs.h
tls_misc.o: ../../include/vbuf.h
@ -247,13 +268,16 @@ tls_prng_file.o: tls_prng_file.c
tls_proxy_clnt.o: ../../include/argv.h
tls_proxy_clnt.o: ../../include/attr.h
tls_proxy_clnt.o: ../../include/connect.h
tls_proxy_clnt.o: ../../include/dns.h
tls_proxy_clnt.o: ../../include/iostuff.h
tls_proxy_clnt.o: ../../include/mail_params.h
tls_proxy_clnt.o: ../../include/mail_proto.h
tls_proxy_clnt.o: ../../include/msg.h
tls_proxy_clnt.o: ../../include/myaddrinfo.h
tls_proxy_clnt.o: ../../include/mymalloc.h
tls_proxy_clnt.o: ../../include/name_code.h
tls_proxy_clnt.o: ../../include/name_mask.h
tls_proxy_clnt.o: ../../include/sock_addr.h
tls_proxy_clnt.o: ../../include/stringops.h
tls_proxy_clnt.o: ../../include/sys_defs.h
tls_proxy_clnt.o: ../../include/vbuf.h
@ -264,10 +288,13 @@ tls_proxy_clnt.o: tls_proxy.h
tls_proxy_clnt.o: tls_proxy_clnt.c
tls_proxy_print.o: ../../include/argv.h
tls_proxy_print.o: ../../include/attr.h
tls_proxy_print.o: ../../include/dns.h
tls_proxy_print.o: ../../include/iostuff.h
tls_proxy_print.o: ../../include/mail_proto.h
tls_proxy_print.o: ../../include/myaddrinfo.h
tls_proxy_print.o: ../../include/name_code.h
tls_proxy_print.o: ../../include/name_mask.h
tls_proxy_print.o: ../../include/sock_addr.h
tls_proxy_print.o: ../../include/sys_defs.h
tls_proxy_print.o: ../../include/vbuf.h
tls_proxy_print.o: ../../include/vstream.h
@ -277,10 +304,13 @@ tls_proxy_print.o: tls_proxy.h
tls_proxy_print.o: tls_proxy_print.c
tls_proxy_scan.o: ../../include/argv.h
tls_proxy_scan.o: ../../include/attr.h
tls_proxy_scan.o: ../../include/dns.h
tls_proxy_scan.o: ../../include/iostuff.h
tls_proxy_scan.o: ../../include/mail_proto.h
tls_proxy_scan.o: ../../include/myaddrinfo.h
tls_proxy_scan.o: ../../include/name_code.h
tls_proxy_scan.o: ../../include/name_mask.h
tls_proxy_scan.o: ../../include/sock_addr.h
tls_proxy_scan.o: ../../include/sys_defs.h
tls_proxy_scan.o: ../../include/vbuf.h
tls_proxy_scan.o: ../../include/vstream.h
@ -289,8 +319,11 @@ tls_proxy_scan.o: tls.h
tls_proxy_scan.o: tls_proxy.h
tls_proxy_scan.o: tls_proxy_scan.c
tls_rsa.o: ../../include/argv.h
tls_rsa.o: ../../include/dns.h
tls_rsa.o: ../../include/myaddrinfo.h
tls_rsa.o: ../../include/name_code.h
tls_rsa.o: ../../include/name_mask.h
tls_rsa.o: ../../include/sock_addr.h
tls_rsa.o: ../../include/sys_defs.h
tls_rsa.o: ../../include/vbuf.h
tls_rsa.o: ../../include/vstream.h
@ -313,10 +346,13 @@ tls_scache.o: tls_scache.c
tls_scache.o: tls_scache.h
tls_seed.o: ../../include/argv.h
tls_seed.o: ../../include/dict.h
tls_seed.o: ../../include/dns.h
tls_seed.o: ../../include/msg.h
tls_seed.o: ../../include/myaddrinfo.h
tls_seed.o: ../../include/myflock.h
tls_seed.o: ../../include/name_code.h
tls_seed.o: ../../include/name_mask.h
tls_seed.o: ../../include/sock_addr.h
tls_seed.o: ../../include/sys_defs.h
tls_seed.o: ../../include/vbuf.h
tls_seed.o: ../../include/vstream.h
@ -327,14 +363,17 @@ tls_seed.o: tls_scache.h
tls_seed.o: tls_seed.c
tls_server.o: ../../include/argv.h
tls_server.o: ../../include/dict.h
tls_server.o: ../../include/dns.h
tls_server.o: ../../include/hex_code.h
tls_server.o: ../../include/iostuff.h
tls_server.o: ../../include/mail_params.h
tls_server.o: ../../include/msg.h
tls_server.o: ../../include/myaddrinfo.h
tls_server.o: ../../include/myflock.h
tls_server.o: ../../include/mymalloc.h
tls_server.o: ../../include/name_code.h
tls_server.o: ../../include/name_mask.h
tls_server.o: ../../include/sock_addr.h
tls_server.o: ../../include/stringops.h
tls_server.o: ../../include/sys_defs.h
tls_server.o: ../../include/vbuf.h
@ -345,10 +384,13 @@ tls_server.o: tls_mgr.h
tls_server.o: tls_scache.h
tls_server.o: tls_server.c
tls_session.o: ../../include/argv.h
tls_session.o: ../../include/dns.h
tls_session.o: ../../include/msg.h
tls_session.o: ../../include/myaddrinfo.h
tls_session.o: ../../include/mymalloc.h
tls_session.o: ../../include/name_code.h
tls_session.o: ../../include/name_mask.h
tls_session.o: ../../include/sock_addr.h
tls_session.o: ../../include/sys_defs.h
tls_session.o: ../../include/vbuf.h
tls_session.o: ../../include/vstream.h
@ -356,10 +398,13 @@ tls_session.o: ../../include/vstring.h
tls_session.o: tls.h
tls_session.o: tls_session.c
tls_stream.o: ../../include/argv.h
tls_stream.o: ../../include/dns.h
tls_stream.o: ../../include/iostuff.h
tls_stream.o: ../../include/msg.h
tls_stream.o: ../../include/myaddrinfo.h
tls_stream.o: ../../include/name_code.h
tls_stream.o: ../../include/name_mask.h
tls_stream.o: ../../include/sock_addr.h
tls_stream.o: ../../include/sys_defs.h
tls_stream.o: ../../include/vbuf.h
tls_stream.o: ../../include/vstream.h
@ -367,10 +412,13 @@ tls_stream.o: ../../include/vstring.h
tls_stream.o: tls.h
tls_stream.o: tls_stream.c
tls_verify.o: ../../include/argv.h
tls_verify.o: ../../include/dns.h
tls_verify.o: ../../include/msg.h
tls_verify.o: ../../include/myaddrinfo.h
tls_verify.o: ../../include/mymalloc.h
tls_verify.o: ../../include/name_code.h
tls_verify.o: ../../include/name_mask.h
tls_verify.o: ../../include/sock_addr.h
tls_verify.o: ../../include/stringops.h
tls_verify.o: ../../include/sys_defs.h
tls_verify.o: ../../include/vbuf.h

View File

@ -64,6 +64,7 @@ tlsmgr.o: ../../include/argv.h
tlsmgr.o: ../../include/attr.h
tlsmgr.o: ../../include/data_redirect.h
tlsmgr.o: ../../include/dict.h
tlsmgr.o: ../../include/dns.h
tlsmgr.o: ../../include/events.h
tlsmgr.o: ../../include/htable.h
tlsmgr.o: ../../include/iostuff.h
@ -74,11 +75,13 @@ tlsmgr.o: ../../include/mail_server.h
tlsmgr.o: ../../include/mail_version.h
tlsmgr.o: ../../include/master_proto.h
tlsmgr.o: ../../include/msg.h
tlsmgr.o: ../../include/myaddrinfo.h
tlsmgr.o: ../../include/myflock.h
tlsmgr.o: ../../include/mymalloc.h
tlsmgr.o: ../../include/name_code.h
tlsmgr.o: ../../include/name_mask.h
tlsmgr.o: ../../include/set_eugid.h
tlsmgr.o: ../../include/sock_addr.h
tlsmgr.o: ../../include/stringops.h
tlsmgr.o: ../../include/sys_defs.h
tlsmgr.o: ../../include/tls.h

View File

@ -60,6 +60,7 @@ depend: $(MAKES)
# do not edit below this line - it is generated by 'make depend'
tlsproxy.o: ../../include/argv.h
tlsproxy.o: ../../include/attr.h
tlsproxy.o: ../../include/dns.h
tlsproxy.o: ../../include/events.h
tlsproxy.o: ../../include/iostuff.h
tlsproxy.o: ../../include/mail_conf.h
@ -68,10 +69,12 @@ tlsproxy.o: ../../include/mail_proto.h
tlsproxy.o: ../../include/mail_server.h
tlsproxy.o: ../../include/mail_version.h
tlsproxy.o: ../../include/msg.h
tlsproxy.o: ../../include/myaddrinfo.h
tlsproxy.o: ../../include/mymalloc.h
tlsproxy.o: ../../include/name_code.h
tlsproxy.o: ../../include/name_mask.h
tlsproxy.o: ../../include/nbbio.h
tlsproxy.o: ../../include/sock_addr.h
tlsproxy.o: ../../include/sys_defs.h
tlsproxy.o: ../../include/tls.h
tlsproxy.o: ../../include/tls_proxy.h
@ -81,13 +84,16 @@ tlsproxy.o: ../../include/vstring.h
tlsproxy.o: tlsproxy.c
tlsproxy.o: tlsproxy.h
tlsproxy_state.o: ../../include/argv.h
tlsproxy_state.o: ../../include/dns.h
tlsproxy_state.o: ../../include/events.h
tlsproxy_state.o: ../../include/mail_server.h
tlsproxy_state.o: ../../include/msg.h
tlsproxy_state.o: ../../include/myaddrinfo.h
tlsproxy_state.o: ../../include/mymalloc.h
tlsproxy_state.o: ../../include/name_code.h
tlsproxy_state.o: ../../include/name_mask.h
tlsproxy_state.o: ../../include/nbbio.h
tlsproxy_state.o: ../../include/sock_addr.h
tlsproxy_state.o: ../../include/sys_defs.h
tlsproxy_state.o: ../../include/tls.h
tlsproxy_state.o: ../../include/vbuf.h