]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.2.8 v2.2.8
authorWietse Venema <wietse@porcupine.org>
Tue, 3 Jan 2006 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sat, 10 Feb 2018 21:11:43 +0000 (16:11 -0500)
postfix/HISTORY
postfix/examples/chroot-setup/LINUX2
postfix/makedefs
postfix/src/anvil/anvil.c
postfix/src/global/mail_version.h
postfix/src/postqueue/postqueue.c
postfix/src/smtp/smtp_chat.c
postfix/src/smtp/smtp_proto.c
postfix/src/util/dict_regexp.c
postfix/src/util/sys_defs.h

index d325405a4a6936fabec8c69c3650151111f9eff9..a6fac711b4ae3ca085c6bcfb01088835fb84300d 100644 (file)
@@ -10752,3 +10752,45 @@ Apologies for any names omitted.
        defer logfile record when the target delivery agent was
        broken.  This the analog of queue manager bugfix 20051119.
        Files: global/deliver_pass.c.
+
+20051212
+
+       Bugfix: an EHLO I/O error after STARTTLS would be reported
+       as a STARTTLS I/O error. File: smtp/smtp_proto.c.
+
+20051213
+
+       Bugfix: the *SQL, proxy and LDAP maps were not defined in
+       user-land commands such as postqueue. Leandro Santi. File:
+       postqueue/postqueue.c.
+
+20051225
+
+       Workaround: the regexp map cleverly avoided scanning constant
+       results for non-existent $number expressions, but failed
+       to subject those constant results to $$ -> $ replacement.
+       Since fixing this requires too much change for a stable
+       release, the optimization is turned off (it doesn't exist
+       in the 2.2 PCRE map, either). Files: util/dict_regexp.c.
+
+20051231
+
+       Bugfix: the anvil server would terminate after "max_idle"
+       seconds, even when this was less than the anvil_rate_time_unit
+       interval. File: anvil/anvil.c.
+
+20060101
+
+       Portability: 64-bit support for LINUX chroot script by Keith
+       Owens.  File: examples/chroot-setup/LINUX2.
+
+20060103
+
+       Backout: the Postfix 2.2.6 paranoia about garbage in remote
+       server replies caused "multiple delivery" problems or "no
+       delivery" problems with broken servers/firewalls. Postfix
+       still logs a warning but no longer defers delivery.  File:
+       smtp/smtp_chat.c.
+
+       Portability: FreeBSD 6 is a supported platform. Files:
+       util/sys_defs.h, makedefs.
index f63c22c17472809b028eee6b145eb63f69c26fc9..f9c6184d8e987908ffcef3977c6f92413ec5447e 100644 (file)
@@ -42,6 +42,8 @@
 # Revision 1.4  2001/01/15 09:36:35  emma
 # add note it was successfully tested on Debian sid
 #
+# 20060101 /lib64 support by Keith Owens.
+#
 
 CP="cp -p"
 
@@ -62,6 +64,7 @@ POSTFIX_DIR=${POSTFIX_DIR-/var/spool/postfix}
 cd ${POSTFIX_DIR}
 
 mkdir -p etc lib usr/lib/zoneinfo
+test -d /lib64 && mkdir -p lib64
 
 # find localtime (SuSE 5.3 does not have /etc/localtime)
 lt=/etc/localtime
@@ -79,5 +82,10 @@ ln -s -f /etc/localtime usr/lib/zoneinfo
 cond_copy '/lib/libnss_*.so*' lib
 cond_copy '/lib/libresolv.so*' lib
 cond_copy '/lib/libdb.so*' lib
+if test -d /lib64; then
+  cond_copy '/lib64/libnss_*.so*' lib64
+  cond_copy '/lib64/libresolv.so*' lib64
+  cond_copy '/lib64/libdb.so*' lib64
+fi
 
 postfix reload
index 28058794df9b677382908f60a425c11ac427857c..0f2612d09c5568120443cec162a776a35bf6f491 100644 (file)
@@ -116,6 +116,8 @@ case "$SYSTEM.$RELEASE" in
                ;;
   FreeBSD.5*)  SYSTYPE=FREEBSD5
                ;;
+  FreeBSD.6*)  SYSTYPE=FREEBSD6
+               ;;
   OpenBSD.2*)  SYSTYPE=OPENBSD2
                ;;
   OpenBSD.3*)  SYSTYPE=OPENBSD3
index 8d40180d72bdf4c55d70a5b4cbee7f7e6e923e7a..ad59716bbb2d0ee44291c34f6d0733ded5cc60d6 100644 (file)
@@ -806,6 +806,12 @@ static void post_jail_init(char *unused_name, char **unused_argv)
      * Do not limit the number of client requests.
      */
     var_use_limit = 0;
+
+    /*
+     * Don't exit before the sampling interval ends.
+     */
+    if (var_idle_limit < var_anvil_time_unit)
+       var_idle_limit = var_anvil_time_unit;
 }
 
 /* anvil_status_dump - log and reset extreme usage */
index e3ced8a030ea2dd130353d5c300a5b023dc9d325..07653d390e3abb48c34b23fa9e2bcfd3db2edebf 100644 (file)
@@ -20,8 +20,8 @@
   * Patches change the patchlevel and the release date. Snapshots change the
   * release date only.
   */
-#define MAIL_RELEASE_DATE      "20051208"
-#define MAIL_VERSION_NUMBER    "2.2.7"
+#define MAIL_RELEASE_DATE      "20060103"
+#define MAIL_VERSION_NUMBER    "2.2.8"
 
 #define VAR_MAIL_VERSION       "mail_version"
 #ifdef SNAPSHOT
