]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.3-20060418
authorWietse Venema <wietse@porcupine.org>
Tue, 18 Apr 2006 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:32:16 +0000 (06:32 +0000)
postfix/HISTORY
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/proto/postconf.proto
postfix/src/global/mail_version.h
postfix/src/smtpd/smtpd.c
postfix/src/smtpd/smtpd_check.c
postfix/src/util/vstream.c
postfix/src/util/vstream.h
postfix/src/util/vstream_popen.c

index b03bee8c71c3e54244dac7efe821b2e3a3f4d425..0bcf34c938724b7a6ff99306a061ee69c8b4e7d3 100644 (file)
@@ -12121,6 +12121,19 @@ Apologies for any names omitted.
        when reporting errors. Fix by Leandro Santi. Files:
        global/mime_state.c, cleanup/cleanup_message.c.
 
+20060411
+
+       Bugfix: the SMTP server logged no warning when for some
+       reason the TLS engine was unavailable in wrappermode. Victor
+       Duchovni.  File: smtpd/smtpd.c.
+
+20060417
+
+       Cleanup: when SMTP access table lookup fails, reply with
+       4xx instead of aborting with a fatal run-time error. The
+       old behavior assumes local file access, and is inappropriate
+       with deployment of LDAP and SQL tables. File: smtpd/smtpd_check.c.
+
 Wish list:
 
        Don't send xforward attributes to every site that announces
index 43f902d8269b0cfba53ada7d13a5071eb0912653..27b42a0d8e7f0f1fc2af2a7c8fce5aa3a61e148b 100644 (file)
@@ -8790,6 +8790,8 @@ the name matches the client IP address. A client name is set to
 lookup is disabled.  Turning off name lookup reduces delays due to
 DNS lookup and increases the maximal inbound delivery rate. </p>
 
+<p> This feature is available in Postfix 2.3 and later.  </p>
+
 
 </DD>
 
index 16f0323fd290ffcf61898c9b60cce489cac71060..f476d0564e064f082bdd87ef9e2a8a1126419b59 100644 (file)
@@ -5063,6 +5063,8 @@ the name matches the client IP address. A client name is set to
 "unknown" when it cannot be looked up or verified, or when name
 lookup is disabled.  Turning off name lookup reduces delays due to
 DNS lookup and increases the maximal inbound delivery rate.
+.PP
+This feature is available in Postfix 2.3 and later.
 .SH smtpd_policy_service_max_idle (default: 300s)
 The time after which an idle SMTPD policy service connection is
 closed.
index 4f5a2433e41181b630429d33a43d56786af490b9..6563096f1c5b4d90a69bb97c1469157d1f943685 100644 (file)
@@ -8776,6 +8776,8 @@ the name matches the client IP address. A client name is set to
 lookup is disabled.  Turning off name lookup reduces delays due to
 DNS lookup and increases the maximal inbound delivery rate. </p>
 
+<p> This feature is available in Postfix 2.3 and later.  </p>
+
 %PARAM delay_logging_resolution_limit 2
 
 <p> The maximal number of digits after the decimal point when logging
index 9069dcd4646eef797b69f5e6881866ab4a2d938d..f05b4952abf88df6be92f75b047690e78c2e57fa 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      "20060405"
+#define MAIL_RELEASE_DATE      "20060418"
 #define MAIL_VERSION_NUMBER    "2.3"
 
 #ifdef SNAPSHOT
