exim.git
3 years agoCheck for proper output separator in expanding ${addresses:STRING} (Closes 2171)
Heiko Schlittermann (HS12-RIPE) [Wed, 4 Oct 2017 20:25:45 +0000 (22:25 +0200)]
Check for proper output separator in expanding ${addresses:STRING}    (Closes 2171)

Better yet would be to force setting the output separator literally,
and not after expansion of the STRING. But this would be an incompatible
change.

3 years agoBetter handling of printing NULL pointers
Jeremy Harris [Fri, 6 Oct 2017 17:11:22 +0000 (18:11 +0100)]
Better handling of printing NULL pointers

3 years agotestsuite output changes
Jeremy Harris [Thu, 5 Oct 2017 21:41:03 +0000 (22:41 +0100)]
testsuite output changes

3 years agoFix debug output for NULL pointers on FreeBSD.
Jeremy Harris [Thu, 5 Oct 2017 20:54:28 +0000 (21:54 +0100)]
Fix debug output for NULL pointers on FreeBSD.

The testsuite had failures, mostly in DB opens finding no existing file,
where debug output to stderr showed "0xAAAAAAAA" rather than "(nil)".
Code it explicitly, at least in %p handling, rather than relying on sprintf() bevahiour.

3 years agoTestsuite: for TFO testcases manipulate the system state
Jeremy Harris [Sun, 1 Oct 2017 20:45:11 +0000 (21:45 +0100)]
Testsuite: for TFO testcases manipulate the system state

Linux-centric; will need elaboration for other platforms

3 years agoTFO: better detection of client fast-open connections (again)
Jeremy Harris [Sun, 1 Oct 2017 17:11:36 +0000 (18:11 +0100)]
TFO: better detection of client fast-open connections (again)

4 years agoTestsuite: Ignore optional-config output change
Jeremy Harris [Mon, 25 Sep 2017 17:53:12 +0000 (18:53 +0100)]
Testsuite: Ignore optional-config output change

4 years agoDKIM: support specifying alternate-identity tag for signing. Bug 2170
Jeremy Harris [Mon, 25 Sep 2017 15:36:47 +0000 (16:36 +0100)]
DKIM: support specifying alternate-identity tag for signing.  Bug 2170

4 years agoTFO: early-data for ClamAV and for readsocket expansion
Jeremy Harris [Tue, 19 Sep 2017 20:57:30 +0000 (21:57 +0100)]
TFO: early-data for ClamAV and for readsocket expansion

4 years agoAvoid repeated string-copy building command-string for rspamd
Jeremy Harris [Tue, 19 Sep 2017 20:45:10 +0000 (21:45 +0100)]
Avoid repeated string-copy building command-string for rspamd

4 years agoTFO: better detection of client fast-open connections
Jeremy Harris [Tue, 19 Sep 2017 14:10:21 +0000 (15:10 +0100)]
TFO: better detection of client fast-open connections

4 years agoFix testsuite build for non-TFO platforms
Jeremy Harris [Tue, 19 Sep 2017 12:24:43 +0000 (13:24 +0100)]
Fix testsuite build for non-TFO platforms

4 years agoTFO: early-data for client outbound via socks5 proxy
Jeremy Harris [Mon, 18 Sep 2017 10:50:07 +0000 (11:50 +0100)]
TFO: early-data for client outbound via socks5 proxy

4 years agoexipick: add -C|--config option
Heiko Schlittermann (HS12-RIPE) [Mon, 18 Sep 2017 20:56:36 +0000 (22:56 +0200)]
exipick: add -C|--config option

This fits better to
   echo test | exim -C /tmp/test.conf -v test@example.com
   exipick -C /tmp/test.conf

4 years agoSOCKS: fix unitialized-pointer
Jeremy Harris [Mon, 18 Sep 2017 16:47:52 +0000 (17:47 +0100)]
SOCKS: fix unitialized-pointer

4 years agotidying
Jeremy Harris [Sat, 16 Sep 2017 22:43:54 +0000 (23:43 +0100)]
tidying

4 years agoFix build on FreeBSD
Jeremy Harris [Sat, 16 Sep 2017 17:05:57 +0000 (18:05 +0100)]
Fix build on FreeBSD