index 6f6ae1d90cdf687b3b70c3dba784e82c0182d89e..a5d7d906c14cd9d9f30009aff228bc5c2a5de997 100644 (file)
@@ -451,6 +451,7 @@ int     main(int argc, char **argv)
      * Further initialization...
      */
     mail_conf_read();
+    mail_dict_init();                          /* proxy, sql, ldap */
     get_mail_conf_str_table(str_table);
 
     /*
index db694c06260b9c415aa7a7c6c61da51692190982..846deeebf07fd767980c8eedc90aa86fdf0f87a7 100644 (file)
@@ -247,18 +247,33 @@ SMTP_RESP *smtp_chat_resp(SMTP_SESSION *session)
        }
 
        /*
-        * XXX Do not ignore garbage when ESMTP command pipelining is turned
-        * on. After sending ".<CR><LF>QUIT<CR><LF>", Postfix might recognize
-        * the server's 2XX QUIT reply as a 2XX END-OF-DATA reply after
-        * garbage, causing mail to be lost. Instead, make a long jump so
-        * that all recipients of multi-recipient mail get consistent
-        * treatment.
+        * XXX Do not simply ignore garbage in the server reply when ESMTP
+        * command pipelining is turned on.  For example, after sending
+        * ".<CR><LF>QUIT<CR><LF>" and receiving garbage followed by a
+        * legitimate 2XX reply, Postfix recognizes the server's QUIT reply
+        * as the END-OF-DATA reply after garbage, causing mail to be lost.
+        * 
+        * Without the ability to store per-domain status information in queue
+        * files, automatic workarounds are problematic. Automatically
+        * deferring the delivery creates "no delivery" or "repeated
+        * delivery" problems, and automatically turning off pipelining for
+        * "old" mail affects deliveries to sites with correct pipelining
+        * implementations.
+        * 
+        * So we leave the decision with the administrator, but we don't force
+        * them to take action, like we would with automatic deferral.  If
+        * loss of mail is not acceptable then they can turn off pipelining
+        * for specific sites, or they can turn off pipelining globally when
+        * they find that there are just too many broken sites.
         */
        session->error_mask |= MAIL_ERROR_PROTOCOL;
        if (session->features & SMTP_FEATURE_PIPELINING) {
-           msg_warn("non-SMTP response from %s: %s",
+           msg_warn("non-SMTP response from %s: %.100s",
                     session->namaddr, STR(session->buffer));
-           vstream_longjmp(session->stream, SMTP_ERR_PROTO);
+           if (var_helpful_warnings)
+               msg_warn("to prevent loss of mail, turn off command pipelining "
+                        "for %s with the %s parameter", session->addr,
+                        VAR_SMTP_EHLO_DIS_MAPS);
        }
     }
     if (three_digs != 0)
index 67dfaeca223d60783cc19a082f70c8f59d7d7e11..2041dcec749cc1960a1eb4119c4a0d3beb0499f7 100644 (file)
@@ -252,20 +252,20 @@ int     smtp_helo(SMTP_STATE *state, NOCLOBBER int misc_flags)
 
 #endif
 
+    /*
+     * Prepare for disaster.
+     */
+    smtp_timeout_setup(state->session->stream, var_smtp_helo_tmout);
+    if ((except = vstream_setjmp(state->session->stream)) != 0)
+       return (smtp_stream_except(state, except,
+                             "performing the initial protocol handshake"));
+
     /*
      * If not recursing after STARTTLS, examine the server greeting banner
      * and decide if we are going to send EHLO as the next command.
      */
     if ((misc_flags & SMTP_MISC_FLAG_IN_STARTTLS) == 0) {
 
-       /*
-        * Prepare for disaster.
-        */
-       smtp_timeout_setup(state->session->stream, var_smtp_helo_tmout);
-       if ((except = vstream_setjmp(state->session->stream)) != 0)
-           return (smtp_stream_except(state, except,
-                                   "receiving the initial SMTP greeting"));
-
        /*
         * Read and parse the server's SMTP greeting banner.
         */
index 8bb73bc7420983b09694b4d6164ef73282ee565a..9a6d607b2fb7a018b3a1d551af68b0d60d0fca8b 100644 (file)
@@ -257,9 +257,18 @@ static const char *dict_regexp_lookup(DICT *dict, const char *lookup_string)
            /*
             * Skip $number substitutions when the replacement text contains
             * no $number strings (as learned during the pre-scan).
+            * 
+            * XXX This is incorrect. Replacement text without $number
+            * expressions may still require $$ -> $ replacement. Fixing this
+            * requires that we save the result after pre-scanning the
+            * replacement text. This change is too invasive for a stable
+            * release. Since this optimization does not exist in the PCRE
+            * module, we forego it here too.
             */
+#if 0
            if (match_rule->max_sub == 0)
                return (match_rule->replacement);
+#endif
 
            /*
             * Perform $number substitutions on the replacement text. We
index 4bddae4106cc246a511deb88d04f4c682bd92d81..b67b273010eb578c9c085e6d619d5f111d8a2991 100644 (file)
@@ -24,7 +24,7 @@
   * 4.4BSD and close derivatives.
   */
 #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
-    || defined(FREEBSD5) \
+    || defined(FREEBSD5) || defined(FREEBSD6) \
     || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \
     || defined(OPENBSD2) || defined(OPENBSD3) \
     || defined(NETBSD1) || defined(NETBSD2) \