]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.9-20110118
authorWietse Venema <wietse@porcupine.org>
Tue, 18 Jan 2011 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:37:04 +0000 (06:37 +0000)
15 files changed:
postfix/HISTORY
postfix/README_FILES/POSTSCREEN_README
postfix/RELEASE_NOTES-2.8
postfix/html/POSTSCREEN_README.html
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/proto/POSTSCREEN_README.html
postfix/proto/postconf.proto
postfix/src/global/mail_version.h
postfix/src/postscreen/postscreen_access.c
postfix/src/postscreen/postscreen_dict.c
postfix/src/tls/tls_misc.c
postfix/src/util/ip_match.c
postfix/src/util/ip_match.in
postfix/src/util/ip_match.ref

index fb9db51c4de1c13ea3d7eed6a51c0f2e402ce827..d2f12947a4b7329deabc528d7068f208fd4b10aa 100644 (file)
@@ -16493,3 +16493,24 @@ Apologies for any names omitted.
        Workaround: added a panic check for code that is mis-compiled
        by the HP-UX compiler.  File: postscreen/postscreen.c,
        postscreen/postscreen.h, postscreen/postscreen_state.c.
+
+20110118
+
+       Bugfix: the tls_disable_workarounds word list only included
+       workarounds in SSL_OP_ALL. Problem report by Steve Jenkins,
+       problem fix by Victor Duchovni. File: tls/tls_misc.c.
+       
+       Last-minute incompatible syntax change: Postfix now uses
+       ";" instead of "," to separate DNSBL/DNSWL address filter
+       fields inside "[]". The compatibility break is not an issue,
+       because the syntax never worked in main.cf. Problem reported
+       by Mark Martinec. Files: util/ip_match.c, util/ip_match.in,
+       util/ip_match.ref, proto/postconf.proto.
+
+       Cleanup: postscreen now monitors the AVERAGE latency of
+       table access, and complains at most once per minute.  File:
+       postscreen/postscreen_dict.c.
+
+       Bugfix: support for the "dunno" command somehow disappeared
+       from the postscreen_access_list implementation.  File:
+       postscreen/postscreen_access.c.
index 5e55a0289e3692f0d0230538e710f3da60213efa..294dbda4f3435fd75d0e6b2d98d161bc11e27104 100644 (file)
@@ -31,9 +31,9 @@ postscreen(8) is part of a multi-layer defense.
     content filters. Typical examples are Amavisd-new, SpamAssassin, and Milter
     applications.
 
-Each layer reduces the spam volume. The general strategy is to eliminate spam
-early with the less expensive defenses and to use the more expensive defenses
-for the spam that remains.
+Each layer reduces the spam volume. The general strategy is to use the less
+expensive defenses first, and to use the more expensive defenses for the spam
+that remains.
 
 Topics in this document:
 
index 536b595760c0771d033547e51b9844ac39e5d453..8030c8bcf749b2c22123fde9da7dfb05d83d7701 100644 (file)
@@ -237,6 +237,10 @@ Specify "tls_append_default_CA = yes" for backwards compatibility.
 Major changes - postscreen
 --------------------------
 
+See html/POSTSCREEN_README.html for an introduction to postscreen
+(or the text version, README_FILES/POSTSCREEN_README). The text
+below summarizes milestones in reverse chronological order.
+
 [Incompat 20110111] The postscreen_access_list feature replaces the
 postscreen_whitelist_networks and postscreen_blacklist_networks
 features. Reason: CIDR-style access maps are some 100x faster than
index 11a28a55de56487cf95afcec5d77c3056cc9d896..5c74bbcae8f7cdc1b3d219b646d9030b662b03d9 100644 (file)
@@ -53,8 +53,8 @@ SpamAssassin, and Milter applications. </p>
 </ul>
 
 <p> Each layer reduces the spam volume. The general strategy is to
-eliminate spam early with the less expensive defenses and to use
-the more expensive defenses for the spam that remains. </p>
+use the less expensive defenses first, and to use the more expensive
+defenses for the spam that remains. </p>
 
 <p> Topics in this document: </p>
 
index 548eb615fa27ab368d0ed88af628bea05a2a1f4a..293a3b45ca0a7061f277e7ea019b5d16688cb4be 100644 (file)
@@ -7025,7 +7025,7 @@ comma or whitespace.  </p>
 non-error DNSBL reply.  Otherwise, <a href="postscreen.8.html">postscreen(8)</a> uses only DNSBL
 replies that match the filter. The filter has the form d.d.d.d,
 where each d is a number, or a pattern inside [] that contains one
-or more comma-separated numbers or number..number ranges.  </p>
+or more ";"-separated numbers or number..number ranges.  </p>
 
 <li> <p> When no "*weight" is specified, <a href="postscreen.8.html">postscreen(8)</a> increments
 the SMTP client's DNSBL score by 1.  Otherwise, the weight must be
@@ -11842,7 +11842,7 @@ Postfix version 2.5).  This feature is available with Postfix version
 <dd>Reject the request when the reversed client network address is
 listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
 (Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
-or a pattern inside "[]" that contains one or more comma-separated
+or a pattern inside "[]" that contains one or more ";"-separated
 numbers or number..number ranges (Postfix version 2.8 and later).
 If no "<i>=d.d.d.d</i>" is specified, reject the request when the
 reversed client network address is listed with any A record under
@@ -11858,7 +11858,7 @@ This feature is available in Postfix 2.0 and later.  </dd>
 <dd>Accept the request when the reversed client network address is
 listed with the A record "<i>d.d.d.d</i>" under <i>dnswl_domain</i>.
 Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
-one or more comma-separated numbers or number..number ranges.
+one or more ";"-separated numbers or number..number ranges.
 If no "<i>=d.d.d.d</i>" is specified, accept the request when the
 reversed client network address is listed with any A record under
 <i>dnswl_domain</i>. <br> For safety, <a href="postconf.5.html#permit_dnswl_client">permit_dnswl_client</a> is silently
@@ -11871,7 +11871,7 @@ is available in Postfix 2.8 and later.  </dd>
 <dd>Reject the request when the client hostname is listed with the
 A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
 2.1 and later only).  Each "<i>d</i>" is a number, or a pattern
