]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.12-20140709
authorWietse Venema <wietse@porcupine.org>
Thu, 10 Jul 2014 13:14:26 +0000 (23:14 +1000)
committerViktor Dukhovni <ietf-dane@dukhovni.org>
Thu, 10 Jul 2014 13:37:08 +0000 (23:37 +1000)
12 files changed:
postfix/HISTORY
postfix/RELEASE_NOTES
postfix/WISHLIST
postfix/makedefs
postfix/src/dns/Makefile.in
postfix/src/global/Makefile.in
postfix/src/global/defer.c
postfix/src/global/defer.h
postfix/src/global/mail_version.h
postfix/src/master/Makefile.in
postfix/src/smtpd/smtpd_check.c
postfix/src/util/Makefile.in

index cdfb5aa0b5098114012142453c672117c376f1f8..7e5e9966fa25e4fba5c0874886d49a744ee5d038 100644 (file)
@@ -20122,3 +20122,17 @@ Apologies for any names omitted.
        action when giving up. The defaults are backwards-compatible.
        Files: global/mail_params.h, mantools/postlink,
        proto/postconf.proto, smtpd/smtpd.c, smtpd/smtpd_check.c.
+
+20140708
+
+       Bugfix (introduced 20140701): did not restore jumpbuf
+       while evaluatingsmtpd_policy_service_default_action.
+       Viktor Dukhovni. File: smtpd/smtpd_check.c.
+
+20140709
+
+       Cleanup: bitrot in unused function. File: global/defer.c.
+
+       Cleanup: add SYSLIBS minus static libraries while building
+       Postfix shared-library objects. Files: makedefs, util/Makefile.in,
+       global/Makefile.in, dns/Makefile.in, master/Makefile.in/.
index 6c5db23ec1fe47f3247f65b6e5d5c8fd2ae6c419..9aacafd3a3fdfc2df68195e8e1ca91a9e7ec930a 100644 (file)
@@ -41,6 +41,26 @@ Maintainers may also benefit from the makedefs documentation
 (mantools/srctoman - makedefs | nroff -man | less) with information
 about build options that are not described in the INSTALL instructions.
 
+Major changes with snapshot 20140703
+====================================
+
+This release introduces three new configuration parameters that
+control error recovery for failed SMTPD policy requests.
+
+  * smtpd_policy_service_default_action (default: 451 4.3.5 Server
+    configuration problem): The default action when an SMTPD policy
+    service request fails.
+
+  * smtpd_policy_service_try_limit (default: 2): The maximal number
+    of attempts to send an SMTPD policy service request before
+    giving up. This must be a number greater than zero.
+
+  * smtpd_policy_service_retry_delay (default: 1s): The delay between
+    attempts to resend a failed SMTPD policy service request. This
+    must be a number greater than zero.
+
+See postconf(5) for details and limitations.
+
 Incompatible changes with snapshot 20140701
 ===========================================
 
index cfa02d813e6a03ea916f06920057ff0b91d8fb1e..7768775840c4fd784cab74de6f0612730c055bfe 100644 (file)
@@ -8,14 +8,18 @@ Wish list:
 
        Things to do after the stable release:
 
+       Document and test restriction_classes example for 
+       smtpd_policy_service_default_action.
+
        Don't accept AUTH or other features that are not announced
        in the EHLO response.
 
        Per-Milter error action.
 
        Suggested at Mailserver conference: Postscreen RDNS-based
-       reputation (but this introduces dependency on random DNS
-       servers).
+       reputation (but this makes postscreen performance highly
+       unpredicable because it introduces a dependency on random
+       DNS servers).
 
        Discourage the use of "after 220" tests in POSTSCREEN_README
        and the documentation of individual parameter settings.
index 0b5a7aeed7a9f627b2aec2c4b57e0aeb6d1560da..de8139dfa20e392417503b7725026a66bdb59665 100644 (file)
@@ -926,6 +926,7 @@ no|"")
     SHLIB_CFLAGS=
     SHLIB_SUFFIX=
     SHLIB_LD=:
+    SHLIB_SYSLIBS=
     SHLIB_RPATH=
     SHLIB_ENV=
     LIB_PREFIX=