4 years agoFix function prototype
Jeremy Harris [Sat, 16 Sep 2017 16:32:37 +0000 (17:32 +0100)]
Fix function prototype

4 years agoSupport parallel-build for the buildtin macros
Jeremy Harris [Sat, 16 Sep 2017 16:11:20 +0000 (17:11 +0100)]
Support parallel-build for the buildtin macros

4 years agotidying
Jeremy Harris [Sat, 16 Sep 2017 15:03:32 +0000 (16:03 +0100)]
tidying

4 years agoProvide readn() as a wrapper around read()
Heiko Schlittermann (HS12-RIPE) [Sat, 16 Sep 2017 13:13:15 +0000 (15:13 +0200)]
Provide readn() as a wrapper around read()

This readn() reads all the data requested, even if the
writer sends it in smaller chunks.

4 years agoUse writev(2) when sending delivery status to the parent
Heiko Schlittermann (HS12-RIPE) [Thu, 29 Jun 2017 18:13:40 +0000 (20:13 +0200)]
Use writev(2) when sending delivery status to the parent

4 years agoDo not use O_NONBLOCK for reading the delivery transport pipe
Heiko Schlittermann (HS12-RIPE) [Wed, 5 Jul 2017 06:47:56 +0000 (08:47 +0200)]
Do not use O_NONBLOCK for reading the delivery transport pipe

4 years agoTidy build under pre-v3 GnuTLS
Jeremy Harris [Tue, 12 Sep 2017 19:27:19 +0000 (20:27 +0100)]
Tidy build under pre-v3 GnuTLS

4 years agoDKIM: support multiple signing, by selector
Jeremy Harris [Tue, 12 Sep 2017 16:49:58 +0000 (17:49 +0100)]
DKIM: support multiple signing, by selector

4 years agoDKIM: support multiple hash methods
Jeremy Harris [Tue, 12 Sep 2017 16:37:48 +0000 (17:37 +0100)]
DKIM: support multiple hash methods

4 years agoDKIM: rename internal signing api
Jeremy Harris [Fri, 19 May 2017 12:32:53 +0000 (13:32 +0100)]
DKIM: rename internal signing api

4 years agoDKIM: fix signing bug induced by total size of parameter text
Jeremy Harris [Sun, 10 Sep 2017 19:23:21 +0000 (20:23 +0100)]
DKIM: fix signing bug induced by total size of parameter text
causing header-line fold between "b=" and terminating ";" of
pseudo-header.

4 years agospecified-initialisers
Jeremy Harris [Fri, 8 Sep 2017 18:24:40 +0000 (19:24 +0100)]
specified-initialisers

4 years agoFix sieve QP regression from Coverity cleanups
Phil Pennock [Tue, 5 Sep 2017 00:24:56 +0000 (20:24 -0400)]
Fix sieve QP regression from Coverity cleanups

Fixes: 2161

4 years agoLogging: restrict TFO client-side to Linux
Jeremy Harris [Sat, 2 Sep 2017 15:16:43 +0000 (16:16 +0100)]
Logging: restrict TFO client-side to Linux

The detection method depends on a getsockopt struct member apparently
not supported by FreeBSD (at least).  Other platforms status unknown.

4 years agoLogging: TCP Fast Open
Jeremy Harris [Wed, 30 Aug 2017 22:52:40 +0000 (23:52 +0100)]
Logging: TCP Fast Open

4 years agoFix address ignore-errors flag bit initialisation and propagation
Jeremy Harris [Mon, 21 Aug 2017 19:46:52 +0000 (20:46 +0100)]
Fix address ignore-errors flag bit initialisation and propagation

Broken-by: 7eb0e5d2b8
4 years agoFixed compilation with mariadb-10.2
Jaroslav Škarvada [Fri, 18 Aug 2017 13:57:19 +0000 (15:57 +0200)]
Fixed compilation with mariadb-10.2

https://bugzilla.redhat.com/show_bug.cgi?id=1467312

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
Exim-merge-changes: added ChangeLog item (Phil Pennock)

