This commit is contained in:
parent
5cb13953d2
commit
f797fbda6a
282
exim.changes
282
exim.changes
@ -1,3 +1,285 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 20 13:33:22 CET 2006 - poeml@suse.de
|
||||||
|
|
||||||
|
- update to 4.64
|
||||||
|
TK/01 Bugzilla #401. Fix DK spooling code so that it can overwrite a
|
||||||
|
leftover -K file (the existence of which was triggered by #402).
|
||||||
|
While we were at it, introduced process PID as part of the -K
|
||||||
|
filename. This should rule out race conditions when creating
|
||||||
|
these files.
|
||||||
|
TK/02 Bugzilla #402. Apply patch from Simon Arlott, speeding up DK signing
|
||||||
|
processing considerably. Previous code took too long for large mails,
|
||||||
|
triggering a timeout which in turn triggers #401.
|
||||||
|
TK/03 Introduced HAVE_LINUX_SENDFILE to os.h-Linux. Currently only used
|
||||||
|
in the DK code in transports.c. sendfile() is not really portable,
|
||||||
|
hence the _LINUX specificness.
|
||||||
|
TF/01 In the add_headers option to the mail command in an Exim filter,
|
||||||
|
there was a bug that Exim would claim a syntax error in any
|
||||||
|
header after the first one which had an odd number of characters
|
||||||
|
in the field name.
|
||||||
|
PH/01 If a server that rejects MAIL FROM:<> was the target of a sender
|
||||||
|
callout verification, Exim cached a "reject" for the entire domain. This
|
||||||
|
is correct for most verifications, but it is not correct for a recipient
|
||||||
|
verification with use_sender or use_postmaster set, because in that case
|
||||||
|
the callout does not use MAIL FROM:<>. Exim now distinguishes the special
|
||||||
|
case of MAIL FROM:<> rejection from other early rejections (e.g.
|
||||||
|
rejection of HELO). When verifying a recipient using a non-null MAIL
|
||||||
|
address, the cache is ignored if it shows MAIL FROM:<> rejection.
|
||||||
|
Whatever the result of the callout, the value of the domain cache is
|
||||||
|
left unchanged (for any other kind of callout, getting as far as trying
|
||||||
|
RCPT means that the domain itself is ok).
|
||||||
|
PH/02 Tidied a number of unused variable and signed/unsigned warnings that
|
||||||
|
gcc 4.1.1 threw up.
|
||||||
|
PH/03 On Solaris, an unexpectedly close socket (dropped connection) can
|
||||||
|
manifest itself as EPIPE rather than ECONNECT. When tidying away a
|
||||||
|
session, the daemon ignores ECONNECT errors and logs others; it now
|
||||||
|
ignores EPIPE as well.
|
||||||
|
PH/04 Applied Nico Erfurth's refactoring patch to tidy up mime.c
|
||||||
|
(quoted-printable decoding).
|
||||||
|
PH/05 Applied Nico Erfurth's refactoring patch to tidy up spool_mbox.c, and
|
||||||
|
later the small subsequent patch to fix an introduced bug.
|
||||||
|
PH/06 Installed the latest Cygwin Makefile from the Cygwin maintainer.
|
||||||
|
PH/07 There was no check for overflow in expansions such as ${if >{1}{4096M}}.
|
||||||
|
PH/08 An error is now given if message_size_limit is specified negative.
|
||||||
|
PH/09 Applied and tidied up Jakob Hirsch's patch for allowing ACL variables
|
||||||
|
to be given (somewhat) arbitrary names.
|
||||||
|
JJ/01 exipick 20060919.0, allow for arbitrary acl_ variables introduced
|
||||||
|
in 4.64-PH/09.
|
||||||
|
JJ/02 exipick 20060919.0, --show-vars args can now be regular expressions,
|
||||||
|
miscellaneous code fixes
|
||||||
|
PH/10 Added the log_reject_target ACL modifier to specify where to log
|
||||||
|
rejections.
|
||||||
|
PH/11 Callouts were setting the name used for EHLO/HELO from $smtp_active_
|
||||||
|
hostname. This is wrong, because it relates to the incoming message (and
|
||||||
|
probably the interface on which it is arriving) and not to the outgoing
|
||||||
|
callout (which could be using a different interface). This has been
|
||||||
|
changed to use the value of the helo_data option from the smtp transport
|
||||||
|
instead - this is what is used when a message is actually being sent. If
|
||||||
|
there is no remote transport (possible with a router that sets up host
|
||||||
|
addresses), $smtp_active_hostname is used.
|
||||||
|
PH/12 Installed Andrey Panin's patch to add a dovecot authenticator. Various
|
||||||
|
tweaks were necessary in order to get it to work (see also 21 below):
|
||||||
|
(a) The code assumed that strncpy() returns a negative number on buffer
|
||||||
|
overflow, which isn't the case. Replaced with Exim's string_format()
|
||||||
|
function.
|
||||||
|
(b) There were several signed/unsigned issues. I just did the minimum
|
||||||
|
hacking in of casts. There is scope for a larger refactoring.
|
||||||
|
(c) The code used strcasecmp() which is not a standard C function.
|
||||||
|
Replaced with Exim's strcmpic() function.
|
||||||
|
(d) The code set only $1; it now sets $auth1 as well.
|
||||||
|
(e) A simple test gave the error "authentication client didn't specify
|
||||||
|
service in request". It would seem that Dovecot has changed its
|
||||||
|
interface. Fortunately there's a specification; I followed it and
|
||||||
|
changed what the client sends and it appears to be working now.
|
||||||
|
PH/13 Added $message_headers_raw to provide the headers without RFC 2047
|
||||||
|
decoding.
|
||||||
|
PH/14 Corrected misleading output from -bv when -v was also used. Suppose the
|
||||||
|
address A is aliased to B and C, where B exists and C does not. Without
|
||||||
|
-v the output is "A verified" because verification stops after a
|
||||||
|
successful redirection if more than one address is generated. However,
|
||||||
|
with -v the child addresses are also verified. Exim was outputting "A
|
||||||
|
failed to verify" and then showing the successful verification for C,
|
||||||
|
with its parentage. It now outputs "B failed to verify", showing B's
|
||||||
|
parentage before showing the successful verification of C.
|
||||||
|
PH/15 Applied Michael Deutschmann's patch to allow DNS black list processing to
|
||||||
|
look up a TXT record in a specific list after matching in a combined
|
||||||
|
list.
|
||||||
|
PH/16 It seems that the options setting for the resolver (RES_DEFNAMES and
|
||||||
|
RES_DNSRCH) can affect the behaviour of gethostbyname() and friends when
|
||||||
|
they consult the DNS. I had assumed they would set it the way they
|
||||||
|
wanted; and indeed my experiments on Linux seem to show that in some
|
||||||
|
cases they do (I could influence IPv6 lookups but not IPv4 lookups).
|
||||||
|
To be on the safe side, however, I have now made the interface to
|
||||||
|
host_find_byname() similar to host_find_bydns(), with an argument
|
||||||
|
containing the DNS resolver options. The host_find_byname() function now
|
||||||
|
sets these options at its start, just as host_find_bydns() does. The smtp
|
||||||
|
transport options dns_qualify_single and dns_search_parents are passed to
|
||||||
|
host_find_byname() when gethostbyname=TRUE in this transport. Other uses
|
||||||
|
of host_find_byname() use the default settings of RES_DEFNAMES
|
||||||
|
(qualify_single) but not RES_DNSRCH (search_parents).
|
||||||
|
PH/17 Applied (a modified version of) Nico Erfurth's patch to make
|
||||||
|
spool_read_header() do less string testing, by means of a preliminary
|
||||||
|
switch on the second character of optional "-foo" lines. (This is
|
||||||
|
overdue, caused by the large number of possibilities that now exist.
|
||||||
|
Originally there were few.) While I was there, I also converted the
|
||||||
|
str(n)cmp tests so they don't re-test the leading "-" and the first
|
||||||
|
character, in the hope this might squeeze out yet more improvement.
|
||||||
|
PH/18 Two problems with "group" syntax in header lines when verifying: (1) The
|
||||||
|
flag allowing group syntax was set by the header_syntax check but not
|
||||||
|
turned off, possible causing trouble later; (2) The flag was not being
|
||||||
|
set at all for the header_verify test, causing "group"-style headers to
|
||||||
|
be rejected. I have now set it in this case, and also caused header_
|
||||||
|
verify to ignore an empty address taken from a group. While doing this, I
|
||||||
|
came across some other cases where the code for allowing group syntax
|
||||||
|
while scanning a header line wasn't quite right (mostly, not resetting
|
||||||
|
the flag correctly in the right place). These bugs could have caused
|
||||||
|
trouble for malformed header lines. I hope it is now all correct.
|
||||||
|
PH/19 The functions {pwcheck,saslauthd}_verify_password() are always called
|
||||||
|
with the "reply" argument non-NULL. The code, however (which originally
|
||||||
|
came from elsewhere) had *some* tests for NULL when it wrote to *reply,
|
||||||
|
but it didn't always do it. This confused somebody who was copying the
|
||||||
|
code for some other use. I have removed all the tests.
|
||||||
|
PH/20 It was discovered that the GnuTLS code had support for RSA_EXPORT, a
|
||||||
|
feature that was used to support insecure browsers during the U.S. crypto
|
||||||
|
embargo. It requires special client support, and Exim is probably the
|
||||||
|
only MTA that supported it -- and would never use it because real RSA is
|
||||||
|
always available. This code has been removed, because it had the bad
|
||||||
|
effect of slowing Exim down by computing (never used) parameters for the
|
||||||
|
RSA_EXPORT functionality.
|
||||||
|
PH/21 On the advice of Timo Sirainen, added a check to the dovecot
|
||||||
|
authenticator to fail if there's a tab character in the incoming data
|
||||||
|
(there should never be unless someone is messing about, as it's supposed
|
||||||
|
to be base64-encoded). Also added, on Timo's advice, the "secured" option
|
||||||
|
if the connection is using TLS or if the remote IP is the same as the
|
||||||
|
local IP, and the "valid-client-cert option" if a client certificate has
|
||||||
|
been verified.
|
||||||
|
PH/22 As suggested by Dennis Davis, added a server_condition option to *all*
|
||||||
|
authenticators. This can be used for authorization after authentication
|
||||||
|
succeeds. (In the case of plaintext, it servers for both authentication
|
||||||
|
and authorization.)
|
||||||
|
PH/23 Testing for tls_required and lost_connection in a retry rule didn't work
|
||||||
|
if any retry times were supplied.
|
||||||
|
PH/24 Exim crashed if verify=helo was activated during an incoming -bs
|
||||||
|
connection, where there is no client IP address to check. In this
|
||||||
|
situation, the verify now always succeeds.
|
||||||
|
PH/25 Applied John Jetmore's -Mset patch.
|
||||||
|
PH/26 Added -bem to be like -Mset, but loading a message from a file.
|
||||||
|
PH/27 In a string expansion for a processed (not raw) header when multiple
|
||||||
|
headers of the same name were present, leading whitespace was being
|
||||||
|
removed from all of them, but trailing whitespace was being removed only
|
||||||
|
from the last one. Now trailing whitespace is removed from each header
|
||||||
|
before concatenation. Completely empty headers in a concatenation (as
|
||||||
|
before) are ignored.
|
||||||
|
PH/28 Fixed bug in backwards-compatibility feature of PH/09 (thanks to John
|
||||||
|
Jetmore). It would have mis-read ACL variables from pre-4.61 spool files.
|
||||||
|
PH/29 [Removed. This was a change that I later backed out, and forgot to
|
||||||
|
correct the ChangeLog entry (that I had efficiently created) before
|
||||||
|
committing the later change.]
|
||||||
|
PH/30 Exim was sometimes attempting to deliver messages that had suffered
|
||||||
|
address errors (4xx response to RCPT) over the same connection as other
|
||||||
|
messages routed to the same hosts. Such deliveries are always "forced",
|
||||||
|
so retry times are not inspected. This resulted in far too many retries
|
||||||
|
for the affected addresses. The effect occurred only when there were more
|
||||||
|
hosts than the hosts_max_try setting in the smtp transport when it had
|
||||||
|
the 4xx errors. Those hosts that it had tried were not added to the list
|
||||||
|
of hosts for which the message was waiting, so if all were tried, there
|
||||||
|
was no problem. Two fixes have been applied:
|
||||||
|
(i) If there are any address or message errors in an SMTP delivery, none
|
||||||
|
of the hosts (tried or untried) are now added to the list of hosts
|
||||||
|
for which the message is waiting, so the message should not be a
|
||||||
|
candidate for sending over the same connection that was used for a
|
||||||
|
successful delivery of some other message. This seems entirely
|
||||||
|
reasonable: after all the message is NOT "waiting for some host".
|
||||||
|
This is so "obvious" that I'm not sure why it wasn't done
|
||||||
|
previously. Hope I haven't missed anything, but it can't do any
|
||||||
|
harm, as the worst effect is to miss an optimization.
|
||||||
|
(ii) If, despite (i), such a delivery is accidentally attempted, the
|
||||||
|
routing retry time is respected, so at least it doesn't keep
|
||||||
|
hammering the server.
|
||||||
|
PH/31 Installed Andrew Findlay's patch to close the writing end of the socket
|
||||||
|
in ${readsocket because some servers need this prod.
|
||||||
|
PH/32 Added some extra debug output when updating a wait-xxx database.
|
||||||
|
PH/33 The hint "could be header name not terminated by colon", which has been
|
||||||
|
given for certain expansion errors for a long time, was not being given
|
||||||
|
for the ${if def:h_colon_omitted{... case.
|
||||||
|
PH/34 The spec says: "With one important exception, whenever a domain list is
|
||||||
|
being scanned, $domain contains the subject domain." There was at least
|
||||||
|
one case where this was not true.
|
||||||
|
PH/35 The error "getsockname() failed: connection reset by peer" was being
|
||||||
|
written to the panic log as well as the main log, but it isn't really
|
||||||
|
panic-worthy as it just means the connection died rather early on. I have
|
||||||
|
removed the panic log writing for the ECONNRESET error when getsockname()
|
||||||
|
fails.
|
||||||
|
PH/36 After a 4xx response to a RCPT error, that address was delayed (in queue
|
||||||
|
runs only) independently of the message's sender address. This meant
|
||||||
|
that, if the 4xx error was in fact related to the sender, a different
|
||||||
|
message to the same recipient with a different sender could confuse
|
||||||
|
things. In particualar, this can happen when sending to a greylisting
|
||||||
|
server, but other circumstances could also provoke similar problems.
|
||||||
|
I have changed the default so that the retry time for these errors is now
|
||||||
|
based a combination of the sender and recipient addresses. This change
|
||||||
|
can be overridden by setting address_retry_include_sender=false in the
|
||||||
|
smtp transport.
|
||||||
|
PH/37 For LMTP over TCP/IP (the smtp transport), error responses from the
|
||||||
|
remote server are returned as part of bounce messages. This was not
|
||||||
|
happening for LMTP over a pipe (the lmtp transport), but now it is the
|
||||||
|
same for both kinds of LMTP.
|
||||||
|
PH/38 Despite being documented as not happening, Exim was rewriting addresses
|
||||||
|
in header lines that were in fact CNAMEs. This is no longer the case.
|
||||||
|
PH/39 If -R or -S was given with -q<time>, the effect of -R or -S was ignored,
|
||||||
|
and queue runs started by the daemon processed all messages. This has
|
||||||
|
been fixed so that -R and -S can now usefully be given with -q<time>.
|
||||||
|
PH/40 Import PCRE release 6.7 (fixes some bugs).
|
||||||
|
PH/41 Add bitwise logical operations to eval (courtesy Brad Jorsch).
|
||||||
|
PH/42 Give an error if -q is specified more than once.
|
||||||
|
PH/43 Renamed the variables $interface_address and $interface_port as
|
||||||
|
$received_ip_address and $received_port, to make it clear that these
|
||||||
|
values apply to message reception, and not to the outgoing interface when
|
||||||
|
a message is delivered. (The old names remain recognized, of course.)
|
||||||
|
PH/44 There was no timeout on the connect() call when using a Unix domain
|
||||||
|
socket in the ${readsocket expansion. There now is.
|
||||||
|
PH/45 Applied a modified version of Brad Jorsch's patch to allow "message" to
|
||||||
|
be meaningful with "accept".
|
||||||
|
SC/01 Eximstats V1.43
|
||||||
|
Bug fix for V1.42 with -h0 specified. Spotted by Chris Lear.
|
||||||
|
SC/02 Eximstats V1.44
|
||||||
|
Use a glob alias rather than an array ref in the generated
|
||||||
|
parser. This improves both readability and performance.
|
||||||
|
SC/03 Eximstats V1.45 (Marco Gaiarin / Steve Campbell)
|
||||||
|
Collect SpamAssassin and rejection statistics.
|
||||||
|
Don't display local sender or destination tables unless
|
||||||
|
there is data to show.
|
||||||
|
Added average volumes into the top table text output.
|
||||||
|
SC/04 Eximstats V1.46
|
||||||
|
Collect data on the number of addresses (recipients)
|
||||||
|
as well as the number of messages.
|
||||||
|
SC/05 Eximstats V1.47
|
||||||
|
Added 'Message too big' to the list of mail rejection
|
||||||
|
reasons (thanks to Marco Gaiarin).
|
||||||
|
SC/06 Eximstats V1.48
|
||||||
|
Mainlog lines which have GMT offsets and are too short to
|
||||||
|
have a flag are now skipped.
|
||||||
|
SC/07 Eximstats V1.49 (Alain Williams)
|
||||||
|
Added the -emptyok flag.
|
||||||
|
SC/08 Eximstats V1.50
|
||||||
|
Fixes for obtaining the IP address from reject messages.
|
||||||
|
JJ/03 exipick.20061117.2, made header handling as similar to exim as possible
|
||||||
|
(added [br]h_ prefixes, implemented RFC2047 decoding. Fixed
|
||||||
|
whitesspace changes from 4.64-PH/27
|
||||||
|
JJ/04 exipick.20061117.2, fixed format and added $message_headers_raw to
|
||||||
|
match 4.64-PH/13
|
||||||
|
JJ/05 exipick.20061117.2, bug fixes (error out sooner when invalid criteria
|
||||||
|
are found, allow negative numbers in numeric criteria)
|
||||||
|
JJ/06 exipick.20061117.2, added new $message_body_missing variable
|
||||||
|
JJ/07 exipick.20061117.2, added $received_ip_address and $received_port
|
||||||
|
to match changes made in 4.64-PH/43
|
||||||
|
PH/46 Applied Jori Hamalainen's patch to add features to exiqsumm.
|
||||||
|
PH/47 Put in an explicit test for a DNS lookup of an address record where the
|
||||||
|
"domain" is actually an IP address, and force a failure. This locks out
|
||||||
|
those revolvers/nameservers that support "A-for-A" lookups, in
|
||||||
|
contravention of the specifications.
|
||||||
|
PH/48 When a host name was looked up from an IP address, and the subsequent
|
||||||
|
forward lookup of the name timed out, the host name was left in
|
||||||
|
$sender_host_name, contrary to the specification.
|
||||||
|
PH/49 Although default lookup types such as lsearch* or cdb*@ have always been
|
||||||
|
restricted to single-key lookups, Exim was not diagnosing an error if
|
||||||
|
* or *@ was used with a query-style lookup.
|
||||||
|
PH/50 Increased the value of DH_BITS in tls-gnu.c from 768 to 1024.
|
||||||
|
MH/01 local_scan ABI version incremented to 1.1. It should have been updated
|
||||||
|
long ago, but noone interested enough thought of it. Let's just say that
|
||||||
|
the "1.1" means that there are some new functions that weren't there at
|
||||||
|
some point in the past.
|
||||||
|
PH/51 Error processing for expansion failure of helo_data from an smtp
|
||||||
|
transport during callout processing was broken.
|
||||||
|
PH/52 Applied John Jetmore's patch to allow tls-on-connect and STARTTLS to be
|
||||||
|
tested/used via the -bh/-bhc/-bs options.
|
||||||
|
PH/53 Added missing "#include <time.h>" to pcre/pcretest.c (this was a PCRE
|
||||||
|
bug, fixed in subsequent PCRE releases).
|
||||||
|
PH/54 Applied Robert Bannocks' patch to avoid a problem with references that
|
||||||
|
arises when using the Solaris LDAP libraries (but not with OpenLDAP).
|
||||||
|
PH/55 Check for a ridiculously long file name in exim_dbmbuild.
|
||||||
|
- build with AUTH_DOVECOT and LOOKUP_NIS
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 23 15:39:15 CEST 2006 - poeml@suse.de
|
Mon Oct 23 15:39:15 CEST 2006 - poeml@suse.de
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user