| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: eximstats-html | Distribution: openSUSE 11.2 |
| Version: 4.69 | Vendor: openSUSE |
| Release: 72.8.1 | Build date: Mon Feb 7 18:15:33 2011 |
| Group: Productivity/Networking/Email/Servers | Build host: build15 |
| Size: 900 | Source RPM: exim-4.69-72.8.1.src.rpm |
| Packager: http://bugs.opensuse.org | |
| Url: http://www.exim.org/ | |
| Summary: Create HTML reports of exim logs | |
If this package is installed alongside the exim MTA, and you enable
EXIM_REPORT_WEEKLY_HTML in /etc/sysconfig/exim, logrotate/cron will
create HTML reports in /srv/www/eximstats.
You can edit /etc/apache2/conf.d/eximstats.conf to configure your
webserver for the reports.
The script /usr/sbin/eximstats-html-update.py can create the reports
for log files that were rotated in the past. (You would only run this
once, if at all. The rest is done by logrotate / cron.)
Authors:
--------
Philip Hazel <ph10@cus.cam.ac.uk>
GPLv2+
* Fri Feb 04 2011 lars@samba.org
- Check return values of setgid/setuid; CVE-2011-0017; (bnc#668599).
* Fri Dec 10 2010 lars@samba.org
- Fix memory corruption in string_format code for pre-11.3 systems;
CVE-2010-4344; (beo#787); (bnc#658731).
- Fix remote root vulnerability; CVE-2010-4345; (bnc#658731).
* Mon Jul 12 2010 dmueller@suse.de
- fix two (minor) security issues (bnc#612549):
* CVE-2010-2023
* CVE-2010-2024
* Tue Jun 09 2009 poeml@suse.de
- silence some rpmlint warnings, by removing executable permissions
from utilities packaged under documentation.
- in the exim-mysql package, remove the versioned Provides, because
rpmlint doesn't like it at all.
* Wed Oct 29 2008 poeml@suse.de
- add Required-Stop to init script, as required by LSB.
* Wed Aug 20 2008 poeml@suse.de
- also add "spamd postgresql mysql" to should-start and should-stop
in the LSB headers of /etc/init.d/exim
* Mon Aug 18 2008 poeml@suse.de
- fix init script LSB headers -- Should-Stop added
* Sun Jun 15 2008 poeml@suse.de
- fix logic of decision (in logrotate snippet) whether to send the
weekly reports
* Fri Jan 25 2008 meissner@suse.de
- fixed an array overflow spotted by gcc4.3.
* Thu Jan 10 2008 poeml@suse.de
- update to 4.69, which is mainly a bug fix release (although there
is also preliminary DKIM support available if compiled with
appropriate flags, which we don't do). The major change is an
update to the embedded PCRE library in response to security
issues, which are not relevant here, since we link against the
system pcre library, assuming that it has been fixed already.
TK/01 Add preliminary DKIM support. Currently requires a forked version of
ALT-N's libdkim that I have put here:
http://duncanthrax.net/exim-experimental/
Note to Michael Haardt: I had to rename some vars in sieve.c. They
were called 'true' and it seems that C99 defines that as a reserved
keyword to be used with 'bool' variable types. That means you could
not include C99-style headers which use bools without triggering
build errors in sieve.c.
NM/01 Bugzilla 592: --help option is handled incorrectly if exim is invoked
as mailq or other aliases. Changed the --help handling significantly
to do whats expected. exim_usage() emits usage/help information.
SC/01 Added the -bylocaldomain option to eximstats.
NM/02 Bugzilla 619: Defended against bad data coming back from gethostbyaddr
NM/03 Bugzilla 613: Documentation fix for acl_not_smtp
NM/04 Bugzilla 628: PCRE update to 7.4 (work done by John Hall)
* Thu Sep 27 2007 poeml@suse.de
- add #include <abstractions/consoles> to apparmor profile, to
allow for interactive usage (mailq, exim -M, ...)
* Thu Aug 30 2007 poeml@suse.de
- update to 4.68
PH/01 Another patch from the Sieve maintainer.
PH/02 When an IPv6 address is converted to a string for single-key lookup
in an address list (e.g. for an item such as "net24-dbm;/net/works"),
dots are used instead of colons so that keys in lsearch files need not
contain colons. This was done some time before quoting was made available
in lsearch files. However, iplsearch files do require colons in IPv6 keys
(notated using the quote facility) so as to distinguish them from IPv4
keys. This meant that lookups for IP addresses in host lists did not work
for iplsearch lookups.
This has been fixed by arranging for IPv6 addresses to be expressed with
colons if the lookup type is iplsearch. This is not incompatible, because
previously such lookups could never work.
The situation is now rather anomolous, since one *can* have colons in
ordinary lsearch keys. However, making the change in all cases is
incompatible and would probably break a number of configurations.
TK/01 Change PRVS address formatting scheme to reflect latests BATV draft
version.
MH/01 The "spam" ACL condition code contained a sscanf() call with a %s
conversion specification without a maximum field width, thereby enabling
a rogue spamd server to cause a buffer overflow. While nobody in their
right mind would setup Exim to query an untrusted spamd server, an
attacker that gains access to a server running spamd could potentially
exploit this vulnerability to run arbitrary code as the Exim user.
TK/02 Bugzilla 502: Apply patch to make the SPF-Received: header use
$primary_hostname instead of what libspf2 thinks the hosts name is.
MH/02 The dsearch lookup now uses lstat(2) instead of stat(2) to look for
a directory entry by the name of the lookup key. Previously, if a
symlink pointed to a non-existing file or a file in a directory that
Exim lacked permissions to read, a lookup for a key matching that
symlink would fail. Now it is enough that a matching directory entry
exists, symlink or not. (Bugzilla 503.)
PH/03 The body_linecount and body_zerocount variables are now exported in the
local_scan API.
PH/04 Added the $dnslist_matched variable.
PH/05 Unset $tls_cipher and $tls_peerdn before making a connection as a client.
This means they are set thereafter only if the connection becomes
encrypted.
PH/06 Added the client_condition to authenticators so that some can be skipped
by clients under certain conditions.
PH/07 The error message for a badly-placed control=no_multiline_responses left
"_responses" off the end of the name.
PH/08 Added -Mvc to output a copy of a message in RFC 2822 format.
PH/09 Tidied the code for creating ratelimiting keys, creating them explicitly
(without spaces) instead of just copying the configuration text.
PH/10 Added the /noupdate option to the ratelimit ACL condition.
PH/11 Added $max_received_linelength.
PH/12 Added +ignore_defer and +include_defer to host lists.
PH/13 Installed PCRE version 7.2. This needed some changes because of the new
way in which PCRE > 7.0 is built.
PH/14 Implemented queue_only_load_latch.
PH/15 Removed an incorrect (int) cast when reading the value of SIZE in a
MAIL command. The effect was to mangle the value on 64-bit systems.
PH/16 Another patch from the Sieve maintainer.
PH/17 Added the NOTQUIT ACL, based on a patch from Ted Cooper.
PH/18 If a system quota error occurred while trying to create the file for
a maildir delivery, the message "Mailbox is full" was not appended to the
bounce if the delivery eventually timed out. Change 4.67/27 below applied
only to a quota excession during the actual writing of the file.
PH/19 It seems that peer DN values may contain newlines (and other non-printing
characters?) which causes problems in log lines. The DN values are now
passed through string_printing() before being added to log lines.
PH/20 Added the "servers=" facility to MySQL and PostgreSQL lookups. (Oracle
and InterBase are left for another time.)
PH/21 Added message_body_newlines option.
PH/22 Guard against possible overflow in moan_check_errorcopy().
PH/23 POSIX allows open() to be a macro; guard against that.
PH/24 If the recipient of an error message contained an @ in the local part
(suitably quoted, of course), incorrect values were put in $domain and
$local_part during the evaluation of errors_copy.
* Fri Aug 24 2007 poeml@suse.de
- "Novell apparmor" doesn't own /etc/apparmor and
/etc/apparmor/profiles... fix build in autobuild
* Thu Aug 23 2007 poeml@suse.de
- do not install apparmor profile by default [#285727]
* Fri Jul 13 2007 poeml@suse.de
- use the LSB equivalent Should-Start instead of
X-UnitedLinux-Should-Start [#285553]
* Fri Jul 13 2007 poeml@suse.de
- init script: add amavis to Should-Start [#285553]
* Thu May 31 2007 poeml@suse.de
- improve apparmor profile: use abstractions/user-mail; allow
procmail and cyrus deliver (assuming that their profiles are in
effect as well)
* Thu May 24 2007 poeml@suse.de
- add apparmor profile, active in "complain" mode once installed.
Use logprof to check for needed adjustments. Use "enforce
/usr/sbin/exim" to put the profile into effect.
- remove support for building on and updating from SuSE Linux 7.3
and older
* Tue Apr 17 2007 poeml@suse.de
- update to 4.67
MH/01 Fix for bug #448, segfault in Dovecot authenticator when interface_address
is unset (happens when testing with -bh and -oMi isn't used). Thanks to
Jan Srzednicki.
PH/01 Added a new log selector smtp_no_mail, to log SMTP sessions that do not
issue a MAIL command.
PH/02 In an ACL statement such as
deny dnslists = X!=127.0.0.2 : X=127.0.0.2
if a client was not listed at all, or was listed with a value other than
127.0.0.2, in the X list, but was listed with 127.0.0.2 in the Y list,
the condition was not true (as it should be), so access was not denied.
The bug was that the ! inversion was incorrectly passed on to the second
item. This has been fixed.
PH/03 Added additional dnslists conditions == and =& which are different from
= and & when the dns lookup returns more than one IP address.
PH/04 Added gnutls_require_{kx,mac,protocols} to give more control over the
cipher suites used by GnuTLS. These options are ignored by OpenSSL.
PH/05 After discussion on the list, added a compile time option ENABLE_DISABLE_
FSYNC, which compiles an option called disable_fsync that allows for
bypassing fsync(). The documentation is heavily laced with warnings.
SC/01 Updated eximstats to collate all SpamAssassin rejects into one bucket.
PH/06 Some tidies to the infrastructure of the Test Suite that is concerned
with the auxiliary C programs that it uses: (1) Arrange for BIND_8_COMPAT
to be defined when compiling on OSX (Darwin); (2) Tidies to the Makefile,
including adding "make clean"; (3) Added -fPIC when compiling the test
dynamically loaded module, to get rid of a warning.
MH/02 Fix for bug #451, causing paniclog entries to be written if a bounce
message fails, move_frozen_messages = true and ignore_bounce_errors_after
= 0s. The bug is otherwise harmless.
PH/07 There was a bug in the dovecot authenticator such that the value of
$auth1 could be overwritten, and so not correctly preserved, after a
successful authentication. This usually meant that the value preserved by
the server_setid option was incorrect.
PH/08 Added $smtp_count_at_connection_start, deliberately with a long name.
PH/09 Installed PCRE release 7.0.
PH/10 The acl_not_smtp_start ACL was, contrary to the documentation, not being
run for batched SMTP input. It is now run at the start of every message
in the batch. While fixing this I discovered that the process information
(output by running exiwhat) was not always getting set for -bs and -bS
input. This is fixed, and it now also says "batched" for BSMTP.
PH/11 Added control=no_pipelining.
PH/12 Added $sending_ip_address and $sending_port (mostly Magnus Holmgren's
patch, slightly modified), and move the expansion of helo_data till after
the connection is made in the smtp transport (so it can use these
values).
PH/13 Added ${rfc2047d: to decoded RFC 2047 strings.
PH/14 Added log_selector = +pid.
PH/15 Flush SMTP output before delaying, unless control=no_delay_flush is set.
PH/16 Add ${if forany and ${if forall.
PH/17 Added dsn_from option to vary the From: line in DSNs.
PH/18 Flush SMTP output before performing a callout, unless control =
no_callout_flush is set.
PH/19 Change 4.64/PH/36 introduced a bug: when address_retry_include_sender
was true (the default) a successful delivery failed to delete the retry
item, thus causing premature timeout of the address. The bug is now
fixed.
PH/20 Added hosts_avoid_pipelining to the smtp transport.
PH/21 Long custom messages for fakedefer and fakereject are now split up
into multiline reponses in the same way that messages for "deny" and
other ACL rejections are.
PH/22 Applied Jori Hamalainen's speed-up changes and typo fixes to exigrep,
with slight modification.
PH/23 Applied sieve patches from the maintainer "tracking the latest notify
draft, changing the syntax and factoring some duplicate code".
PH/24 When the log selector "outgoing_port" was set, the port was shown as -1
for deliveries of the second and subsequent messages over the same SMTP
connection.
PH/25 Applied Magnus Holmgren's patch for ${addresses, ${map, ${filter, and
${reduce, with only minor "tidies".
SC/02 Applied Daniel Tiefnig's patch to improve the '($parent) =' pattern match.
PH/26 Added a "continue" ACL modifier that does nothing, for the benefit of its
expansion side effects.
PH/27 When a message times out after an over-quota error from an Exim-imposed
quota, the bounce message says "mailbox is full". This message was not
being given when it was a system quota that was exceeded. It now should
be the same.
MH/03 Made $recipients available in local_scan(). local_scan() already has
better access to the recipient list through recipients_list[], but
$recipients can be useful in postmaster-provided expansion strings.
PH/28 The $smtp_command and $smtp_command_argument variables were not correct
in the case of a MAIL command with additional options following the
address, for example: MAIL FROM:<foo@bar> SIZE=1234. The option settings
were accidentally chopped off.
PH/29 SMTP synchronization checks are implemented when a command is read -
there is a check that no more input is waiting when there shouldn't be
any. However, for some commands, a delay in an ACL can mean that it is
some time before the response is written. In this time, more input might
arrive, invalidly. So now there are extra checks after an ACL has run for
HELO/EHLO and after the predata ACL, and likewise for MAIL and RCPT when
pipelining has not been advertised.
PH/30 MH's patch to allow iscntrl() characters to be list separators.
PH/31 Unlike :fail:, a custom message specified with :defer: was not being
returned in the SMTP response when smtp_return_error_details was false.
This has been fixed.
PH/32 Change the Dovecot authenticator to use read() and write() on the socket
instead of the C I/O that was originally supplied, because problems were
reported on Solaris.
PH/33 Compile failed with OpenSSL 0.9.8e. This was due to a coding error in
Exim which did not show up earlier: it was assuming that a call to
SSL_CTX_set_info_callback() might give an error value. In fact, there is
no error. In previous releases of OpenSSL, SSL_CTX_set_info_callback()
was a macro that became an assignment, so it seemed to work. This has
changed to a proper function call with a void return, hence the compile
error. Exim's code has been fixed.
PH/34 Change HDA_SIZE in oracle.c from 256 to 512. This is needed for 64-bit
cpus.
PH/35 Applied a patch from the Sieve maintainer which fixes a bug in "notify".
PH/36 Applied John Jetmore's patch to add -v functionality to exigrep.
PH/37 If a message is not accepted after it has had an id assigned (e.g.
because it turns out to be too big or there is a timeout) there is no
"Completed" line in the log. When some messages of this type were
selected by exigrep, they were listed as "not completed". Others were
picked up by some special patterns. I have improved the selection
criteria to be more general.
PH/38 The host_find_failed option in the manualroute router can now be set
to "ignore", to completely ignore a host whose IP address cannot be
found. If all hosts are ignored, the behaviour is controlled by the new
host_all_ignored option.
PH/39 In a list of hosts for manualroute, if one item (either because of multi-
homing or because of multiple MX records with /mx) generated more than
one IP address, and the following item turned out to be the local host,
all the secondary addresses of the first item were incorrectly removed
from the list, along with the local host and any following hosts (which
is what is supposed to happen).
PH/40 When Exim receives a message, it writes the login name, uid, and gid of
whoever called Exim into the -H file. In the case of the daemon it was
behaving confusingly. When first started, it used values for whoever
started the daemon, but after a SIGHUP it used the Exim user (because it
calls itself on a restart). I have changed the code so that it now always
uses the Exim user.
PH/41 (Following a suggestion from Tony Finch) If all the RCPT commands in a
message are rejected with the same error (e.g. no authentication or bad
sender address), and a DATA command is nevertheless sent (as can happen
with PIPELINING or a stupid MUA), the error message that was given to the
RCPT commands is included in the rejection of the DATA command. This is
intended to be helpful for MUAs that show only the final error to their
users.
PH/42 Another patch from the Sieve maintainer.
SC/02 Eximstats - Differentiate between permanent and temporary rejects.
Eximstats - Fixed some broken HTML links and added missing column headers
(Jez Hancock).
Eximstats - Fixed Grand Total Summary Domains, Edomains, and Email
columns for Rejects, Temp Rejects, Ham, and Spam rows.
SC/03 Eximstats - V1.58 Fix to get <> and blackhole to show in edomain tables.
PH/43 Yet another patch from the Sieve maintainer.
PH/44 I found a way to check for a TCP/IP connection going away before sending
the response to the final '.' that terminates a message, but only in the
case where the client has not sent further data following the '.'
(unfortunately, this is allowed). However, in many cases there won't be
any further data because there won't be any more messages to send. A call
to select() can be used: if it shows that the input is "ready", there is
either input waiting, or the socket has been closed. An attempt to read
the next input character can distinguish the two cases. Previously, Exim
would have sent an OK response which the client would never have see.
This could lead to message repetition. This fix should cure that, at
least in a lot of common cases.
PH/45 Do not advertise STARTTLS in response to HELP unless it would be
advertised in response to EHLO.
* Fri Mar 09 2007 poeml@suse.de
- build fix for openssl-0.9.8e: SSL_CTX_set_info_callback is now a
function with void return
- sync buildservice package with autobuild
* Thu Jan 25 2007 sndirsch@suse.de
- move from /usr/X11R6 to /usr
* Tue Jan 09 2007 poeml@suse.de
- update to 4.66
PH/01 Two more bugs that were introduced by 4.64/PH/07, in addition to the one
fixed by 4.65/MH/01 (is this a record?) are fixed:
(i) An empty string was always treated as zero by the numeric comparison
operators. This behaviour has been restored.
(ii) It is documented that the numeric comparison operators always treat
their arguments as decimal numbers. This was broken in that numbers
starting with 0 were being interpreted as octal.
While fixing these problems I realized that there was another issue that
hadn't been noticed. Values of message_size_limit (both the global option
and the transport option) were treated as octal if they started with 0.
The documentation was vague. These values are now always treated as
decimal, and I will make that clear in the documentation.
* Tue Jan 02 2007 poeml@suse.de
- update to 4.65
TK/01 Disable default definition of HAVE_LINUX_SENDFILE. Clashes with
Linux large file support (_FILE_OFFSET_BITS=64) on older glibc
versions. (#438)
MH/01 Don't check that the operands of numeric comparison operators are
integers when their expansion is in "skipping" mode (fixes bug
introduced by 4.64-PH/07).
PH/01 If a system filter or a router generates more than SHRT_MAX (32767)
child addresses, Exim now panics and dies. Previously, because the count
is held in a short int, deliveries were likely to be lost. As such a
large number of recipients for a single message is ridiculous
(performance will be very, very poor), I have chosen to impose a limit
rather than extend the field.
* Wed Dec 20 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 2006 poeml@suse.de
- define SYSLOG_LOG_PID in src/EDITME, so the process id is
included when logging via syslog. Pointed out by Florian Laws.
* Fri Oct 20 2006 lmuelle@suse.de
- add sendmail to the Provides tag in the init script
* Fri Aug 04 2006 poeml@suse.de
- add support for building with mysql lookup support, by defining
%build_with_mysql at the top of the spec file [#188586]
- don't use %name macro in %setup therefore (so another spec file
can have a different Name tag)
- remove stray bzcat %{S:30} line
* Thu Aug 03 2006 poeml@suse.de
- update to 4.63
* Use a glob alias rather than an array ref in eximstats generated
parser. This improves both readability and performance.
* Collect SpamAssassin and rejection statistics in eximstats.
Don't display local sender or destination tables in eximstats unless
there is data to show.
Added average volumes into the eximstats top table text output.
* Collect data on the number of addresses (recipients) as well
as the number of messages in eximstats.
* Correct an error in the documentation for the redirect router. Exim
does (usually) call initgroups() when daemonizing.
* Call initgroups() when dropping privilege in exim.c, so that Exim runs
with consistent privilege compared to when running as a daemon.
* Note in the spec that $authenticated_id is not set for local
submissions from trusted users.
* The ratelimit per_rcpt option now works correctly in acl_not_smtp.
Thanks to Dean Brooks <dean@iglou.com> for the patch.
* Make it easier to get SMTP authentication and TLS/SSL support working
by adding some example configuration directives to the default
configuration file. A little bit of work is required to uncomment the
directives and define how usernames and passwords are checked, but
there is now a framework to start from.
* Added #define LDAP_DEPRECATED 1 to ldap.c because some of the "old"
functions that Exim currently uses aren't defined in ldap.h for OpenLDAP
without this. I don't know how relevant this is to other LDAP libraries.
* Add the verb name to the "unknown ACL verb" error.
* Magnus Holmgren's patch for filter_prepend_home.
* Fixed Bugzilla #101: macro definition between ACLs doesn't work.
* Applied Magnus Holmgren's patch to fix Bugzilla #98: transport's home
directory not expanded when it should be if an expanded home directory
was set for the address (which is overridden by the transport).
* Applied Alex Kiernan's patch to fix Bugzilla #99: a problem with
libradius.
* Added acl_not_smtp_start, based on Johannes Berg's patch, and set the
bit to forbid control=suppress_local_fixups in the acl_not_smtp ACL,
because it is too late at that time, and has no effect.
* Changed ${quote_pgsql to quote ' as '' instead of \' because of a
security issue with \' (bugzilla #107). I could not use the
PQescapeStringConn() function, because it needs a PGconn value as one of
its arguments.
* When testing addresses using -bt, indicate those final addresses that
are duplicates that would not cause an additional delivery. At least one
person was confused, thinking that -bt output corresponded to deliveries.
(Suppressing duplicates isn't a good idea as you lose the information
about possibly different redirections that led to the duplicates.)
* Applied patch from Erik to use select() instead of poll() in spam.c on
systems where poll() doesn't work, in particular OS X.
* Added more information to debugging output for retry time not reached.
* Applied patch from Arkadiusz Miskiewicz to apply a timeout to read
operations in malware.c.
* Applied patch from Magnus Holmgren to include the "h" tag in Domain Keys
signatures.
* If write_rejectlog was set false when logging was sent to syslog with
syslog_duplication set false, log lines that would normally be written
both the the main log and to the reject log were not written to syslog at
all.
* In the default configuration, change the use of "message" in ACL warn
statements to "add_header".
* Diagnose a filter syntax error for "seen", "unseen", or "noerror" if not
not followed by a command (e.g. "seen endif").
* Recognize SMTP codes at the start of "message" in ACLs and after :fail:
and :defer: in a redirect router. Add forbid_smtp_code to suppress the
latter.
* Added extra conditions to the default value of delay_warning_condition
so that it is now:
${if or { \
{ !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} } \
{ match{$h_precedence:}{(?i)bulk|list|junk} } \
{ match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} } \
}{no}{yes}}
The Auto-Submitted: and various List- headers are standardised, whereas I
don't think Precedence: ever was.
* Refactored debugging code in route_finduser() to show more information,
in particular, the error code if getpwnam() issues one.
* Added PQsetClientEncoding(conn, "SQL_ASCII") to the pgsql code module.
This is apparently needed in addition to the - change above to avoid
any possible encoding problems.
* Perl can change the locale. Exim was resetting it after a ${perl call,
but not after initializing Perl.
* Added a call to PQsetNoticeProcessor() to catch pgsql "notices" and
output them only if debugging. By default they are written stderr,
apparently, which is not desirable.
* Added Alain Williams' LDAP patch to support setting REFERRALS=off on
queries.
* exipick: added --reverse (and -R synonym), --random, --size, --sort and
- -not options
* exipick: rewrote --help documentation to hopefully make more clear.
* Made -oMaa and -oMt work with -bh and -bs to pretend the connection is
authenticated or an ident call has been made. Suppress the default
values for $authenticated_id and $authenticated_sender (but permit -oMai
and -oMas) when testing with -bh.
* Re-jigged the order of the tests in the default configuration so that the
tests for valid domains and recipients precede the DNS black list and CSA
tests, on the grounds that those ones are more expensive.
* Exim was not testing for a space following SMTP commands such as EHLO
that require one. Thus, EHLORHUBARB was interpreted as a valid command.
This bug exists in every version of Exim that I still have, right back to
0.12.
* (n)wildlsearch lookups are documented as being done case-insensitively.
However, an attempt to turn on case-sensitivity in a regex key by
including (?-i) didn't work because the subject string was already
lowercased, and the effects were non-intuitive. It turns out that a
one-line patch can be used to allow (?-i) to work as expected.
- fix build requires for older SUSE distributions
/etc/apache2 /etc/apache2/conf.d /etc/apache2/conf.d/eximstats.conf /srv/www/eximstats /usr/sbin/eximstats-html-update.py
Generated by rpm2html 1.8.1
Fabrice Bellet, Mon May 13 04:42:18 2013