-inside "[]" that contains one or more comma-separated numbers or
+inside "[]" that contains one or more ";"-separated numbers or
 number..number ranges (Postfix version 2.8 and later).  If no
 "<i>=d.d.d.d</i>" is specified, reject the request when the client
 hostname is listed with
@@ -11886,7 +11886,7 @@ produce better results.  </dd>
 <dd>Accept the request when the client hostname is listed with the
 A record "<i>d.d.d.d</i>" under <i>rhswl_domain</i>.  Each "<i>d</i>"
 is a number, or a pattern inside "[]" that contains one or more
-comma-separated numbers or number..number ranges. If no
+";"-separated numbers or number..number ranges. If no
 "<i>=d.d.d.d</i>" is specified, accept the request when the client
 hostname is listed with any A record under <i>rhswl_domain</i>.
 <br> Caution: client name whitelisting is fragile, since the client
@@ -11903,7 +11903,7 @@ when whitelist lookup fails.  This feature is available in Postfix
 <dd>Reject the request when the unverified reverse client hostname
 is listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>.
 Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
-one or more comma-separated numbers or number..number ranges.
+one or more ";"-separated numbers or number..number ranges.
 If no "<i>=d.d.d.d</i>" is specified, reject the request when the
 unverified reverse client hostname is listed with any A record under
 <i>rbl_domain</i>. See the <a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a> description above for
@@ -12564,7 +12564,7 @@ rejected requests (default: 504).</dd>
 <dd>Reject the request when the HELO or EHLO hostname hostname is
 listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
 (Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
-or a pattern inside "[]" that contains one or more comma-separated
+or a pattern inside "[]" that contains one or more ";"-separated
 numbers or number..number ranges (Postfix version 2.8 and later).
 If no "<i>=d.d.d.d</i>" is
 specified, reject the request when the HELO or EHLO hostname is
@@ -12989,7 +12989,7 @@ rejected requests (default: 504). </dd>
 <dd>Reject the request when the RCPT TO domain is listed with the
 A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
 2.1 and later only).  Each "<i>d</i>" is a number, or a pattern
-inside "[]" that contains one or more comma-separated numbers or
+inside "[]" that contains one or more ";"-separated numbers or
 number..number ranges (Postfix version 2.8 and later). If no
 "<i>=d.d.d.d</i>" is specified, reject
 the request when the RCPT TO domain is listed with
@@ -13615,7 +13615,7 @@ rejected requests (default: 504). </dd>
 <dd>Reject the request when the MAIL FROM domain is listed with
 the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix
 version 2.1 and later only).  Each "<i>d</i>" is a number, or a
-pattern inside "[]" that contains one or more comma-separated numbers
+pattern inside "[]" that contains one or more ";"-separated numbers
 or number..number ranges (Postfix version 2.8 and later). If no
 "<i>=d.d.d.d</i>" is specified,
 reject the request when the MAIL FROM domain is
@@ -15012,26 +15012,46 @@ added after your Postfix source code was last updated, in that case
 you can only disable one of these via the hexadecimal syntax above. </p>
 
 <dl>
-<dt><b>MICROSOFT_SESS_ID_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>NETSCAPE_CHALLENGE_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>LEGACY_SERVER_CONNECT</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b> also aliased as
-<b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by default
-with OpenSSL versions that may predate the fix. Fixed in OpenSSL 0.9.8q
-and OpenSSL 1.0.0c.</dt>
-<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>MSIE_SSLV2_RSA_PADDING</b> also aliased as
-<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by default
-with OpenSSL versions that may predate the fix. Fixed in OpenSSL 0.9.7h
-and OpenSSL 0.9.8a.</dt>
-<dt><b>SSLEAY_080_CLIENT_DH_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>TLS_D5_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>TLS_BLOCK_PADDING_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>TLS_ROLLBACK_BUG</b>See SSL_CTX_set_options(3). This is disabled
-in OpenSSL 0.9.7 and later. Nobody should still be using 0.9.6! </dt>
-<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>CRYPTOPRO_TLSEXT_BUG</b>New with GOST support in OpenSSL 1.0.0.</dt>
+
+<dt><b>MICROSOFT_SESS_ID_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>NETSCAPE_CHALLENGE_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>LEGACY_SERVER_CONNECT</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b></dt> <dd> also aliased
+as <b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by
+default with OpenSSL versions that may predate the fix. Fixed in
+OpenSSL 0.9.8q and OpenSSL 1.0.0c.</dd>
+
+<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>MSIE_SSLV2_RSA_PADDING</b></dt> <dd> also aliased as
+<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by
+default with OpenSSL versions that may predate the fix. Fixed in
+OpenSSL 0.9.7h and OpenSSL 0.9.8a.</dd>
+
+<dt><b>SSLEAY_080_CLIENT_DH_BUG</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>TLS_D5_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>TLS_BLOCK_PADDING_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>TLS_ROLLBACK_BUG</b></dt> <dd>See SSL_CTX_set_options(3).
+This is disabled in OpenSSL 0.9.7 and later. Nobody should still
+be using 0.9.6! </dd>
+
+<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>CRYPTOPRO_TLSEXT_BUG</b></dt> <dd>New with GOST support in
+OpenSSL 1.0.0.</dd>
+
 </dl>
 
 <p> This feature is available in Postfix 2.8 and later.  </p>