@@ -984,6 +985,21 @@ AUXLIBS_$name = \$AUXLIBS_$name\""
      done;;
 esac
 
+# Remove static libraries from SYSLIBS when building shared objects,
+# Can't use the shell "case" patterns to detect names ending in *.a.
+
+case "$shared" in
+yes) SHLIB_SYSLIBS=`${AWK} '
+     BEGIN { wc = split("'"$SYSLIBS"'", words) 
+        for (n = 1; n <= wc; n++)
+            if (words[n] !~ /\.a$/)
+                printf(" %s", words[n])
+     }
+     '`
+esac
+
+# Finally...
+
 sed 's/   */ /g' <<EOF
 # System-dependent settings and compiler/linker overrides.
 SYSTYPE        = $SYSTYPE
@@ -1009,6 +1025,7 @@ SHLIB_CFLAGS = $SHLIB_CFLAGS
 SHLIB_DIR = $shlib_directory
 SHLIB_ENV = $SHLIB_ENV
 SHLIB_LD = $SHLIB_LD
+SHLIB_SYSLIBS = $SHLIB_SYSLIBS
 SHLIB_RPATH = $SHLIB_RPATH
 # Switch between dynamicmaps.cf plugins and hard-linked databases.
 NON_PLUGIN_MAP_OBJ = $NON_PLUGIN_MAP_OBJ
index a82915f89c6fc5c54dd43575c6b86c3b25cc865f..b06966cffba45239c259f3e0d45582516b894a65 100644 (file)
@@ -33,7 +33,7 @@ root_tests:
 $(LIB):        $(OBJS)
        $(AR) $(ARFL) $(LIB) $?
        $(RANLIB) $(LIB)
-       $(SHLIB_LD) -o $(LIB) $(OBJS)
+       $(SHLIB_LD) -o $(LIB) $(OBJS) $(SHLIB_SYSLIBS)
 
 $(LIB_DIR)/$(LIB): $(LIB)
        cp $(LIB) $(LIB_DIR)
index 9bbbdb51493dab698db9a371194fe87a62fd95c9..2498f4fa4c949f3e06e7c212049db653f03c7e65 100644 (file)
@@ -138,7 +138,7 @@ test:       $(TESTPROG)
 $(LIB):        $(OBJS)
        $(AR) $(ARFL) $(LIB) $?
        $(RANLIB) $(LIB)
-       $(SHLIB_LD) -o $(LIB) $(OBJS)
+       $(SHLIB_LD) -o $(LIB) $(OBJS) $(SHLIB_SYSLIBS)
 
 $(LIB_DIR)/$(LIB): $(LIB)
        cp $(LIB) $(LIB_DIR)
