mirror of
https://github.com/vdukhovni/postfix
synced 2025-09-05 08:35:26 +00:00
postfix-2.2.8
This commit is contained in:
committed by
Viktor Dukhovni
parent
e26f0fda65
commit
afa93364ff
@@ -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.
|
||||
|
@@ -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
|
||||
|
@@ -116,6 +116,8 @@ case "$SYSTEM.$RELEASE" in
|
||||
;;
|
||||
FreeBSD.5*) SYSTYPE=FREEBSD5
|
||||
;;
|
||||
FreeBSD.6*) SYSTYPE=FREEBSD6
|
||||
;;
|
||||
OpenBSD.2*) SYSTYPE=OPENBSD2
|
||||
;;
|
||||
OpenBSD.3*) SYSTYPE=OPENBSD3
|
||||
|
@@ -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 */
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
||||
/*
|
||||
|
@@ -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)
|
||||
|
@@ -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.
|
||||
*/
|
||||
|
@@ -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
|
||||
|
@@ -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) \
|
||||
|
Reference in New Issue
Block a user