2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 18:07:41 +00:00

postfix-2.9-20110117

This commit is contained in:
Wietse Venema 2011-01-17 00:00:00 -05:00 committed by Viktor Dukhovni
parent b9df75b70d
commit 964d4b3048
14 changed files with 98 additions and 38 deletions

View File

@ -16471,3 +16471,25 @@ Apologies for any names omitted.
Cleanup: documentation, in preparation for the Postfix 2.8
stable release.
20110117
Bugfix (introduced Postfix alpha, or thereabouts): on HP-UX
the Postfix event engine was deaf for SIGALRM signals.
Symptoms were killed processes when the watchdog timeout
was less than max_idle. The fix is the same as Solaris fix
20110109. Since we can't know what other systems need this,
the workaround is enabled by default. Files: util/sys_defs.h.
Cleanup: "smtpd_tls_eecdh_grade = strong" by default, instead
of snapshot-only. File: global/mail_params.h, proto/postconf.proto.
Cleanup: missing "#include <errno.h>" in util/watchdog.c.
Bugfix: when compiled without -DUSE_TLS, tlsproxy used the
wrong server skeleton (multi_server instead of event_server).
File: tlsproxy/tlsproxy.c.
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.

View File

@ -14,6 +14,31 @@ specifies the release date of a stable release or snapshot release.
If you upgrade from Postfix 2.6 or earlier, read RELEASE_NOTES-2.7
before proceeding.
Major changes - restart Postfix
-------------------------------
If you upgrade from Postfix 2.6 or earlier, you must execute "postfix
stop" and "postfix start" before you can use the postscreen(8)
daemon. This is needed because the Postfix 2.6 "pass" master service
type did not work reliably on some systems.
If you upgrade from Postfix 2.7, or from Postfix 2.8 before July
25, 2010, you must execute "postfix reload" (or "postfix stop"
followed by "postfix start"). This is needed because the queue
manager to delivery agent protocol has changed. Failure to do this
results in repeated logging of warnings with:
warning: unexpected attribute rewrite_context ...
If the warning does not go away after restarting Postfix, examine
the output from this command:
strings -af /usr/libexec/postfix/* | grep mail_version=
(where /usr/libexec/postfix is the value of main.cf:daemon_directory)
and update the executables that have a version string that differs
from the other programs.
Major changes - DNSBL/DNSWL support
-----------------------------------
@ -324,11 +349,6 @@ parameter specifies how long to keep an expired entry in the cache.
This prevents a client from being logged as "NEW" after its record
expired only a little while ago.
[Incompat 20091008] If you upgrade from Postfix 2.6 or earlier, you
must stop and start the Postfix master daemon before you can use
the postscreen(8) daemon. This is needed because the Postfix 2.6
"pass" master service type did not work reliably on some systems.
[Feature 20091008] Prototype postscreen(8) server that runs a number
of time-consuming checks in parallel for all incoming SMTP connections,
before clients are allowed to talk to a real Postfix SMTP server.

View File

@ -6,6 +6,15 @@ Wish list:
Things to do after the stable release:
events.c: cache the side effects of file descriptor event
enable/disable operations in user space, and do bulk kernel
updates at event_loop() time. This can eliminate costly
system calls with successive event disable/enable operations
on the same file descriptor. This can also eliminate the
need for tricky code that tries to avoid the expense of
successive disable/enable operations. Such code is likely
to introduce bugs.
When does it pay off to send domains in the active queue
to a DNS prefetch daemon? Could this generalize to a dynamic
transport map that piggy-backs domains with the same MX

View File

@ -14177,14 +14177,14 @@ Diffie-Hellman (EECDH) key exchange. </p>
<dl>
<dt><b>none</b></dt> <dd> Don't use EECDH. Ciphers based on EECDH key
exchange will be disabled. This is the default in official Postfix
releases (<a href="postconf.5.html#mail_version">mail_version</a> = major.minor.patchlevel). </dd>
exchange will be disabled. This is the default in Postfix versions
2.6 and 2.7. </dd>
<dt><b>strong</b></dt> <dd> Use EECDH with approximately 128
bits of security at a reasonable computational cost. This is the
current best-practice trade-off between security and computational
efficiency. This is the default in Postfix snapshot releases
(<a href="postconf.5.html#mail_version">mail_version</a> = major.minor-releasedate). </dd>
efficiency. This is the default in Postfix version 2.8 and later.
</dd>
<dt><b>ultra</b></dt> <dd> Use EECDH with approximately 192 bits of
security at computational cost that is approximately twice as high

View File

@ -8988,14 +8988,13 @@ Diffie-Hellman (EECDH) key exchange.
The available choices are:
.IP "\fBnone\fR"
Don't use EECDH. Ciphers based on EECDH key
exchange will be disabled. This is the default in official Postfix
releases (mail_version = major.minor.patchlevel).
exchange will be disabled. This is the default in Postfix versions
2.6 and 2.7.
.IP "\fBstrong\fR"
Use EECDH with approximately 128
bits of security at a reasonable computational cost. This is the
current best-practice trade-off between security and computational
efficiency. This is the default in Postfix snapshot releases
(mail_version = major.minor-releasedate).
efficiency. This is the default in Postfix version 2.8 and later.
.IP "\fBultra\fR"
Use EECDH with approximately 192 bits of
security at computational cost that is approximately twice as high

View File

@ -11739,14 +11739,14 @@ Diffie-Hellman (EECDH) key exchange. </p>
<dl>
<dt><b>none</b></dt> <dd> Don't use EECDH. Ciphers based on EECDH key
exchange will be disabled. This is the default in official Postfix
releases (mail_version = major.minor.patchlevel). </dd>
exchange will be disabled. This is the default in Postfix versions
2.6 and 2.7. </dd>
<dt><b>strong</b></dt> <dd> Use EECDH with approximately 128
bits of security at a reasonable computational cost. This is the
current best-practice trade-off between security and computational
efficiency. This is the default in Postfix snapshot releases
(mail_version = major.minor-releasedate). </dd>
efficiency. This is the default in Postfix version 2.8 and later.
</dd>
<dt><b>ultra</b></dt> <dd> Use EECDH with approximately 192 bits of
security at computational cost that is approximately twice as high

View File

@ -1281,11 +1281,7 @@ extern char *var_smtpd_tls_dh512_param_file;
extern char *var_smtpd_tls_dh1024_param_file;
#define VAR_SMTPD_TLS_EECDH "smtpd_tls_eecdh_grade"
#ifdef SNAPSHOT
#define DEF_SMTPD_TLS_EECDH "strong"
#else
#define DEF_SMTPD_TLS_EECDH "none"
#endif
extern char *var_smtpd_tls_eecdh;
#define VAR_SMTPD_TLS_LOGLEVEL "smtpd_tls_loglevel"
@ -3557,11 +3553,7 @@ extern char *var_tlsp_tls_dh512_param_file;
extern char *var_tlsp_tls_dh1024_param_file;
#define VAR_TLSP_TLS_EECDH "tlsproxy_tls_eecdh_grade"
#ifdef SNAPSHOT
#define DEF_TLSP_TLS_EECDH "$" VAR_SMTPD_TLS_EECDH
#else
#define DEF_TLSP_TLS_EECDH "$" VAR_SMTPD_TLS_EECDH
#endif
extern char *var_tlsp_tls_eecdh;
#define VAR_TLSP_TLS_LOGLEVEL "tlsproxy_tls_loglevel"

View 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 "20110116"
#define MAIL_RELEASE_DATE "20110117"
#define MAIL_VERSION_NUMBER "2.9"
#ifdef SNAPSHOT

View File

@ -487,8 +487,8 @@ int psc_normal_greet_wait; /* stressed greet wait */
int psc_stress_cmd_time_limit; /* stressed command limit */
int psc_normal_cmd_time_limit; /* normal command time limit */
int psc_stress; /* stress level */
int psc_check_queue_length_lowat; /* stress low-water mark */
int psc_check_queue_length_hiwat; /* stress high-water mark */
int psc_lowat_check_queue_length; /* stress low-water mark */
int psc_hiwat_check_queue_length; /* stress high-water mark */
DICT *psc_dnsbl_reply; /* DNSBL name mapper */
HTABLE *psc_client_concurrency; /* per-client concurrency */
@ -1048,12 +1048,19 @@ static void post_jail_init(char *unused_name, char **unused_argv)
psc_normal_greet_wait =
get_mail_conf_time(VAR_PSC_GREET_WAIT, DEF_PSC_GREET_WAIT, 1, 0);
psc_check_queue_length_lowat = .7 * var_psc_pre_queue_limit;
psc_check_queue_length_hiwat = .9 * var_psc_pre_queue_limit;
psc_lowat_check_queue_length = .7 * var_psc_pre_queue_limit;
psc_hiwat_check_queue_length = .9 * var_psc_pre_queue_limit;
if (msg_verbose)
msg_info(VAR_PSC_CMD_TIME ": stress=%d normal=%d lowat=%d hiwat=%d",
psc_stress_cmd_time_limit, psc_normal_cmd_time_limit,
psc_check_queue_length_lowat, psc_check_queue_length_hiwat);
psc_lowat_check_queue_length, psc_hiwat_check_queue_length);
if (psc_lowat_check_queue_length == 0)
msg_panic("compiler error: 0.7 * %d = %d", var_psc_pre_queue_limit,
psc_lowat_check_queue_length);
if (psc_hiwat_check_queue_length == 0)
msg_panic("compiler error: 0.9 * %d = %d", var_psc_pre_queue_limit,
psc_hiwat_check_queue_length);
/*
* Per-client concurrency.

View File

@ -292,8 +292,8 @@ extern int psc_normal_greet_wait; /* stressed greet wait */
extern int psc_stress_cmd_time_limit; /* stressed command limit */
extern int psc_normal_cmd_time_limit; /* normal command time limit */
extern int psc_stress; /* stress level */
extern int psc_check_queue_length_lowat;/* stress low-water mark */
extern int psc_check_queue_length_hiwat;/* stress high-water mark */
extern int psc_lowat_check_queue_length;/* stress low-water mark */
extern int psc_hiwat_check_queue_length;/* stress high-water mark */
extern DICT *psc_dnsbl_reply; /* DNSBL name mapper */
extern HTABLE *psc_client_concurrency; /* per-client concurrency */