index 17eea9a5c4c8beb37da9dbbe2dbb763c4718890c..7ca6071d48d90ef99777efef3e8cf27cfb1cb9a6 100644 (file)
 /*     const char *dsn_envid;
 /*     int     dsn_ret;
 /*
-/*     int     defer_warn(flags, queue, id, sender, dsn_envid, dsn_ret)
+/*     int     defer_warn(flags, queue, id, encoding, sender,
+/*                             dsn_envid, dsn_ret)
 /*     int     flags;
 /*     const char *queue;
 /*     const char *id;
+/*     const char *encoding;
 /*     const char *sender;
 /*     const char *dsn_envid;
 /*     int     dsn_ret;
@@ -196,7 +198,7 @@ int     defer_append(int flags, const char *id, MSG_STATS *stats,
      * DSN filter (Postfix 2.12).
      */
     if (delivery_status_filter != 0
-      && (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
+    && (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
        if (dsn_res->status[0] == '5')
            return (bounce_append_intern(flags, id, stats, rcpt, relay, dsn_res));
        my_dsn = *dsn_res;
@@ -312,13 +314,15 @@ int     defer_flush(int flags, const char *queue, const char *id,
  * do not flush the log */
 
 int     defer_warn(int flags, const char *queue, const char *id,
-                        const char *sender, const char *envid, int dsn_ret)
+                          const char *encoding, const char *sender,
+                          const char *envid, int dsn_ret)
 {
     if (mail_command_client(MAIL_CLASS_PRIVATE, var_defer_service,
                            ATTR_TYPE_INT, MAIL_ATTR_NREQ, BOUNCE_CMD_WARN,
                            ATTR_TYPE_INT, MAIL_ATTR_FLAGS, flags,
                            ATTR_TYPE_STR, MAIL_ATTR_QUEUE, queue,
                            ATTR_TYPE_STR, MAIL_ATTR_QUEUEID, id,
+                           ATTR_TYPE_STR, MAIL_ATTR_ENCODING, encoding,
                            ATTR_TYPE_STR, MAIL_ATTR_SENDER, sender,
                            ATTR_TYPE_STR, MAIL_ATTR_DSN_ENVID, envid,
                            ATTR_TYPE_INT, MAIL_ATTR_DSN_RET, dsn_ret,
@@ -352,7 +356,7 @@ int     defer_one(int flags, const char *queue, const char *id,
      * DSN filter (Postfix 2.12).
      */
     if (delivery_status_filter != 0
-      && (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
+    && (dsn_res = dsn_filter_lookup(delivery_status_filter, &my_dsn)) != 0) {
        if (dsn_res->status[0] == '5')
            return (bounce_one_intern(flags, queue, id, encoding, sender,
                                      dsn_envid, dsn_ret, stats, rcpt,
index 0b6ea4d2fe7c8352aa585ca2017a059073fce0a7..90f94e20d91d9629f26a8da5c48b48601e13621d 100644 (file)
@@ -24,7 +24,7 @@ extern int defer_append(int, const char *, MSG_STATS *, RECIPIENT *,
 extern int defer_flush(int, const char *, const char *, const char *,
                               const char *, const char *, int);
 extern int defer_warn(int, const char *, const char *, const char *,
-                             const char *, int);
+                             const char *, const char *, int);
 extern int defer_one(int, const char *, const char *, const char *,
                             const char *, const char *,
                             int, MSG_STATS *, RECIPIENT *,
index 6a46a760c8975dbfd260575710711cc1879bbc28..48e87fe7257befcde02dac78c112b6fcab7f06c7 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      "20140703"
+#define MAIL_RELEASE_DATE      "20140709"
 #define MAIL_VERSION_NUMBER    "2.12"
 
 #ifdef SNAPSHOT
index 466159d4ca668801c1dc1bba6f84ef40b17a5eb1..5d3bacc0d549bc7fe74a62450ee7fc7743764e4c 100644 (file)
@@ -44,7 +44,7 @@ root_tests:
 $(LIB):        $(LIB_OBJ)
        $(AR) $(ARFL) $(LIB) $?
        $(RANLIB) $(LIB)
-       $(SHLIB_LD) -o $(LIB) $(LIB_OBJ)
+       $(SHLIB_LD) -o $(LIB) $(LIB_OBJ) $(SHLIB_SYSLIBS)
 
 $(LIB_DIR)/$(LIB): $(LIB)
        cp $(LIB) $(LIB_DIR)/$(LIB)
index 6c342ac9096b5e96b7c930327298cbb1c803ef11..8850cff702a0aa8b443e0867d44c9397d59dcdbd 100644 (file)
@@ -3727,6 +3727,8 @@ static int check_policy_service(SMTPD_STATE *state, const char *server,
                                 "policy query", reply_name,
                                 reply_class, def_acl);
        nesting_level -= 1;
+       memcpy(ADDROF(smtpd_check_buf), ADDROF(savebuf),
+               sizeof(smtpd_check_buf));
     } else {
 
        /*
index c7ef0a5eca852463a9a7f912856d6cdb59b4ce8f..5a03a52f42b23a13056c094d906a66284684737c 100644 (file)
@@ -143,7 +143,7 @@ test:       $(TESTPROG)
 $(LIB):        $(OBJS)
        $(AR) $(ARFL) $(LIB) $?
        $(RANLIB) $(LIB)
-       $(SHLIB_LD) -o $(LIB) $(OBJS)
+       $(SHLIB_LD) -o $(LIB) $(OBJS) $(SHLIB_SYSLIBS)
 
 $(LIB_DIR)/$(LIB): $(LIB)
        cp $(LIB) $(LIB_DIR)