index ac9bfab21cdeeb72de9c49928d8751c57ed1fe6f..cbd42a3d0901ebff7eeee2768f8f6b8522391d64 100644 (file)
@@ -4001,7 +4001,7 @@ When no "=filter" is specified, \fBpostscreen\fR(8) will use any
 non-error DNSBL reply.  Otherwise, \fBpostscreen\fR(8) uses only DNSBL
 replies that match the filter. The filter has the form d.d.d.d,
 where each d is a number, or a pattern inside [] that contains one
-or more comma-separated numbers or number..number ranges.
+or more ";"-separated numbers or number..number ranges.
 .IP \(bu
 When no "*weight" is specified, \fBpostscreen\fR(8) increments
 the SMTP client's DNSBL score by 1.  Otherwise, the weight must be
@@ -7283,7 +7283,7 @@ Postfix version 2.5).  This feature is available with Postfix version
 Reject the request when the reversed client network address is
 listed with the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR
 (Postfix version 2.1 and later only).  Each "\fId\fR" is a number,
-or a pattern inside "[]" that contains one or more comma-separated
+or a pattern inside "[]" that contains one or more ";"-separated
 numbers or number..number ranges (Postfix version 2.8 and later).
 If no "\fI=d.d.d.d\fR" is specified, reject the request when the
 reversed client network address is listed with any A record under
@@ -7298,7 +7298,7 @@ This feature is available in Postfix 2.0 and later.
 Accept the request when the reversed client network address is
 listed with the A record "\fId.d.d.d\fR" under \fIdnswl_domain\fR.
 Each "\fId\fR" is a number, or a pattern inside "[]" that contains
-one or more comma-separated numbers or number..number ranges.
+one or more ";"-separated numbers or number..number ranges.
 If no "\fI=d.d.d.d\fR" is specified, accept the request when the
 reversed client network address is listed with any A record under
 \fIdnswl_domain\fR.
@@ -7311,7 +7311,7 @@ is available in Postfix 2.8 and later.
 Reject the request when the client hostname is listed with the
 A record "\fId.d.d.d\fR" under \fIrbl_domain\fR (Postfix version
 2.1 and later only).  Each "\fId\fR" is a number, or a pattern
-inside "[]" that contains one or more comma-separated numbers or
+inside "[]" that contains one or more ";"-separated numbers or
 number..number ranges (Postfix version 2.8 and later).  If no
 "\fI=d.d.d.d\fR" is specified, reject the request when the client
 hostname is listed with
@@ -7324,7 +7324,7 @@ produce better results.
 Accept the request when the client hostname is listed with the
 A record "\fId.d.d.d\fR" under \fIrhswl_domain\fR.  Each "\fId\fR"
 is a number, or a pattern inside "[]" that contains one or more
-comma-separated numbers or number..number ranges. If no
+";"-separated numbers or number..number ranges. If no
 "\fI=d.d.d.d\fR" is specified, accept the request when the client
 hostname is listed with any A record under \fIrhswl_domain\fR.
 .br
@@ -7341,7 +7341,7 @@ when whitelist lookup fails.  This feature is available in Postfix
 Reject the request when the unverified reverse client hostname
 is listed with the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR.
 Each "\fId\fR" is a number, or a pattern inside "[]" that contains
-one or more comma-separated numbers or number..number ranges.
+one or more ";"-separated numbers or number..number ranges.
 If no "\fI=d.d.d.d\fR" is specified, reject the request when the
 unverified reverse client hostname is listed with any A record under
 \fIrbl_domain\fR. See the reject_rbl_client description above for
@@ -7828,7 +7828,7 @@ rejected requests (default: 504).
 Reject the request when the HELO or EHLO hostname hostname is
 listed with the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR
 (Postfix version 2.1 and later only).  Each "\fId\fR" is a number,
-or a pattern inside "[]" that contains one or more comma-separated
+or a pattern inside "[]" that contains one or more ";"-separated
 numbers or number..number ranges (Postfix version 2.8 and later).
 If no "\fI=d.d.d.d\fR" is
 specified, reject the request when the HELO or EHLO hostname is
@@ -8080,7 +8080,7 @@ rejected requests (default: 504).
 Reject the request when the RCPT TO domain is listed with the
 A record "\fId.d.d.d\fR" under \fIrbl_domain\fR (Postfix version
 2.1 and later only).  Each "\fId\fR" is a number, or a pattern
-inside "[]" that contains one or more comma-separated numbers or
+inside "[]" that contains one or more ";"-separated numbers or
 number..number ranges (Postfix version 2.8 and later). If no
 "\fI=d.d.d.d\fR" is specified, reject
 the request when the RCPT TO domain is listed with
@@ -8525,7 +8525,7 @@ rejected requests (default: 504).
 Reject the request when the MAIL FROM domain is listed with
 the A record "\fId.d.d.d\fR" under \fIrbl_domain\fR (Postfix
 version 2.1 and later only).  Each "\fId\fR" is a number, or a
-pattern inside "[]" that contains one or more comma-separated numbers
+pattern inside "[]" that contains one or more ";"-separated numbers
 or number..number ranges (Postfix version 2.8 and later). If no
 "\fI=d.d.d.d\fR" is specified,
 reject the request when the MAIL FROM domain is
@@ -9599,26 +9599,46 @@ of specific named bug work-arounds chosen from the list below. It
 is possible that your OpenSSL version includes new bug work-arounds
 added after your Postfix source code was last updated, in that case
 you can only disable one of these via the hexadecimal syntax above.
