Cleanup: set errno to ETIMEDOUT after postscreen handshake
timeout event, so that warnings report the correct error.
File: tlsproxy/tlsproxy.c.
+
+20141112
+
+ Documentation: 24 identical typos. File: proto/postconf.proto.
+
+ Workaround: support space after "MAIL FROM:" and "RCPT TO:"
+ in smtpd_command_filter examples. Reportedly, cashedge.com's
+ software (used by banks) needs this (source: Claus Assmann).
+ File: proto/postconf.proto.
+
+20141117
+
+ Cleanup: use ~0U instead of (unsigned) -1. Based on
+ complaints from the BEAM static analyzer. Files:
+ global/mynetworks.c, postconf/postconf.c, util/cidr_match.c.
+
+ Cleanup: forgot the "do" in "do { stuff } while (0)" macros.
+ Luckily, this had caused no problem. Based on complaints
+ from the BEAM static analyzer. Files: util/dict_cdb.c,
+ util/dict_dbm.c, util/dict_lmdb.c, util/dict_pcre.c,
+ util/dict_regexp.c, util/dict_sockmap.c, util/dict_thash.c.
+
+ Bugfix (introduced: Postfix 2.9): lockfile descriptor leak
+ after error. Based on complaints from the BEAM static
+ analyzer. File: util/dict_db.c.
+
+ Bugfix (introduced: Postfix 1.1): don't "set" the null byte
+ element in the base64 and base32 decoding maps. Based on
+ complaints from the BEAM static analyzer. Files: util/base64_code,
+ util/base32_code.c.
+
+ Cleanup: don't exit(0) after failing to run showq(8). Based
+ on complaints from the BEAM static analyzer. File:
+ postqueue/postqueue.c.
+
+ Bugfix: memory leak when getaddrinfo() returns a result
+ that is neither IPv4 nor IPv6. Based on complaints from
+ the BEAM static analyzer. File: smtp/smtp_addr.c.
+
+ Cleanup: use more meaningful name for global variable so
+ that it isn't shadowed by a local variable. Based on
+ complaints from the BEAM static analyzer. smtpstone/smtp-sink.c.
Things to do after the stable release:
+ Find a way to show non-default OPT, DEBUG etc. settings at
+ the top of the makedefs.out file.
+
+ Inline table for quick tests. Short form example: inline:{
+ name1=value1, name2=value2 } would instantiate a table with
+ tuples (name1, value1) and (name2, value2). Long form example
+ allows space around =, and space/comma in values: inline:{
+ { name1 = value1 }, { name2 = value2 } }.
+
Update smtputf8_enable in postconf(5)
Clobber ORCPT when sender is owner-mumble?
transport map that piggy-backs domains with the same MX
host into the same mail delivery transaction?
- inline table where the "whitespace replacement" character
- is specified in-line. Ex: inline:XYname1Xvalue1Yname2Xvalue2
- would instantiate a table with (name1, value1) and (name2,
- value2). I'm afraid this is just too ugly.
-
tlsproxy(8) should receive TLS preferences from postscreen(8)
and smtpd(8), instead of reading them from main.cf. This
means that many tlsproxy_ parameters become postscreen_
The alias databases that are used for <a href="local.8.html">local(8)</a> delivery. See
<a href="aliases.5.html">aliases(5)</a> for syntax details.
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma.
+whitespace or comma.
Table references that don't begin with <a href="proxymap.8.html">proxy</a>: are ignored.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
</p>
<p>
-Note: with Postfix 2.2 and earlier the sender will be notified
-when the BCC address is undeliverable.
+Note: with Postfix 2.2 and earlier the sender will unconditionally
+be notified when the BCC address is undeliverable.
</p>
<p> Note: automatic BCC recipients are produced only for new mail.
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<pre>
# Work around clients that send RCPT TO:<'user@domain'>.
# WARNING: do not lose the parameters that follow the address.
- /^RCPT\s+TO:\s*<'([^[:space:]]+)'>(.*)/ RCPT TO:<$1>$2
+ /^(RCPT\s+TO:\s*<)'([^[:space:]]+)'(>.*)/ $1$2$3
</pre>
<pre>
# Append XVERP to MAIL FROM commands to request VERP-style delivery.
# See <a href="VERP_README.html">VERP_README</a> for more information on how to use Postfix VERP.
- /^(MAIL FROM:<listname@example\.com>.*)/ $1 XVERP
+ /^(MAIL FROM:\s*<listname@example\.com>.*)/ $1 XVERP
</pre>
<pre>
# Bounce-never mail sink. Use <a href="postconf.5.html#notify_classes">notify_classes</a>=bounce,resource,software
# to send bounced mail to the postmaster (with message body removed).
- /^(RCPT\s+TO:<.*>.*)\s+NOTIFY=\S+(.*)/ $1 NOTIFY=NEVER$2
- /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER
+ /^(RCPT\s+TO:\s*<.*>.*)\s+NOTIFY=\S+(.*)/ $1 NOTIFY=NEVER$2
+ /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER
</pre>
<p> This feature is available in Postfix 2.7. </p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found. With lookups from
indexed files such as DB or DBM, or from networked tables such as
NIS, LDAP or SQL, the following search operations are done with a
<p>
Specify zero or more "<a href="DATABASE_README.html">type:table</a>" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found. If you use this
feature with local files, run "<b>postmap /etc/postfix/transport</b>"
after making a change. </p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
The alias databases that are used for \fBlocal\fR(8) delivery. See
\fBaliases\fR(5) for syntax details.
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
.PP
manipulations see the ADDRESS_REWRITING_README document.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
.PP
not, but it does not use the result from table lookup.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
If this parameter is non-empty (the default), then the Postfix SMTP
fallback_transport_maps, fallback_transport and luser_relay.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.SH mailbox_delivery_lock (default: see "postconf -d" output)
How to lock a UNIX-style \fBlocal\fR(8) mailbox before attempting delivery.
fallback_transport_maps, fallback_transport and luser_relay.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
For safety reasons, this feature does not allow $number
access for the read-only service.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma.
+whitespace or comma.
Table references that don't begin with proxy: are ignored.
.PP
This feature is available in Postfix 2.0 and later.
supported) is added when mail enters from outside of Postfix.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
The table search order is as follows:
when the BCC address is undeliverable, as long as all down-stream
software implements RFC 3461.
.PP
-Note: with Postfix 2.2 and earlier the sender will be notified
-when the BCC address is undeliverable.
+Note: with Postfix 2.2 and earlier the sender will unconditionally
+be notified when the BCC address is undeliverable.
.PP
Note: automatic BCC recipients are produced only for new mail.
To avoid mailer loops, automatic BCC recipients are not generated
use the result from table lookup.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
If this parameter is non-empty, then the Postfix SMTP server will reject
documented in \fBrelocated\fR(5).
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
If you use this feature, run "\fBpostmap /etc/postfix/relocated\fR" to
supported) is added when mail enters from outside of Postfix.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
The table search order is as follows:
This information is overruled with the \fBtransport\fR(5) table.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
Note: this overrides default_transport, not transport_maps, and
the \fBtransport\fR(5) table.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
For safety reasons, this feature does not allow $number
smtpd_discard_ehlo_keyword_address_maps.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
This feature is available in Postfix 2.2 and later.
instead.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
The table format and lookups are documented in \fBgeneric\fR(5);
smtp_discard_ehlo_keyword_address_maps.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
This feature is available in Postfix 2.4 and later.
chroot jail, so you can leave the password file in /etc/postfix.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.SH smtp_sasl_path (default: empty)
Implementation-specific information that the Postfix SMTP client
TLS_README for a more detailed discussion of TLS security levels.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
The TLS policy table is indexed by the full next-hop destination,
.ft C
# Work around clients that send RCPT TO:<'user@domain'>.
# WARNING: do not lose the parameters that follow the address.
- /^RCPT\es+TO:\es*<'([^[:space:]]+)'>(.*)/ RCPT TO:<$1>$2
+ /^(RCPT\es+TO:\es*<)'([^[:space:]]+)'(>.*)/ $1$2$3
.fi
.ad
.ft R
.ft C
# Append XVERP to MAIL FROM commands to request VERP-style delivery.
# See VERP_README for more information on how to use Postfix VERP.
- /^(MAIL FROM:<listname@example\e.com>.*)/ $1 XVERP
+ /^(MAIL FROM:\es*<listname@example\e.com>.*)/ $1 XVERP
.fi
.ad
.ft R
.ft C
# Bounce-never mail sink. Use notify_classes=bounce,resource,software
# to send bounced mail to the postmaster (with message body removed).
- /^(RCPT\es+TO:<.*>.*)\es+NOTIFY=\eS+(.*)/ $1 NOTIFY=NEVER$2
- /^(RCPT\es+TO:.*)/ $1 NOTIFY=NEVER
+ /^(RCPT\es+TO:\es*<.*>.*)\es+NOTIFY=\eS+(.*)/ $1 NOTIFY=NEVER$2
+ /^(RCPT\es+TO:.*)/ $1 NOTIFY=NEVER
.fi
.ad
.ft R
The tables are not searched by hostname for robustness reasons.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
This feature is available in Postfix 2.2 and later.
(MAIL FROM) addresses.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found. With lookups from
indexed files such as DB or DBM, or from networked tables such as
NIS, LDAP or SQL, the following search operations are done with a
for details.
.PP
Specify zero or more "type:table" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found. If you use this
feature with local files, run "\fBpostmap /etc/postfix/transport\fR"
after making a change.
value is backwards compatible with Postfix version 1.1.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
.PP
delivery program.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
In a lookup table, specify a left-hand side of "@domain.tld" to
match $virtual_mailbox_domains.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
In a lookup table, specify a left-hand side of "@domain.tld" to
delivery program.
.PP
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
.PP
In a lookup table, specify a left-hand side of "@domain.tld"
The alias databases that are used for local(8) delivery. See
aliases(5) for syntax details.
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
</p>
<p>
-Note: with Postfix 2.2 and earlier the sender will be notified
-when the BCC address is undeliverable.
+Note: with Postfix 2.2 and earlier the sender will unconditionally
+be notified when the BCC address is undeliverable.
</p>
<p> Note: automatic BCC recipients are produced only for new mail.
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found. With lookups from
indexed files such as DB or DBM, or from networked tables such as
NIS, LDAP or SQL, the following search operations are done with a
<p>
Specify zero or more "type:table" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found. If you use this
feature with local files, run "<b>postmap /etc/postfix/transport</b>"
after making a change. </p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
Note: these lookups are recursive.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma.
+whitespace or comma.
Table references that don't begin with proxy: are ignored.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
<pre>
# Work around clients that send RCPT TO:<'user@domain'>.
# WARNING: do not lose the parameters that follow the address.
- /^RCPT\s+TO:\s*<'([^[:space:]]+)'>(.*)/ RCPT TO:<$1>$2
+ /^(RCPT\s+TO:\s*<)'([^[:space:]]+)'(>.*)/ $1$2$3
</pre>
<pre>
# Append XVERP to MAIL FROM commands to request VERP-style delivery.
# See VERP_README for more information on how to use Postfix VERP.
- /^(MAIL FROM:<listname@example\.com>.*)/ $1 XVERP
+ /^(MAIL FROM:\s*<listname@example\.com>.*)/ $1 XVERP
</pre>
<pre>
# Bounce-never mail sink. Use notify_classes=bounce,resource,software
# to send bounced mail to the postmaster (with message body removed).
- /^(RCPT\s+TO:<.*>.*)\s+NOTIFY=\S+(.*)/ $1 NOTIFY=NEVER$2
- /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER
+ /^(RCPT\s+TO:\s*<.*>.*)\s+NOTIFY=\S+(.*)/ $1 NOTIFY=NEVER$2
+ /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER
</pre>
<p> This feature is available in Postfix 2.7. </p>
<p>
Specify zero or more "type:name" lookup tables, separated by
-whitespace of comma. Tables will be searched in the specified order
+whitespace or comma. Tables will be searched in the specified order
until a match is found.
</p>
int domain_rc;
dict_pgsql = (DICT_PGSQL *) dict;
- pldb = dict_pgsql->pldb;
#define INIT_VSTR(buf, len) do { \
if (buf == 0) \
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20141106"
+#define MAIL_RELEASE_DATE "20141118"
#define MAIL_VERSION_NUMBER "2.12"
#ifdef SNAPSHOT
* Host only. Do not relay authorize other hosts.
*/
case MASK_STYLE_HOST:
- mask = ~0;
+ mask = ~0UL;
shift = 0;
break;
end = ac + sizeof(SOCK_ADDR_IN6_ADDR(ma));
shift = MAI_V6ADDR_BITS;
while (ac < end) {
- if ((ch = *ac++) == (unsigned char) -1) {
+ if ((ch = *ac++) == (unsigned char) ~0U) {
shift -= CHAR_BIT;
continue;
} else {
for (op = pcf_incompat_options; (oval = *op) != 0; op++) {
oval &= optval;
- for (mask = ~0; (mask & oval) != 0; mask >>= 1) {
+ for (mask = ~0U; (mask & oval) != 0; mask >>= 1) {
if ((mask & oval) != oval)
msg_fatal("specify one of %s",
str_name_mask(myname, pcf_compat_names, oval));
argv_terminate(argv);
stat = mail_run_foreground(var_daemon_dir, argv->argv);
argv_free(argv);
+ if (stat != 0)
+ msg_fatal_status(stat < 0 ? EX_OSERR : EX_SOFTWARE,
+ "Error running %s/%s",
+ var_daemon_dir, argv->argv[0]);
}
/*
/*
* Interpret a numerical name as an address.
*/
- if (hostaddr_to_sockaddr(host, (char *) 0, 0, &res0) == 0
- && strchr((char *) proto_info->sa_family_list, res0->ai_family) != 0) {
+ if (hostaddr_to_sockaddr(host, (char *) 0, 0, &res0) == 0) {
+ if (strchr((char *) proto_info->sa_family_list, res0->ai_family) != 0) {
if ((addr = dns_sa_to_rr(host, pref, res0->ai_addr)) == 0)
msg_fatal("host %s: conversion error for address family %d: %m",
host, ((struct sockaddr *) (res0->ai_addr))->sa_family);
freeaddrinfo(res0);
return (addr_list);
}
+ freeaddrinfo(res0);
+ }
/*
* Use DNS lookup, but keep the option open to use native name service.
static void disconnect(SINK_STATE *);
static void read_timeout(int, char *);
static void read_event(int, char *);
-static int count;
+static int show_count;
static int sess_count;
static int quit_count;
static int mesg_count;
{
smtp_printf(state->stream, "221 Bye");
smtp_flush(state->stream); /* not: SMTP_FLUSH */
- if (count)
+ if (show_count)
quit_count++;
}
if (state->dump_file)
mail_file_finish(state);
mail_cmd_reset(state);
- if (count || max_msg_quit_count > 0) {
+ if (show_count || max_msg_quit_count > 0) {
mesg_count++;
- if (count)
+ if (show_count)
do_stats();
if (max_msg_quit_count > 0 && mesg_count >= max_msg_quit_count)
exit(0);
{
event_disable_readwrite(vstream_fileno(state->stream));
event_cancel_timer(read_timeout, (char *) state);
- if (count) {
+ if (show_count) {
sess_count++;
do_stats();
}
hard_error_resp = optarg;
break;
case 'c':
- count++;
+ show_count++;
break;
case 'C':
disable_xclient = 1;
if (un_b32 == 0) {
un_b32 = (unsigned char *) mymalloc(CHARS_PER_BYTE);
memset(un_b32, INVALID, CHARS_PER_BYTE);
- for (cp = to_b32; cp < to_b32 + sizeof(to_b32); cp++)
+ for (cp = to_b32; cp < to_b32 + sizeof(to_b32) - 1; cp++)
un_b32[*cp] = cp - to_b32;
}
if (un_b64 == 0) {
un_b64 = (unsigned char *) mymalloc(CHARS_PER_BYTE);
memset(un_b64, INVALID, CHARS_PER_BYTE);
- for (cp = to_b64; cp < to_b64 + sizeof(to_b64); cp++)
+ for (cp = to_b64; cp < to_b64 + sizeof(to_b64) - 1; cp++)
un_b64[*cp] = cp - to_b64;
}
}
if (ip->mask_shift > 0) {
/* Allow for bytes > 8. */
- memset(ip->mask_bytes, (unsigned char) -1, ip->addr_byte_count);
+ memset(ip->mask_bytes, ~0U, ip->addr_byte_count);
mask_addr(ip->mask_bytes, ip->addr_byte_count, ip->mask_shift);
} else
memset(ip->mask_bytes, 0, ip->addr_byte_count);
}
ip->mask_shift = ip->addr_bit_count;
/* Allow for bytes > 8. */
- memset(ip->mask_bytes, (unsigned char) -1, ip->addr_byte_count);
+ memset(ip->mask_bytes, ~0U, ip->addr_byte_count);
}
/*
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_CDBQ_OPEN_RETURN(d) { \
+#define DICT_CDBQ_OPEN_RETURN(d) do { \
DICT *__d = (d); \
myfree(cdb_path); \
return (__d); \
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_CDBM_OPEN_RETURN(d) { \
+#define DICT_CDBM_OPEN_RETURN(d) do { \
DICT *__d = (d); \
if (cdb_path) \
myfree(cdb_path); \
#define LOCK_OPEN_FLAGS(f) ((f) & ~(O_CREAT|O_TRUNC))
#define FREE_RETURN(e) do { \
DICT *_dict = (e); if (db) DICT_DB_CLOSE(db); \
+ if (lock_fd >= 0) (void) close(lock_fd); \
if (db_path) myfree(db_path); return (_dict); \
} while (0)
msg_fatal("unlock database %s for open: %m", db_path);
if (close(lock_fd) < 0)
msg_fatal("close database %s: %m", db_path);
+ lock_fd = -1;
}
dict_db = (DICT_DB *) dict_alloc(class, db_path, sizeof(*dict_db));
dict_db->dict.lookup = dict_db_lookup;
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_DBM_OPEN_RETURN(d) { \
+#define DICT_DBM_OPEN_RETURN(d) do { \
DICT *__d = (d); \
if (dbm_path != 0) \
myfree(dbm_path); \
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_LMDB_OPEN_RETURN(d) { \
+#define DICT_LMDB_OPEN_RETURN(d) do { \
DICT *__d = (d); \
myfree(mdb_path); \
return (__d); \
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_PCRE_OPEN_RETURN(d) { \
+#define DICT_PCRE_OPEN_RETURN(d) do { \
DICT *__d = (d); \
if (map_fp != 0) \
vstream_fclose(map_fp); \
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_REGEXP_OPEN_RETURN(d) { \
+#define DICT_REGEXP_OPEN_RETURN(d) do { \
DICT *__d = (d); \
if (line_buffer != 0) \
vstring_free(line_buffer); \
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_SOCKMAP_OPEN_RETURN(d) { \
+#define DICT_SOCKMAP_OPEN_RETURN(d) do { \
DICT *__d = (d); \
if (saved_name != 0) \
myfree(saved_name); \
/*
* Let the optimizer worry about eliminating redundant code.
*/
-#define DICT_THASH_OPEN_RETURN(d) { \
+#define DICT_THASH_OPEN_RETURN(d) do { \
DICT *__d = (d); \
if (fp != 0) \
vstream_fclose(fp); \