4 years agoUse bitfields for flags in the "addr" struct
Jeremy Harris [Sun, 20 Aug 2017 21:09:15 +0000 (22:09 +0100)]
Use bitfields for flags in the "addr" struct

4 years agoLogging: add elapsed-time element to unexpected-diconnection lines
Jeremy Harris [Sun, 20 Aug 2017 12:42:16 +0000 (13:42 +0100)]
Logging: add elapsed-time element to unexpected-diconnection lines

4 years agotidying
Jeremy Harris [Mon, 14 Aug 2017 14:04:24 +0000 (15:04 +0100)]
tidying

4 years agotidying
Jeremy Harris [Mon, 14 Aug 2017 12:35:22 +0000 (13:35 +0100)]
tidying

4 years agoFix EXPERIMENTAL_DMARC build
Jeremy Harris [Sun, 13 Aug 2017 20:36:25 +0000 (21:36 +0100)]
Fix EXPERIMENTAL_DMARC build

Broken-by: f2ed27cf5f
4 years agoFix non-TLS build
Jeremy Harris [Sun, 13 Aug 2017 14:16:08 +0000 (15:16 +0100)]
Fix non-TLS build

Broken-by: e5de01f091
4 years agoTypo
Jeremy Harris [Sun, 13 Aug 2017 14:12:27 +0000 (15:12 +0100)]
Typo

Broken-by: f2ed27cf5f
4 years agoDocument CVE assignment for Berkeley DB issue
Jeremy Harris [Sun, 13 Aug 2017 10:07:33 +0000 (11:07 +0100)]
Document CVE assignment for Berkeley DB issue

4 years agoCoding: use specified-initialisers
Jeremy Harris [Mon, 7 Aug 2017 14:33:14 +0000 (15:33 +0100)]
Coding: use specified-initialisers

4 years agoUse exim string facilities rather than custom parser for DKIM pubkey
Jeremy Harris [Wed, 9 Aug 2017 22:39:25 +0000 (23:39 +0100)]
Use exim string facilities rather than custom parser for DKIM pubkey

4 years agoDKIM: Enforce any "h" field present in the DNS publickey record. This can be set...
Jeremy Harris [Wed, 28 Jun 2017 14:25:12 +0000 (15:25 +0100)]
DKIM:  Enforce any "h" field present in the DNS publickey record.  This can be set to require specific
hash types, eg sha256, in signatues.  There is an IETF draft in discussion which deprecates sha1 so this
feature may start to be used.

4 years agoLogging: millisecond time on 'no MAIL' lines. Bug 2102
Jeremy Harris [Sun, 6 Aug 2017 14:44:13 +0000 (15:44 +0100)]
Logging: millisecond time on 'no MAIL' lines.  Bug 2102

4 years agotidying
Jeremy Harris [Sat, 5 Aug 2017 14:51:36 +0000 (15:51 +0100)]
tidying

4 years agotidying
Jeremy Harris [Sat, 5 Aug 2017 14:04:39 +0000 (15:04 +0100)]
tidying

4 years agoDebugging: millisecond timestamps. Bug 2102
Jeremy Harris [Sat, 5 Aug 2017 13:06:36 +0000 (14:06 +0100)]
Debugging: millisecond timestamps.  Bug 2102

4 years agoLogging: millisecond QT and DT. Bug 2102
Jeremy Harris [Fri, 4 Aug 2017 14:13:17 +0000 (15:13 +0100)]
Logging: millisecond QT and DT.  Bug 2102

4 years agoUse retval from sprintf while walking buffers
Jeremy Harris [Tue, 1 Aug 2017 20:49:04 +0000 (21:49 +0100)]
Use retval from sprintf while walking buffers

4 years agoTidying
Jeremy Harris [Sun, 16 Jul 2017 16:21:35 +0000 (17:21 +0100)]
Tidying

4 years agoLogging: millisecond timestamps. Bug 2102
Jeremy Harris [Sun, 30 Jul 2017 19:51:10 +0000 (20:51 +0100)]
Logging: millisecond timestamps.  Bug 2102

No change to QT logging yet as that will need a spool format update