-.IP "\fBMICROSOFT_SESS_ID_BUG\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBNETSCAPE_CHALLENGE_BUG\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBLEGACY_SERVER_CONNECT\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBNETSCAPE_REUSE_CIPHER_CHANGE_BUG\fR also aliased as
-\fBCVE-2010-4180\fR. Postfix 2.8 disables this work-around by default
-with OpenSSL versions that may predate the fix. Fixed in OpenSSL 0.9.8q
-and OpenSSL 1.0.0c."
-.IP "\fBSSLREF2_REUSE_CERT_TYPE_BUG\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBMICROSOFT_BIG_SSLV3_BUFFER\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBMSIE_SSLV2_RSA_PADDING\fR also aliased as
-\fBCVE-2005-2969\fR. Postfix 2.8 disables this work-around by default
-with OpenSSL versions that may predate the fix. Fixed in OpenSSL 0.9.7h
-and OpenSSL 0.9.8a."
-.IP "\fBSSLEAY_080_CLIENT_DH_BUG\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBTLS_D5_BUG\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBTLS_BLOCK_PADDING_BUG\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBTLS_ROLLBACK_BUG\fRSee SSL_CTX_\fBset_options\fR(3). This is disabled
-in OpenSSL 0.9.7 and later. Nobody should still be using 0.9.6!"
-.IP "\fBDONT_INSERT_EMPTY_FRAGMENTS\fRSee SSL_CTX_\fBset_options\fR(3)"
-.IP "\fBCRYPTOPRO_TLSEXT_BUG\fRNew with GOST support in OpenSSL 1.0.0."
+.IP "\fBMICROSOFT_SESS_ID_BUG\fR"
+See SSL_CTX_\fBset_options\fR(3)
+.IP "\fBNETSCAPE_CHALLENGE_BUG\fR"
+See SSL_CTX_\fBset_options\fR(3)
+.IP "\fBLEGACY_SERVER_CONNECT\fR"
+See SSL_CTX_\fBset_options\fR(3)
+.IP "\fBNETSCAPE_REUSE_CIPHER_CHANGE_BUG\fR"
+also aliased
+as \fBCVE-2010-4180\fR. Postfix 2.8 disables this work-around by
+default with OpenSSL versions that may predate the fix. Fixed in
+OpenSSL 0.9.8q and OpenSSL 1.0.0c.
+.IP "\fBSSLREF2_REUSE_CERT_TYPE_BUG\fR"
+See
+SSL_CTX_\fBset_options\fR(3)
+.IP "\fBMICROSOFT_BIG_SSLV3_BUFFER\fR"
+See
+SSL_CTX_\fBset_options\fR(3)
+.IP "\fBMSIE_SSLV2_RSA_PADDING\fR"
+also aliased as
+\fBCVE-2005-2969\fR. Postfix 2.8 disables this work-around by
+default with OpenSSL versions that may predate the fix. Fixed in
+OpenSSL 0.9.7h and OpenSSL 0.9.8a.
+.IP "\fBSSLEAY_080_CLIENT_DH_BUG\fR"
+See
+SSL_CTX_\fBset_options\fR(3)
+.IP "\fBTLS_D5_BUG\fR"
+See SSL_CTX_\fBset_options\fR(3)
+.IP "\fBTLS_BLOCK_PADDING_BUG\fR"
+See SSL_CTX_\fBset_options\fR(3)
+.IP "\fBTLS_ROLLBACK_BUG\fR"
+See SSL_CTX_\fBset_options\fR(3).
+This is disabled in OpenSSL 0.9.7 and later. Nobody should still
+be using 0.9.6!
+.IP "\fBDONT_INSERT_EMPTY_FRAGMENTS\fR"
+See
+SSL_CTX_\fBset_options\fR(3)
+.IP "\fBCRYPTOPRO_TLSEXT_BUG\fR"
+New with GOST support in
+OpenSSL 1.0.0.
+.PP
 This feature is available in Postfix 2.8 and later.
 .SH tls_eecdh_strong_curve (default: prime256v1)
 The elliptic curve used by the SMTP server for sensibly strong
index cb7da2cc5d9e60f4b88d1e581394dff9c88f7a90..de46400998263ac07347095ba79de8c5baf01957 100644 (file)
@@ -53,8 +53,8 @@ SpamAssassin, and Milter applications. </p>
 </ul>
 
 <p> Each layer reduces the spam volume. The general strategy is to
-eliminate spam early with the less expensive defenses and to use
-the more expensive defenses for the spam that remains. </p>
+use the less expensive defenses first, and to use the more expensive
+defenses for the spam that remains. </p>
 
 <p> Topics in this document: </p>
 
index 3797966c64c97595a3c2fd91ea02b8e055ffaf9e..4fac6825cbc65abe583ef6df643456f699238ee6 100644 (file)
@@ -4880,7 +4880,7 @@ Postfix version 2.5).  This feature is available with Postfix version
 <dd>Reject the request when the reversed client network address is
 listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
 (Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
-or a pattern inside "[]" that contains one or more comma-separated
+or a pattern inside "[]" that contains one or more ";"-separated
 numbers or number..number ranges (Postfix version 2.8 and later).
 If no "<i>=d.d.d.d</i>" is specified, reject the request when the
 reversed client network address is listed with any A record under
@@ -4896,7 +4896,7 @@ This feature is available in Postfix 2.0 and later.  </dd>
 <dd>Accept the request when the reversed client network address is
 listed with the A record "<i>d.d.d.d</i>" under <i>dnswl_domain</i>.
 Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
-one or more comma-separated numbers or number..number ranges.
+one or more ";"-separated numbers or number..number ranges.
 If no "<i>=d.d.d.d</i>" is specified, accept the request when the
 reversed client network address is listed with any A record under
 <i>dnswl_domain</i>. <br> For safety, permit_dnswl_client is silently
@@ -4909,7 +4909,7 @@ is available in Postfix 2.8 and later.  </dd>
 <dd>Reject the request when the client hostname is listed with the
 A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
 2.1 and later only).  Each "<i>d</i>" is a number, or a pattern
-inside "[]" that contains one or more comma-separated numbers or
+inside "[]" that contains one or more ";"-separated numbers or
 number..number ranges (Postfix version 2.8 and later).  If no
 "<i>=d.d.d.d</i>" is specified, reject the request when the client
 hostname is listed with
