Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/gnu/dist/postfix/src postfix-2.2.8



details:   https://anonhg.NetBSD.org/src/rev/774a8773263e
branches:  trunk
changeset: 586912:774a8773263e
user:      rpaulo <rpaulo%NetBSD.org@localhost>
date:      Thu Jan 05 02:10:01 2006 +0000

description:
postfix-2.2.8

diffstat:

 gnu/dist/postfix/src/anvil/anvil.c         |   8 +++++++-
 gnu/dist/postfix/src/global/deliver_pass.c |  28 +++++++++++++++++++++-------
 gnu/dist/postfix/src/global/mail_version.h |   6 +++---
 gnu/dist/postfix/src/lmtp/lmtp.c           |   5 +++--
 gnu/dist/postfix/src/lmtp/lmtp.h           |   3 ++-
 gnu/dist/postfix/src/lmtp/lmtp_proto.c     |   8 +++++++-
 6 files changed, 43 insertions(+), 15 deletions(-)

diffs (171 lines):

diff -r 50da859a3a3d -r 774a8773263e gnu/dist/postfix/src/anvil/anvil.c
--- a/gnu/dist/postfix/src/anvil/anvil.c        Thu Jan 05 02:07:29 2006 +0000
+++ b/gnu/dist/postfix/src/anvil/anvil.c        Thu Jan 05 02:10:01 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: anvil.c,v 1.1.1.1 2005/08/18 21:07:49 rpaulo Exp $     */
+/*     $NetBSD: anvil.c,v 1.1.1.2 2006/01/05 02:10:01 rpaulo Exp $     */
 
 /*++
 /* NAME
@@ -808,6 +808,12 @@
      * 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 */
diff -r 50da859a3a3d -r 774a8773263e gnu/dist/postfix/src/global/deliver_pass.c
--- a/gnu/dist/postfix/src/global/deliver_pass.c        Thu Jan 05 02:07:29 2006 +0000
+++ b/gnu/dist/postfix/src/global/deliver_pass.c        Thu Jan 05 02:10:01 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: deliver_pass.c,v 1.1.1.6 2005/08/18 21:06:11 rpaulo Exp $      */
+/*     $NetBSD: deliver_pass.c,v 1.1.1.7 2006/01/05 02:11:06 rpaulo Exp $      */
 
 /*++
 /* NAME
@@ -74,6 +74,9 @@
 #include <mail_params.h>
 #include <deliver_pass.h>
 
+#define DELIVER_PASS_DEFER     1
+#define DELIVER_PASS_UNKNOWN   2
+
 /* deliver_pass_initial_reply - retrieve initial delivery process response */
 
 static int deliver_pass_initial_reply(VSTREAM *stream)
@@ -143,9 +146,10 @@
                  ATTR_TYPE_NUM, MAIL_ATTR_STATUS, &stat,
                  ATTR_TYPE_END) != 2) {
        msg_warn("%s: malformed response", VSTREAM_PATH(stream));
-       stat = -1;
+       return (DELIVER_PASS_UNKNOWN);
+    } else {
+       return (stat ? DELIVER_PASS_DEFER : 0);
     }
-    return (stat);
 }
 
 /* deliver_pass - deliver one per-site queue entry */
@@ -187,10 +191,20 @@
      * XXX Can't pass back hop status info because the problem is with a
      * different transport.
      */
-    if ((status = deliver_pass_initial_reply(stream)) == 0
-       && (status = deliver_pass_send_request(stream, request, nexthop,
-                                              orig_addr, addr, offs)) == 0)
-       status = deliver_pass_final_reply(stream, reason);
+    if (deliver_pass_initial_reply(stream) != 0
+       || deliver_pass_send_request(stream, request, nexthop,
+                                    orig_addr, addr, offs) != 0) {
+       status = defer_append(DEL_REQ_TRACE_FLAGS(request->flags),
+                             request->queue_id, orig_addr, addr,
+                             offs, "none", request->arrival_time,
+                             "mail transport unavailable");
+    } else if ((status = deliver_pass_final_reply(stream, reason))
+              == DELIVER_PASS_UNKNOWN) {
+       status = defer_append(DEL_REQ_TRACE_FLAGS(request->flags),
+                             request->queue_id, orig_addr, addr,
+                             offs, "none", request->arrival_time,
+                             "unknown mail transport error");
+    }
 
     /*
      * Clean up.
diff -r 50da859a3a3d -r 774a8773263e gnu/dist/postfix/src/global/mail_version.h
--- a/gnu/dist/postfix/src/global/mail_version.h        Thu Jan 05 02:07:29 2006 +0000
+++ b/gnu/dist/postfix/src/global/mail_version.h        Thu Jan 05 02:10:01 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mail_version.h,v 1.1.1.19 2005/12/01 21:43:33 rpaulo Exp $     */
+/*     $NetBSD: mail_version.h,v 1.1.1.20 2006/01/05 02:11:43 rpaulo Exp $     */
 
 #ifndef _MAIL_VERSION_H_INCLUDED_
 #define _MAIL_VERSION_H_INCLUDED_