4 years agoRetire historical build files from Makefile
Jeremy Harris [Sun, 30 Jul 2017 13:37:56 +0000 (14:37 +0100)]
Retire historical build files from Makefile

4 years agoRetire historical build files
Jeremy Harris [Sun, 30 Jul 2017 13:21:43 +0000 (14:21 +0100)]
Retire historical build files

4 years agoOn callout avoid SIZE every time but noncacheable rcpt main-verify. Bug 2151
Jeremy Harris [Sat, 22 Jul 2017 15:38:08 +0000 (16:38 +0100)]
On callout avoid SIZE every time but noncacheable rcpt main-verify.  Bug 2151

4 years agoDo not rely on linker identifying common strings
Jeremy Harris [Tue, 18 Jul 2017 22:29:54 +0000 (23:29 +0100)]
Do not rely on linker identifying common strings

4 years agoFix cache-cold random callout verify. Bug 2147
Jeremy Harris [Tue, 18 Jul 2017 22:10:33 +0000 (23:10 +0100)]
Fix cache-cold random callout verify.  Bug 2147

4 years agoOptimise scanning config for macros
Jeremy Harris [Sun, 16 Jul 2017 17:02:57 +0000 (18:02 +0100)]
Optimise scanning config for macros

4 years agoFix macro_predef build for auth_cyrus_sasl
Jeremy Harris [Sun, 16 Jul 2017 13:36:38 +0000 (14:36 +0100)]
Fix macro_predef build for auth_cyrus_sasl

4 years agoFix build for earlier version Berkeley DB
Jeremy Harris [Sun, 16 Jul 2017 12:52:57 +0000 (13:52 +0100)]
Fix build for earlier version Berkeley DB

4 years agotidying
Jeremy Harris [Sat, 15 Jul 2017 18:55:59 +0000 (19:55 +0100)]
tidying

4 years agoUse the BDB "environment" so that a database config file is not looked for. Bug...
Jeremy Harris [Wed, 5 Jul 2017 11:57:24 +0000 (12:57 +0100)]
Use the BDB "environment" so that a database config file is not looked for.  Bug 2141

4 years agoAdd directory name as new arg to EXIM_DBOPEN
Jeremy Harris [Tue, 11 Jul 2017 19:52:34 +0000 (20:52 +0100)]
Add directory name as new arg to EXIM_DBOPEN

4 years agoAdd $smtp_command_history variable
Jeremy Harris [Wed, 5 Jul 2017 13:30:05 +0000 (14:30 +0100)]
Add $smtp_command_history variable

4 years agotidying
Jeremy Harris [Sun, 9 Jul 2017 15:12:45 +0000 (16:12 +0100)]
tidying

4 years agoAvoid creating before-buffer pointer. Bug 2145
Jeremy Harris [Sun, 9 Jul 2017 13:29:31 +0000 (14:29 +0100)]
Avoid creating before-buffer pointer.  Bug 2145

Found by: ASAN / <ago@gentoo.org>

4 years agoPrebuild the data structure for builtin macros
Jeremy Harris [Sat, 8 Jul 2017 16:54:44 +0000 (17:54 +0100)]
Prebuild the data structure for builtin macros

4 years agoPrebuild the data structure for builtin macros
Jeremy Harris [Sat, 8 Jul 2017 12:24:38 +0000 (13:24 +0100)]
Prebuild the data structure for builtin macros

4 years agoSplit macro name storage out from macro definition struct
Jeremy Harris [Sat, 8 Jul 2017 12:59:49 +0000 (13:59 +0100)]
Split macro name storage out from macro definition struct

4 years agoexigrep: use less --quite-if-one-screen --no-init
Heiko Schlittermann (HS12-RIPE) [Tue, 4 Jul 2017 11:33:08 +0000 (13:33 +0200)]
exigrep: use less --quite-if-one-screen --no-init

4 years agoTransform string_append_listele{,_n}() to proper expanding-string triplet interface
Jeremy Harris [Sun, 2 Jul 2017 09:30:48 +0000 (10:30 +0100)]
Transform string_append_listele{,_n}() to proper expanding-string triplet interface
(but do always maintain a nul-term string result).  This avoids always copying the
previous list version, and should do fewer allocs too.