@@ -4924,7 +4924,7 @@ produce better results.  </dd>
 <dd>Accept the request when the client hostname is listed with the
 A record "<i>d.d.d.d</i>" under <i>rhswl_domain</i>.  Each "<i>d</i>"
 is a number, or a pattern inside "[]" that contains one or more
-comma-separated numbers or number..number ranges. If no
+";"-separated numbers or number..number ranges. If no
 "<i>=d.d.d.d</i>" is specified, accept the request when the client
 hostname is listed with any A record under <i>rhswl_domain</i>.
 <br> Caution: client name whitelisting is fragile, since the client
@@ -4941,7 +4941,7 @@ when whitelist lookup fails.  This feature is available in Postfix
 <dd>Reject the request when the unverified reverse client hostname
 is listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>.
 Each "<i>d</i>" is a number, or a pattern inside "[]" that contains
-one or more comma-separated numbers or number..number ranges.
+one or more ";"-separated numbers or number..number ranges.
 If no "<i>=d.d.d.d</i>" is specified, reject the request when the
 unverified reverse client hostname is listed with any A record under
 <i>rbl_domain</i>. See the reject_rbl_client description above for
@@ -5403,7 +5403,7 @@ rejected requests (default: 504).</dd>
 <dd>Reject the request when the HELO or EHLO hostname hostname is
 listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>
 (Postfix version 2.1 and later only).  Each "<i>d</i>" is a number,
-or a pattern inside "[]" that contains one or more comma-separated
+or a pattern inside "[]" that contains one or more ";"-separated
 numbers or number..number ranges (Postfix version 2.8 and later).
 If no "<i>=d.d.d.d</i>" is
 specified, reject the request when the HELO or EHLO hostname is
@@ -5702,7 +5702,7 @@ rejected requests (default: 504). </dd>
 <dd>Reject the request when the RCPT TO domain is listed with the
 A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version
 2.1 and later only).  Each "<i>d</i>" is a number, or a pattern
-inside "[]" that contains one or more comma-separated numbers or
+inside "[]" that contains one or more ";"-separated numbers or
 number..number ranges (Postfix version 2.8 and later). If no
 "<i>=d.d.d.d</i>" is specified, reject
 the request when the RCPT TO domain is listed with
@@ -6080,7 +6080,7 @@ rejected requests (default: 504). </dd>
 <dd>Reject the request when the MAIL FROM domain is listed with
 the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix
 version 2.1 and later only).  Each "<i>d</i>" is a number, or a
-pattern inside "[]" that contains one or more comma-separated numbers
+pattern inside "[]" that contains one or more ";"-separated numbers
 or number..number ranges (Postfix version 2.8 and later). If no
 "<i>=d.d.d.d</i>" is specified,
 reject the request when the MAIL FROM domain is
@@ -12713,7 +12713,7 @@ comma or whitespace.  </p>
 non-error DNSBL reply.  Otherwise, postscreen(8) uses only DNSBL
 replies that match the filter. The filter has the form d.d.d.d,
 where each d is a number, or a pattern inside [] that contains one
-or more comma-separated numbers or number..number ranges.  </p>
+or more ";"-separated numbers or number..number ranges.  </p>
 
 <li> <p> When no "*weight" is specified, postscreen(8) increments
 the SMTP client's DNSBL score by 1.  Otherwise, the weight must be
@@ -13572,26 +13572,46 @@ added after your Postfix source code was last updated, in that case
 you can only disable one of these via the hexadecimal syntax above. </p>
 
 <dl>
-<dt><b>MICROSOFT_SESS_ID_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>NETSCAPE_CHALLENGE_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>LEGACY_SERVER_CONNECT</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b> also aliased as
-<b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by default
-with OpenSSL versions that may predate the fix. Fixed in OpenSSL 0.9.8q
-and OpenSSL 1.0.0c.</dt>
-<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>MSIE_SSLV2_RSA_PADDING</b> also aliased as
-<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by default
-with OpenSSL versions that may predate the fix. Fixed in OpenSSL 0.9.7h
-and OpenSSL 0.9.8a.</dt>
-<dt><b>SSLEAY_080_CLIENT_DH_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>TLS_D5_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>TLS_BLOCK_PADDING_BUG</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>TLS_ROLLBACK_BUG</b>See SSL_CTX_set_options(3). This is disabled
-in OpenSSL 0.9.7 and later. Nobody should still be using 0.9.6! </dt>
-<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b>See SSL_CTX_set_options(3)</dt>
-<dt><b>CRYPTOPRO_TLSEXT_BUG</b>New with GOST support in OpenSSL 1.0.0.</dt>
+
+<dt><b>MICROSOFT_SESS_ID_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>NETSCAPE_CHALLENGE_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>LEGACY_SERVER_CONNECT</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b></dt> <dd> also aliased
+as <b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by
+default with OpenSSL versions that may predate the fix. Fixed in
+OpenSSL 0.9.8q and OpenSSL 1.0.0c.</dd>
+
+<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>MSIE_SSLV2_RSA_PADDING</b></dt> <dd> also aliased as
+<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by
+default with OpenSSL versions that may predate the fix. Fixed in
+OpenSSL 0.9.7h and OpenSSL 0.9.8a.</dd>
+
+<dt><b>SSLEAY_080_CLIENT_DH_BUG</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>TLS_D5_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>TLS_BLOCK_PADDING_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd>
+
+<dt><b>TLS_ROLLBACK_BUG</b></dt> <dd>See SSL_CTX_set_options(3).
+This is disabled in OpenSSL 0.9.7 and later. Nobody should still
+be using 0.9.6! </dd>
+
+<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b></dt> <dd>See
+SSL_CTX_set_options(3)</dd>
+
+<dt><b>CRYPTOPRO_TLSEXT_BUG</b></dt> <dd>New with GOST support in
+OpenSSL 1.0.0.</dd>
+
 </dl>
 
 <p> This feature is available in Postfix 2.8 and later.  </p>