@@ -22,8 +22,8 @@
   * Patches change the patchlevel and the release date. Snapshots change the
   * release date only.
   */
-#define MAIL_RELEASE_DATE      "20051130"
-#define MAIL_VERSION_NUMBER    "2.2.6"
+#define MAIL_RELEASE_DATE      "20060103"
+#define MAIL_VERSION_NUMBER    "2.2.8"
 
 #define VAR_MAIL_VERSION       "mail_version"
 #ifdef SNAPSHOT
diff -r 50da859a3a3d -r 774a8773263e gnu/dist/postfix/src/lmtp/lmtp.c
--- a/gnu/dist/postfix/src/lmtp/lmtp.c  Thu Jan 05 02:07:29 2006 +0000
+++ b/gnu/dist/postfix/src/lmtp/lmtp.c  Thu Jan 05 02:10:01 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: lmtp.c,v 1.1.1.9 2005/08/18 21:07:16 rpaulo Exp $      */
+/*     $NetBSD: lmtp.c,v 1.1.1.10 2006/01/05 02:12:49 rpaulo Exp $     */
 
 /*++
 /* NAME
@@ -367,7 +367,8 @@
         * Disconnect if RSET can't be sent over an existing connection.
         * Discard transcript and status information for sending RSET.
         */
-       else if (lmtp_rset(state) != 0) {
+       else if (lmtp_rset(state) != 0
+                || (state->features & LMTP_FEATURE_RSET_REJECTED) != 0) {
            lmtp_chat_reset(state);
            state->session = lmtp_session_free(state->session);
 #ifdef USE_SASL_AUTH
diff -r 50da859a3a3d -r 774a8773263e gnu/dist/postfix/src/lmtp/lmtp.h
--- a/gnu/dist/postfix/src/lmtp/lmtp.h  Thu Jan 05 02:07:29 2006 +0000
+++ b/gnu/dist/postfix/src/lmtp/lmtp.h  Thu Jan 05 02:10:01 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: lmtp.h,v 1.1.1.6 2005/08/18 21:07:17 rpaulo Exp $      */
+/*     $NetBSD: lmtp.h,v 1.1.1.7 2006/01/05 02:12:51 rpaulo Exp $      */
 
 /*++
 /* NAME
@@ -68,6 +68,7 @@
 #define LMTP_FEATURE_XFORWARD_PROTO (1<<8)
 #define LMTP_FEATURE_XFORWARD_HELO (1<<9)
 #define LMTP_FEATURE_XFORWARD_DOMAIN (1<<10)
+#define LMTP_FEATURE_RSET_REJECTED (1<<11)
 
  /*
   * lmtp.c
diff -r 50da859a3a3d -r 774a8773263e gnu/dist/postfix/src/lmtp/lmtp_proto.c
--- a/gnu/dist/postfix/src/lmtp/lmtp_proto.c    Thu Jan 05 02:07:29 2006 +0000
+++ b/gnu/dist/postfix/src/lmtp/lmtp_proto.c    Thu Jan 05 02:10:01 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: lmtp_proto.c,v 1.1.1.10 2005/08/18 21:07:20 rpaulo Exp $       */
+/*     $NetBSD: lmtp_proto.c,v 1.1.1.11 2006/01/05 02:12:56 rpaulo Exp $       */
 
 /*++
 /* NAME
@@ -33,6 +33,7 @@
 /*     accordingly.
 /*
 /*     lmtp_rset() sends a lone RSET command and waits for the response.
+/*     In case of a negative reply it sets the CANT_RSET_THIS_SESSION flag.
 /*
 /*     lmtp_quit() sends a lone QUIT command and waits for the response
 /*     only if waiting for QUIT replies is enabled.
@@ -356,6 +357,9 @@
 #define SENDING_MAIL \
        (recv_state <= LMTP_STATE_DOT)
 
+#define CANT_RSET_THIS_SESSION \
+       (state->features |= LMTP_FEATURE_RSET_REJECTED)
+
     /*
      * Pipelining support requires two loops: one loop for sending and one
      * for receiving. Each loop has its own independent state. Most of the
@@ -736,6 +740,8 @@
                     * Ignore the RSET response.
                     */
                case LMTP_STATE_RSET:
+                   if (resp->code / 100 != 2)
+                       CANT_RSET_THIS_SESSION;
                    recv_state = LMTP_STATE_LAST;
                    break;
 



Home | Main Index | Thread Index | Old Index