4 years agoConfigure the default opendmarc.tlds file in EDITME
Heiko Schlittermann (HS12-RIPE) [Fri, 30 Jun 2017 15:22:08 +0000 (17:22 +0200)]
Configure the default opendmarc.tlds file in EDITME

4 years agoBuild: set LC_ALL=C for the makefile configuration
Heiko Schlittermann (HS12-RIPE) [Thu, 29 Jun 2017 10:42:12 +0000 (12:42 +0200)]
Build: set LC_ALL=C for the makefile configuration

Otherwise Perl may complain about missing locales, which
in turn confuses the Configure-Makefile script when parsing
the output from Perl

4 years agotestsuite: don't break on '+' in trusted-config-list path
Heiko Schlittermann (HS12-RIPE) [Wed, 28 Jun 2017 21:42:17 +0000 (23:42 +0200)]
testsuite: don't break on '+' in trusted-config-list path

4 years agoUpdate Changelog about -p/-oMr
Heiko Schlittermann (HS12-RIPE) [Wed, 28 Jun 2017 08:45:51 +0000 (10:45 +0200)]
Update Changelog about -p/-oMr

4 years agoFix ChangeLog notice re manualroute option ordering
Phil Pennock [Tue, 27 Jun 2017 18:36:53 +0000 (14:36 -0400)]
Fix ChangeLog notice re manualroute option ordering

We do *NOT* permit options before hostnames.  It's always hostnames
before options.  It's _within_ the options that the use of a transport
name as an option name had been accidentally constrained to come last,
which was then fixed in commit 833c70bc.

I goofed in describing this.

4 years agoFix appendfile.c errmsg output that broke with d291c7
Heiko Schlittermann (HS12-RIPE) [Tue, 27 Jun 2017 15:35:20 +0000 (17:35 +0200)]
Fix appendfile.c errmsg output that broke with d291c7

4 years agoRepair manualroute transport name not-last option
Phil Pennock [Mon, 26 Jun 2017 22:39:29 +0000 (18:39 -0400)]
Repair manualroute transport name not-last option

Commit 55414b25b did const-ification surgery which removed the old
"temporarily drop a NUL in here" anti-pattern, but one of the
Ustrcmp->Ustrncmp conversions was missed, for transport-name comparison.

As a result, since Exim 4.85, we've had an undocumented
requirement-by-bug that the transport name be the last such option
given.  Restore old behaviour.

Still missing a test-case to deter regression.

4 years agoBail out if a configuration file starts with a byte order mark
Heiko Schlittermann (HS12-RIPE) [Sun, 25 Jun 2017 21:35:06 +0000 (23:35 +0200)]
Bail out if a configuration file starts with a byte order mark

4 years agoFix what d291c7670e4c370cdc4f631ea58f82c7f4f87823 broke. Closes 1115
Heiko Schlittermann (HS12-RIPE) [Sun, 25 Jun 2017 21:29:18 +0000 (23:29 +0200)]
Fix what d291c7670e4c370cdc4f631ea58f82c7f4f87823 broke. Closes 1115

4 years agoAdd quota/quota_filecount transport option modifier "no_check" Bug 1115
Heiko Schlittermann (HS12-RIPE) [Sun, 25 Jun 2017 20:54:08 +0000 (22:54 +0200)]
Add quota/quota_filecount transport option modifier "no_check" Bug 1115

This option modifier allows to ignore the quota limits, but update
the maildirsize file.

4 years agoDoc: check for w3m existence
Heiko Schlittermann (HS12-RIPE) [Sun, 25 Jun 2017 17:57:57 +0000 (19:57 +0200)]
Doc: check for w3m existence

w3m is called as non-last command in pipelines. A missing w3m
creates empty output and Make doesn't get it, because the last command
of the pipe (e.g. Tidytxt) doesn't return failure on empty input.

4 years agoWhen pipelining under TLS do not treat fd-readability as tls-readability
Jeremy Harris [Tue, 13 Jun 2017 18:01:00 +0000 (19:01 +0100)]
When pipelining under TLS do not treat fd-readability as tls-readability