View File

@ -171,7 +171,7 @@ PSC_STATE *psc_new_session_state(VSTREAM *stream,
* Update the stress level.
*/
if (psc_stress == 0
&& psc_check_queue_length >= psc_check_queue_length_hiwat) {
&& psc_check_queue_length >= psc_hiwat_check_queue_length) {
psc_stress = 1;
msg_info("entering STRESS mode with %d connections",
psc_check_queue_length);
@ -238,7 +238,7 @@ void psc_free_session_state(PSC_STATE *state)
* Update the stress level.
*/
if (psc_stress != 0
&& psc_check_queue_length <= psc_check_queue_length_lowat) {
&& psc_check_queue_length <= psc_lowat_check_queue_length) {
psc_stress = 0;
msg_info("leaving STRESS mode with %d connections",
psc_check_queue_length);

View File

@ -1147,7 +1147,7 @@ int main(int argc, char **argv)
* (including logging) and then invoke the tlsp_service() routine to log
* the message that says why this program will not run.
*/
multi_server_main(argc, argv, tlsp_service,
event_server_main(argc, argv, tlsp_service,
0);
}

View File

@ -441,7 +441,6 @@ extern int opterr;
#define USE_SYSV_POLL
#ifndef NO_DEVPOLL
# define EVENTS_STYLE EVENTS_STYLE_DEVPOLL
# define USE_WATCHDOG_PIPE
#endif
/*
@ -1280,6 +1279,17 @@ extern int dup2_pass_on_exec(int oldd, int newd);
extern const char *inet_ntop(int, const void *, char *, size_t);
extern int inet_pton(int, const char *, void *);
#endif
/*
* Workaround: after a watchdog alarm signal, wake up from select/poll/etc.
* by writing to a pipe. Solaris needs this, and HP-UX apparently, too. The
* run-time cost is negligible so we just turn it on for all systems. As a
* side benefit, making this code system-independent will simplify the
* detection of bit-rot problems.
*/
#ifndef NO_WATCHDOG_PIPE
#define USE_WATCHDOG_PIPE
#endif
/*

View File

@ -126,6 +126,7 @@ static WATCHDOG *watchdog_curr;
* watchdog timeout is less than the max_idle time.
*/
#ifdef USE_WATCHDOG_PIPE
#include <errno.h>
#include <iostuff.h>
#include <events.h>