index ef4fa9b38749bb3760c399453f493ae10f60d678..7577a9fd14c6ffe3c5f412d18d3efa80bcd62bc4 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20110117"
+#define MAIL_RELEASE_DATE      "20110118"
 #define MAIL_VERSION_NUMBER    "2.9"
 
 #ifdef SNAPSHOT
index 5c67495f7507d9cee6b3166718a8335b366fb4fa..ba386a509d025f7664d36c0c3277eeceef1ab5f9 100644 (file)
@@ -169,6 +169,8 @@ int     psc_acl_eval(PSC_STATE *state, ARGV *acl, const char *origin)
                         "of this access list", name);
                return (PSC_ACL_ACT_ERROR);
            }
+       } else if (STREQ(name, PSC_ACL_NAME_DUNNO)) {
+           return (PSC_ACL_ACT_DUNNO);
        } else {
            msg_warn("%s: unknown command: %s -- ignoring the remainder "
                     "of this access list", origin, name);
index 1db010251c7aca4af7ddab59c62b8fe9f865aa19..ce7efd056c5ef3c56667d417b68729a7494d79c1 100644 (file)
 
 #include <postscreen.h>
 
+/* psc_average - moving average */
+
+static double psc_average(double new, double old)
+{
+    return (0.1 * new + 0.9 * old);
+}
+
  /*
   * Monitor time-critical operations.
+  * 
+  * XXX Averaging support was added during a stable release candidate, so it
+  * provides only the absolute minimum necessary. A complete implementation
+  * should maintain separate statistics for each table, and it should not
+  * complain when the average time between table access is larger than the
+  * average table access latency.
   */
 #define PSC_GET_TIME_BEFORE_LOOKUP \
     struct timeval _before, _after; \
     DELTA_TIME _delta; \
+    double _new_delta_ms; \
     GETTIMEOFDAY(&_before);
 
-#define PSC_DELTA_MS(d) ((d).dt_sec * 1000 + (d).dt_usec / 1000)
+#define PSC_DELTA_MS(d) ((d).dt_sec * 1000.0 + (d).dt_usec / 1000.0)
+
+#ifndef PSC_THRESHOLD_MS
+#define PSC_THRESHOLD_MS       100     /* nag if latency > 100ms */
+#endif
+
+#ifndef PSC_WARN_LOCKOUT_S
+#define PSC_WARN_LOCKOUT_S     60      /* don't nag for 60s */
+#endif
+
+static time_t psc_last_warn = 0;
 
-#define PSC_CHECK_TIME_AFTER_LOOKUP(table, action) \
+#define PSC_CHECK_TIME_AFTER_LOOKUP(table, action, average) \
     GETTIMEOFDAY(&_after); \
     PSC_CALC_DELTA(_delta, _after, _before); \
-    if (_delta.dt_sec > 1 || _delta.dt_usec > 100000) \
-        msg_warn("%s: %s %s took %d ms", \
-                 myname, (table), (action), PSC_DELTA_MS(_delta));
+    _new_delta_ms = PSC_DELTA_MS(_delta); \
+    if ((average = psc_average(_new_delta_ms, average)) > PSC_THRESHOLD_MS \
+       && psc_last_warn < event_time() - PSC_WARN_LOCKOUT_S) { \
+        msg_warn("%s: %s %s average delay is %.0f ms", \
+                 myname, (table), (action), average); \
+       psc_last_warn = event_time(); \
+    }
 
 /* psc_addr_match_list_match - time-critical address list lookup */
 
@@ -92,10 +120,11 @@ int     psc_addr_match_list_match(ADDR_MATCH_LIST *addr_list,
 {
     const char *myname = "psc_addr_match_list_match";
     int     result;
+    static double latency_ms;
 
     PSC_GET_TIME_BEFORE_LOOKUP;
     result = addr_match_list_match(addr_list, addr_str);
-    PSC_CHECK_TIME_AFTER_LOOKUP("address list", "lookup");
+    PSC_CHECK_TIME_AFTER_LOOKUP("address list", "lookup", latency_ms);
     return (result);
 }
 
@@ -105,10 +134,11 @@ const char *psc_cache_lookup(DICT_CACHE *cache, const char *key)
 {
     const char *myname = "psc_cache_lookup";
     const char *result;
+    static double latency_ms;
 
     PSC_GET_TIME_BEFORE_LOOKUP;
     result = dict_cache_lookup(cache, key);
-    PSC_CHECK_TIME_AFTER_LOOKUP(dict_cache_name(cache), "lookup");
+    PSC_CHECK_TIME_AFTER_LOOKUP(dict_cache_name(cache), "lookup", latency_ms);
     return (result);
 }
 
@@ -117,10 +147,11 @@ const char *psc_cache_lookup(DICT_CACHE *cache, const char *key)
 void    psc_cache_update(DICT_CACHE *cache, const char *key, const char *value)
 {
     const char *myname = "psc_cache_update";
+    static double latency_ms;
 
     PSC_GET_TIME_BEFORE_LOOKUP;
     dict_cache_update(cache, key, value);
-    PSC_CHECK_TIME_AFTER_LOOKUP(dict_cache_name(cache), "update");
+    PSC_CHECK_TIME_AFTER_LOOKUP(dict_cache_name(cache), "update", latency_ms);
 }
 
 /* psc_dict_get - time-critical table lookup */
@@ -129,10 +160,11 @@ const char *psc_dict_get(DICT *dict, const char *key)
 {
     const char *myname = "psc_dict_get";
     const char *result;
+    static double latency_ms;
 
     PSC_GET_TIME_BEFORE_LOOKUP;
     result = dict_get(dict, key);
-    PSC_CHECK_TIME_AFTER_LOOKUP(dict->name, "lookup");
+    PSC_CHECK_TIME_AFTER_LOOKUP(dict->name, "lookup", latency_ms);
     return (result);
 }
 
@@ -142,9 +174,10 @@ const char *psc_maps_find(MAPS *maps, const char *key, int flags)
 {
     const char *myname = "psc_maps_find";
     const char *result;
+    static double latency_ms;
 
     PSC_GET_TIME_BEFORE_LOOKUP;
     result = maps_find(maps, key, flags);
-    PSC_CHECK_TIME_AFTER_LOOKUP(maps->title, "lookup");
+    PSC_CHECK_TIME_AFTER_LOOKUP(maps->title, "lookup", latency_ms);
     return (result);
 }
index bc7b703820cdbfea8b7ce09750777f8a3ff17f47..e4d217d277972bc01449faa09f4c36291f27c1e9 100644 (file)
@@ -219,76 +219,62 @@ static const NAME_CODE protocol_table[] = {
 };
 
  /*
-  * SSL_OP_MUMBLE bug work-around name <=> mask conversion. We expect the C
-  * preprocessor to be able to handle "long" #if operands
+  * SSL_OP_MUMBLE bug work-around name <=> mask conversion.
   */
 #define NAMEBUG(x)     #x, SSL_OP_##x
 static const LONG_NAME_MASK ssl_bug_tweaks[] = {
 
-#if defined(SSL_OP_MICROSOFT_SESS_ID_BUG) && \
-           ((SSL_OP_MICROSOFT_SESS_ID_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_MICROSOFT_SESS_ID_BUG)
     NAMEBUG(MICROSOFT_SESS_ID_BUG),    /* 0x00000001L */
 #endif
 
-#if defined(SSL_OP_NETSCAPE_CHALLENGE_BUG) && \
-           ((SSL_OP_NETSCAPE_CHALLENGE_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_NETSCAPE_CHALLENGE_BUG)
     NAMEBUG(NETSCAPE_CHALLENGE_BUG),   /* 0x00000002L */
 #endif
 
-#if defined(SSL_OP_LEGACY_SERVER_CONNECT) && \
-           ((SSL_OP_LEGACY_SERVER_CONNECT & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_LEGACY_SERVER_CONNECT)
     NAMEBUG(LEGACY_SERVER_CONNECT),    /* 0x00000004L */
 #endif
 
-#if defined(SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG) && \
-           ((SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG)
     NAMEBUG(NETSCAPE_REUSE_CIPHER_CHANGE_BUG), /* 0x00000008L */
     "CVE-2010-4180", SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG,
 #endif
 
-#if defined(SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG) && \
-           ((SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG)
     NAMEBUG(SSLREF2_REUSE_CERT_TYPE_BUG),      /* 0x00000010L */
 #endif
 
-#if defined(SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER) && \
-           ((SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER)
     NAMEBUG(MICROSOFT_BIG_SSLV3_BUFFER),/* 0x00000020L  */
 #endif
 
-#if defined(SSL_OP_MSIE_SSLV2_RSA_PADDING) && \
-           ((SSL_OP_MSIE_SSLV2_RSA_PADDING & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_MSIE_SSLV2_RSA_PADDING)
     NAMEBUG(MSIE_SSLV2_RSA_PADDING),   /* 0x00000040L */
     "CVE-2005-2969", SSL_OP_MSIE_SSLV2_RSA_PADDING,
 #endif
 
-#if defined(SSL_OP_SSLEAY_080_CLIENT_DH_BUG) && \
-           ((SSL_OP_SSLEAY_080_CLIENT_DH_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_SSLEAY_080_CLIENT_DH_BUG)
     NAMEBUG(SSLEAY_080_CLIENT_DH_BUG), /* 0x00000080L */
 #endif
 
-#if defined(SSL_OP_TLS_D5_BUG) && \
-           ((SSL_OP_TLS_D5_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_TLS_D5_BUG)
     NAMEBUG(TLS_D5_BUG),               /* 0x00000100L   */
 #endif
 
-#if defined(SSL_OP_TLS_BLOCK_PADDING_BUG) && \
-           ((SSL_OP_TLS_BLOCK_PADDING_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_TLS_BLOCK_PADDING_BUG)
     NAMEBUG(TLS_BLOCK_PADDING_BUG),    /* 0x00000200L */
 #endif
 
-#if defined(SSL_OP_TLS_ROLLBACK_BUG) && \
-           ((SSL_OP_TLS_ROLLBACK_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_TLS_ROLLBACK_BUG)
     NAMEBUG(TLS_ROLLBACK_BUG),         /* 0x00000400L */
 #endif
 
-#if defined(SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS) && \
-           ((SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)
     NAMEBUG(DONT_INSERT_EMPTY_FRAGMENTS),      /* 0x00000800L */
 #endif
 
-#if defined(SSL_OP_CRYPTOPRO_TLSEXT_BUG) && \
-           ((SSL_OP_CRYPTOPRO_TLSEXT_BUG & SSL_OP_ALL) != 0L)
+#if defined(SSL_OP_CRYPTOPRO_TLSEXT_BUG)
     NAMEBUG(CRYPTOPRO_TLSEXT_BUG),     /* 0x80000000L */
 #endif
     0, 0,
index eb9333481449546cd94edf410a066e6c15ddd1f0..1cf1b78d8f7182b5310770041ca694724e8698ee 100644 (file)
@@ -64,7 +64,7 @@
 /* .fi
 /*     An IPv4 address pattern has four fields separated by ".".
 /*     Each field is either a decimal number, or a sequence inside
-/*     "[]" that contains one or more comma-separated decimal
+/*     "[]" that contains one or more ";"-separated decimal
 /*     numbers or number..number ranges.
 /*
 /*     Examples of patterns are 1.2.3.4 (matches itself, as one
@@ -91,7 +91,7 @@
 /* .br
 /*     v4octet = any decimal number in the range 0 through 255
 /* .br
-/*     v4sequence = v4seq_member | v4sequence "," v4seq_member
+/*     v4sequence = v4seq_member | v4sequence ";" v4seq_member
 /* .br
 /*     v4seq_member = v4octet | v4octet ".." v4octet
 /* .in
@@ -206,7 +206,7 @@ char   *ip_match_dump(VSTRING *printable, const char *byte_codes)
                }
                /* Output the wild-card field separator and repeat the loop. */
                if (*bp != IP_MATCH_CODE_CLOSE)
-                   vstring_sprintf_append(printable, ",");
+                   vstring_sprintf_append(printable, ";");
            }
            vstring_sprintf_append(printable, "]");
        }
@@ -507,7 +507,7 @@ char   *ip_match_parse(VSTRING *byte_codes, char *pattern)
             */
        case IP_MATCH_CODE_OPEN:
            VSTRING_ADDCH(byte_codes, IP_MATCH_CODE_OPEN);
-           /* Require comma-separated numbers or numeric ranges. */
+           /* Require ";"-separated numbers or numeric ranges. */
            for (;;) {
                token_type = ip_match_next_token(&cp, &saved_cp, &oval);
                if (token_type == IP_MATCH_CODE_OVAL) {
@@ -537,16 +537,16 @@ char   *ip_match_parse(VSTRING *byte_codes, char *pattern)
                        VSTRING_ADDCH(byte_codes, IP_MATCH_CODE_OVAL);
                        VSTRING_ADDCH(byte_codes, saved_oval);
                    }
-                   /* Require "," or end-of-wildcard. */
+                   /* Require ";" or end-of-wildcard. */
                    token_type = look_ahead;
-                   if (token_type == ',') {
+                   if (token_type == ';') {
                        continue;
                    } else if (token_type == IP_MATCH_CODE_CLOSE) {
                        break;
                    } else {
                        ipmatch_print_parse_error(byte_codes, pattern,
                                                  saved_cp, cp,
-                                                 "need \",\" or \"%c\"",
+                                                 "need \";\" or \"%c\"",
                                                  IP_MATCH_CODE_CLOSE);
                        return (STR(byte_codes));
                    }
index 0aae84b58cfcc72d2e3264ea247cae5f0a8b6d69..bca0d6e6720e4189d4c0bb228eeef0cbe12ded79 100644 (file)
@@ -4,12 +4,12 @@
 1.2.3.
 1.2.3
 a
-1.2.3,4
+1.2.3;4
 1.2.[3].4
 1.2.[].4
 1.2.[.4
 1.2.].4
-1.2.[1..127,128..255].5
+1.2.[1..127;128..255].5
 1.2.[1-255].5
 1.2.[1..127.128..255].5
 1.2.3.[4]
@@ -19,4 +19,4 @@ a
 1.2.3.[x]
 1.2.3.4x
 1.2.[3..11].5  1.2.3.5 1.2.2.5 1.2.11.5 1.2.12.5  1.2.11.6
-1.2.[3,5,7,9,11].5     1.2.3.5 1.2.2.5 1.2.4.5 1.2.11.5 1.2.12.5  1.2.11.6
+1.2.[3;5;7;9;11].5     1.2.3.5 1.2.2.5 1.2.4.5 1.2.11.5 1.2.12.5  1.2.11.6
index 3293b10ec9cca67a60bafd0d21f0fb36d50db1c2..22c823edf0d0cb6f6e919864070c241a1ffaac9a 100644 (file)
@@ -10,8 +10,8 @@ Error: need decimal number 0..255 or "[" at "1.2.3.><"
 Error: need "." at "1.2.3><"
 > a
 Error: need decimal number 0..255 or "[" at ">a<"
-> 1.2.3,4
-Error: need "." at "1.2.3>,<4"
+> 1.2.3;4
+Error: need "." at "1.2.3>;<4"
 > 1.2.[3].4
 Code: 1.2.[3].4
 > 1.2.[].4
@@ -20,12 +20,12 @@ Error: need decimal number 0..255 at "1.2.[>]<.4"
 Error: need decimal number 0..255 at "1.2.[>.<4"
 > 1.2.].4
 Error: need decimal number 0..255 or "[" at "1.2.>]<.4"
-> 1.2.[1..127,128..255].5
-Code: 1.2.[1..127,128..255].5
+> 1.2.[1..127;128..255].5
+Code: 1.2.[1..127;128..255].5
 > 1.2.[1-255].5
-Error: need "," or "]" at "1.2.[1>-<255].5"
+Error: need ";" or "]" at "1.2.[1>-<255].5"
 > 1.2.[1..127.128..255].5
-Error: need "," or "]" at "1.2.[1..127>.<128..255].5"
+Error: need ";" or "]" at "1.2.[1..127>.<128..255].5"
 > 1.2.3.[4]
 Code: 1.2.3.[4]
 > 1.2.3.[4..1]
@@ -45,8 +45,8 @@ Match 1.2.2.5: no
 Match 1.2.11.5: yes
 Match 1.2.12.5: no
 Match 1.2.11.6: no
-> 1.2.[3,5,7,9,11].5   1.2.3.5 1.2.2.5 1.2.4.5 1.2.11.5 1.2.12.5  1.2.11.6
-Code: 1.2.[3,5,7,9,11].5
+> 1.2.[3;5;7;9;11].5   1.2.3.5 1.2.2.5 1.2.4.5 1.2.11.5 1.2.12.5  1.2.11.6
+Code: 1.2.[3;5;7;9;11].5
 Match 1.2.3.5: yes
 Match 1.2.2.5: no
 Match 1.2.4.5: no