4 years agoAdd compile-time checks on expanding-string function use
Jeremy Harris [Fri, 9 Jun 2017 00:20:07 +0000 (01:20 +0100)]
Add compile-time checks on expanding-string function use

4 years agoCleanup (prevent repeated use of -p/-oMr to avoid mem leak)
Heiko Schlittermann (HS12-RIPE) [Wed, 31 May 2017 21:08:56 +0000 (23:08 +0200)]
Cleanup (prevent repeated use of -p/-oMr to avoid mem leak)

4 years agoFix log line corruption for DKIM status
Heiko Schlittermann (HS12-RIPE) [Tue, 13 Jun 2017 15:36:44 +0000 (17:36 +0200)]
Fix log line corruption for DKIM status

4 years agoOn a continued-transport delivery, do not check the hostlist for mismatch in the
Jeremy Harris [Sun, 11 Jun 2017 19:58:21 +0000 (20:58 +0100)]
On a continued-transport delivery, do not check the hostlist for mismatch in the
transport dispatch level when the transport does hosts-override.  Instead do the
full trasport process call and let it decide on compatibility with the connection.

4 years agoIn tls-proxy process take case to close unused pipe ends, select also for exception...
Jeremy Harris [Sun, 11 Jun 2017 22:47:08 +0000 (23:47 +0100)]
In tls-proxy process take case to close unused pipe ends, select also for exception conditions on data fds

4 years agoTestsuite: testcase for continued-delivery with transport hosts_override
Jeremy Harris [Sun, 11 Jun 2017 20:03:21 +0000 (21:03 +0100)]
Testsuite: testcase for continued-delivery with transport hosts_override

4 years agoFix logging of delivery port for callout lazy-close, when port specified by router
Jeremy Harris [Fri, 2 Jun 2017 13:22:42 +0000 (14:22 +0100)]
Fix logging of delivery port for callout lazy-close, when port specified by router

4 years agoTestsuite: stabilize output sequence for 2x35/6
Jeremy Harris [Fri, 2 Jun 2017 10:58:28 +0000 (11:58 +0100)]
Testsuite: stabilize output sequence for 2x35/6

4 years agoDocs: tweak "sock" malware interface description
Jeremy Harris [Sat, 3 Jun 2017 15:51:05 +0000 (16:51 +0100)]
Docs: tweak "sock" malware interface description

4 years agoFix crash in transport, on second smtp-connect fail for a list of target hosts
Jeremy Harris [Sat, 3 Jun 2017 12:39:18 +0000 (13:39 +0100)]
Fix crash in transport, on second smtp-connect fail for a list of target hosts

Reported as the sequence:
  1MX: 554 on connect (banner)
  2MX: TCP conn timeout

4 years agoDocs: add missing dollarsign
Jeremy Harris [Fri, 2 Jun 2017 11:13:06 +0000 (12:13 +0100)]
Docs: add missing dollarsign

4 years agoTestsuite: stabilize output sequence for case 4530
Jeremy Harris [Wed, 31 May 2017 16:31:37 +0000 (17:31 +0100)]
Testsuite: stabilize output sequence for case 4530

4 years agoTestsuite: stabilize output sequence for case 0906
Jeremy Harris [Tue, 30 May 2017 22:43:09 +0000 (23:43 +0100)]
Testsuite: stabilize output sequence for case 0906

4 years agoMalware: make "sock" cmdline default usable. Bug 2111
Jeremy Harris [Mon, 29 May 2017 16:23:12 +0000 (17:23 +0100)]
Malware: make "sock" cmdline default usable.  Bug 2111

4 years agodoc: string2 not expanded, don't imply otherwise
Phil Pennock [Fri, 26 May 2017 20:41:42 +0000 (16:41 -0400)]
doc: string2 not expanded, don't imply otherwise

A simple reading which skips the later paragraph would mislead people;
this was remnant text from before the EXPAND_LISTMATCH_RHS changed the
default behaviour.

A couple of paragraphs later we contradicted this now-misleading
parenthetical, but that's not enough.  Nuke it.

4 years agotypo
Jeremy Harris [Thu, 25 May 2017 15:27:43 +0000 (16:27 +0100)]
typo