index 86068af17445f8ae441eccb1d397f222b04b0d52..7bfec2a51ebcdc0148352fa918af9c94bb87b0e7 100644 (file)
@@ -3333,6 +3333,13 @@ static void smtpd_proto(SMTPD_STATE *state, const char *service)
         */
 #ifdef USE_TLS
        if (SMTPD_STAND_ALONE(state) == 0 && var_smtpd_tls_wrappermode) {
+           if (smtpd_tls_ctx == 0) {
+               msg_warn("Wrapper-mode request dropped from %s for service %s."
+                        "TLS context initialization failed. For details see"
+                        " earlier warnings in your logs.",
+                        state->namaddr, state->service);
+               break;
+           }
            if (var_smtpd_cntls_limit > 0
                && !xclient_allowed
                && anvil_clnt
index f071b757e99c1c1baa57b36cdcdd56a6d6914246..b8892325781ddb9c8e2d820829ed21086cd1216e 100644 (file)
@@ -2258,8 +2258,13 @@ static int check_access(SMTPD_STATE *state, const char *table, const char *name,
            CHK_ACCESS_RETURN(check_table_result(state, table, value, name,
                                                 reply_name, reply_class,
                                                 def_acl), FOUND);
-       if (dict_errno != 0)
-           msg_fatal("%s: table lookup problem", table);
+       if (dict_errno != 0) {
+           msg_warn("%s: table lookup problem", table);
+           value = "450 4.3.0 Server configuration error";
+           CHK_ACCESS_RETURN(check_table_result(state, table, value, name,
+                                                reply_name, reply_class,
+                                                def_acl), FOUND);
+       }
     }
     CHK_ACCESS_RETURN(SMTPD_CHECK_DUNNO, MISSED);
 }
@@ -2299,8 +2304,13 @@ static int check_domain_access(SMTPD_STATE *state, const char *table,
                CHK_DOMAIN_RETURN(check_table_result(state, table, value,
                                            domain, reply_name, reply_class,
                                                     def_acl), FOUND);
-           if (dict_errno != 0)
-               msg_fatal("%s: table lookup problem", table);
+           if (dict_errno != 0) {
+               msg_warn("%s: table lookup problem", table);
+               value = "450 4.3.0 Server configuration error";
+               CHK_DOMAIN_RETURN(check_table_result(state, table, value,
+                                           domain, reply_name, reply_class,
+                                                    def_acl), FOUND);
+           }
        }
        /* Don't apply subdomain magic to numerical hostnames. */
        if (maybe_numerical
@@ -2353,8 +2363,13 @@ static int check_addr_access(SMTPD_STATE *state, const char *table,
                CHK_ADDR_RETURN(check_table_result(state, table, value, address,
                                                   reply_name, reply_class,
                                                   def_acl), FOUND);
-           if (dict_errno != 0)
-               msg_fatal("%s: table lookup problem", table);
+           if (dict_errno != 0) {
+               msg_warn("%s: table lookup problem", table);
+               value = "450 4.3.0 Server configuration error";
+               CHK_ADDR_RETURN(check_table_result(state, table, value, address,
+                                                  reply_name, reply_class,
+                                                  def_acl), FOUND);
+           }
        }
        flags = PARTIAL;
     } while (split_at_right(addr, delim));
index c5f2911af46973611f93c44e26487ed67aa472ac..86d6481f694fcdaedcbbfd65767e3e70cc3327f3 100644 (file)
@@ -7,7 +7,7 @@
 /*     #include <vstream.h>
 /*
 /*     VSTREAM *vstream_fopen(path, flags, mode)
-/*     char    *path;
+/*     const char *path;
 /*     int     flags;
 /*     mode_t  mode;
 /*
 /*     VSTREAM *stream;
 /*
 /*     VSTREAM *vstream_printf(format, ...)
-/*     char    *format;
+/*     const char *format;
 /*
 /*     VSTREAM *vstream_fprintf(stream, format, ...)
 /*     VSTREAM *stream;
-/*     char    *format;
+/*     const char *format;
 /*
 /*     int     VSTREAM_GETC(stream)
 /*     VSTREAM *stream;
@@ -44,7 +44,7 @@
 /*     int     ch;
 /*
 /*     int     vstream_fputs(str, stream)
-/*     char    *str;
+/*     const char *str;
 /*     VSTREAM *stream;
 /*
 /*     off_t   vstream_ftell(stream)
 /*     int     vstream_clearerr(stream)
 /*     VSTREAM *stream;
 /*
-/*     char    *VSTREAM_PATH(stream)
+/*     const char *VSTREAM_PATH(stream)
 /*     VSTREAM *stream;
 /*
 /*     char    *vstream_vfprintf(vp, format, ap)
-/*     char    *format;
+/*     const char *format;
 /*     va_list *ap;
 /*
 /*     ssize_t vstream_peek(stream)
index 7e71cc215953afaa27f2b8959dc47cd0f93418e2..37c9efba9535f9532f33bf1fade70de51b98bb12 100644 (file)
@@ -99,7 +99,7 @@ extern int vstream_fdclose(VSTREAM *);
 #define vstream_feof(vp)       vbuf_eof(&(vp)->buf)
 #define vstream_ftimeout(vp)   vbuf_timeout(&(vp)->buf)
 #define vstream_clearerr(vp)   vbuf_clearerr(&(vp)->buf)
-#define VSTREAM_PATH(vp)       ((vp)->path ? (vp)->path : "unknown_stream")
+#define VSTREAM_PATH(vp)       ((vp)->path ? (const char *) (vp)->path : "unknown_stream")
 #define vstream_ftime(vp)      ((time_t) ((vp)->iotime.tv_sec))
 #define vstream_ftimeval(vp)   ((vp)->iotime)
 
index d988d7e8b401a55bfecb0d6cbd3cf8be7ac8913b..094621826e4faebf908fd2670e39531174512a38 100644 (file)
@@ -38,6 +38,7 @@
 /*     list of name, value, name, value, ... elements. By default only the
 /*     command search path is initialized to _PATH_DEFPATH.
 /* .IP "VSTREAM_POPEN_EXPORT (char **)"
+/*     This argument is passed to clean_env().
 /*     Null-terminated array of names of environment parameters
 /*     that can be exported. By default, everything is exported.
 /* .IP "VSTREAM_POPEN_UID (uid_t)"