summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2017-10-28 21:33:24 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2017-10-28 21:33:24 +0100
commitc5db348c5e29e93e51389fa0079f829967c5da82 (patch)
tree0b876cbf4e1ae8dac81c63256ee233376940e2c8
parent1e0f06b3cfeb3c2453323453555d827c81456e1e (diff)
parentcd328be98eb5bdda73316eaf95d9d6a617c7df7d (diff)
Merge branch 'master' into 4.next
-rw-r--r--doc/doc-docbook/spec.xfpt35
-rw-r--r--doc/doc-txt/ChangeLog16
-rw-r--r--doc/doc-txt/NewStuff1
-rw-r--r--src/Makefile2
-rw-r--r--src/OS/Makefile-Base6
-rw-r--r--src/OS/os.c-Linux2
-rw-r--r--src/OS/os.h-FreeBSD4
-rw-r--r--src/OS/os.h-Linux3
-rw-r--r--src/OS/os.h-OpenBSD28
-rw-r--r--src/exim_monitor/em_globals.c2
-rw-r--r--src/exim_monitor/em_log.c2
-rw-r--r--src/exim_monitor/em_main.c2
-rw-r--r--src/exim_monitor/em_menu.c2
-rw-r--r--src/exim_monitor/em_queue.c2
-rw-r--r--src/exim_monitor/em_version.c2
-rwxr-xr-xsrc/scripts/Configure-Makefile2
-rwxr-xr-xsrc/scripts/MakeLinks2
-rwxr-xr-xsrc/scripts/reversion4
-rw-r--r--src/src/EDITME3
-rw-r--r--src/src/acl.c4
-rw-r--r--src/src/auths/call_pam.c2
-rw-r--r--src/src/auths/cram_md5.c2
-rw-r--r--src/src/auths/cyrus_sasl.c2
-rw-r--r--src/src/auths/dovecot.c2
-rw-r--r--src/src/auths/get_data.c2
-rw-r--r--src/src/auths/get_no64_data.c2
-rw-r--r--src/src/auths/gsasl_exim.c2
-rw-r--r--src/src/auths/heimdal_gssapi.c2
-rw-r--r--src/src/auths/md5.c2
-rw-r--r--src/src/auths/plaintext.c2
-rw-r--r--src/src/auths/spa.c2
-rw-r--r--src/src/auths/tls.c2
-rw-r--r--src/src/auths/xtextencode.c2
-rw-r--r--src/src/base64.c2
-rw-r--r--src/src/buildconfig.c32
-rw-r--r--src/src/config.h.defaults2
-rw-r--r--src/src/dane-openssl.c2
-rw-r--r--src/src/dbfn.c2
-rw-r--r--src/src/dbstuff.h10
-rw-r--r--src/src/dcc.c2
-rw-r--r--src/src/debug.c2
-rw-r--r--src/src/deliver.c142
-rw-r--r--src/src/dkim.c28
-rw-r--r--src/src/dkim.h2
-rw-r--r--src/src/dkim_transport.c18
-rw-r--r--src/src/dmarc.c31
-rw-r--r--src/src/drtables.c2
-rw-r--r--src/src/exigrep.src2
-rw-r--r--src/src/exim.c145
-rw-r--r--src/src/exim.h10
-rw-r--r--src/src/exim_dbmbuild.c2
-rw-r--r--src/src/exim_dbutil.c2
-rw-r--r--src/src/eximstats.src2
-rw-r--r--src/src/exipick.src7
-rw-r--r--src/src/expand.c43
-rw-r--r--src/src/filter.c4
-rw-r--r--src/src/functions.h7
-rw-r--r--src/src/hash.c4
-rw-r--r--src/src/hash.h2
-rw-r--r--src/src/host.c2
-rw-r--r--src/src/imap_utf7.c3
-rw-r--r--src/src/ip.c54
-rw-r--r--src/src/local_scan.h2
-rw-r--r--src/src/log.c8
-rw-r--r--src/src/lookups/dbmdb.c2
-rw-r--r--src/src/lookups/dnsdb.c2
-rw-r--r--src/src/lookups/ibase.c2
-rw-r--r--src/src/lookups/ldap.c2
-rw-r--r--src/src/lookups/lf_functions.h2
-rw-r--r--src/src/lookups/lf_quote.c2
-rw-r--r--src/src/lookups/lf_sqlperform.c4
-rw-r--r--src/src/lookups/lmdb.c2
-rw-r--r--src/src/lookups/lsearch.c2
-rw-r--r--src/src/lookups/mysql.c58
-rw-r--r--src/src/lookups/nisplus.c2
-rw-r--r--src/src/lookups/pgsql.c2
-rw-r--r--src/src/lookups/redis.c2
-rw-r--r--src/src/lookups/sqlite.c2
-rw-r--r--src/src/macro_predef.c25
-rw-r--r--src/src/macro_predef.h2
-rw-r--r--src/src/macros.h12
-rw-r--r--src/src/malware.c6
-rw-r--r--src/src/match.c2
-rw-r--r--src/src/mime.c2
-rw-r--r--src/src/moan.c4
-rw-r--r--src/src/mytypes.h2
-rw-r--r--src/src/os.c2
-rw-r--r--src/src/parse.c4
-rw-r--r--src/src/pdkim/Makefile1
-rw-r--r--src/src/pdkim/crypt_ver.h2
-rw-r--r--src/src/pdkim/pdkim.c8
-rw-r--r--src/src/pdkim/pdkim.h9
-rw-r--r--src/src/pdkim/pdkim_hash.h2
-rw-r--r--src/src/pdkim/signing.c2
-rw-r--r--src/src/pdkim/signing.h2
-rw-r--r--src/src/perl.c1
-rw-r--r--src/src/queue.c15
-rw-r--r--src/src/rda.c2
-rw-r--r--src/src/readconf.c44
-rw-r--r--src/src/receive.c13
-rw-r--r--src/src/regex.c2
-rw-r--r--src/src/retry.c2
-rw-r--r--src/src/rewrite.c4
-rw-r--r--src/src/rfc2047.c2
-rw-r--r--src/src/route.c2
-rw-r--r--src/src/routers/accept.c2
-rw-r--r--src/src/routers/dnslookup.c2
-rw-r--r--src/src/routers/ipliteral.c2
-rw-r--r--src/src/routers/iplookup.c2
-rw-r--r--src/src/routers/manualroute.c2
-rw-r--r--src/src/routers/queryprogram.c2
-rw-r--r--src/src/routers/redirect.c2
-rw-r--r--src/src/routers/rf_change_domain.c6
-rw-r--r--src/src/routers/rf_get_errors_address.c2
-rw-r--r--src/src/routers/rf_get_munge_headers.c2
-rw-r--r--src/src/routers/rf_queue_add.c2
-rw-r--r--src/src/sieve.c2
-rw-r--r--src/src/smtp_in.c22
-rw-r--r--src/src/smtp_out.c12
-rw-r--r--src/src/spam.c2
-rw-r--r--src/src/spf.c2
-rw-r--r--src/src/spool_in.c6
-rw-r--r--src/src/spool_mbox.c2
-rw-r--r--src/src/spool_out.c2
-rw-r--r--src/src/std-crypto.c1
-rw-r--r--src/src/store.c2
-rw-r--r--src/src/string.c20
-rw-r--r--src/src/structs.h2
-rw-r--r--src/src/tls-gnu.c2
-rw-r--r--src/src/tls-openssl.c2
-rw-r--r--src/src/tls.c2
-rw-r--r--src/src/tlscert-gnu.c2
-rw-r--r--src/src/tlscert-openssl.c6
-rw-r--r--src/src/tod.c2
-rw-r--r--src/src/transport.c4
-rw-r--r--src/src/transports/appendfile.c156
-rw-r--r--src/src/transports/appendfile.h2
-rw-r--r--src/src/transports/autoreply.c2
-rw-r--r--src/src/transports/lmtp.c2
-rw-r--r--src/src/transports/pipe.c2
-rw-r--r--src/src/transports/queuefile.c1
-rw-r--r--src/src/transports/smtp.c85
-rw-r--r--src/src/transports/smtp_socks.c4
-rw-r--r--src/src/transports/tf_maildir.c2
-rw-r--r--src/src/utf8.c2
-rw-r--r--src/src/verify.c31
-rw-r--r--src/src/version.c1
-rw-r--r--test/aux-fixed/2800.lmdb-mkdb-dump.py15
-rw-r--r--test/aux-fixed/2800.mdbbin12288 -> 0 bytes
-rw-r--r--test/aux-fixed/2800.mdb.src3
-rw-r--r--test/confs/20312
-rw-r--r--test/confs/20381
-rw-r--r--test/confs/21024
-rw-r--r--test/confs/21193
-rw-r--r--test/confs/21323
-rw-r--r--test/confs/21381
-rw-r--r--test/confs/45202
-rw-r--r--test/log/09012
-rw-r--r--test/log/20318
-rw-r--r--test/log/20381
-rw-r--r--test/log/21242
-rw-r--r--test/log/21381
-rw-r--r--test/log/40125
-rw-r--r--test/log/45204
-rw-r--r--test/log/45231
-rw-r--r--test/log/45241
-rw-r--r--test/rejectlog/09012
-rw-r--r--test/rejectlog/401212
-rwxr-xr-xtest/runtest37
-rw-r--r--test/scripts/0000-Basic/00021
-rw-r--r--test/scripts/0000-Basic/04761
-rw-r--r--test/scripts/0000-Basic/09016
-rw-r--r--test/scripts/2000-GnuTLS/20302
-rw-r--r--test/scripts/2000-GnuTLS/20314
-rw-r--r--test/scripts/2000-GnuTLS/20381
-rw-r--r--test/scripts/2100-OpenSSL/21026
-rw-r--r--test/scripts/2100-OpenSSL/21323
-rw-r--r--test/scripts/2100-OpenSSL/21381
-rw-r--r--test/scripts/2800-lmdb/280035
-rw-r--r--test/scripts/3000-Perl/30001
-rw-r--r--test/stderr/000212
-rw-r--r--test/stderr/00216
-rw-r--r--test/stderr/00226
-rw-r--r--test/stderr/00374
-rw-r--r--test/stderr/00788
-rw-r--r--test/stderr/00842
-rw-r--r--test/stderr/00854
-rw-r--r--test/stderr/00922
-rw-r--r--test/stderr/00942
-rw-r--r--test/stderr/01176
-rw-r--r--test/stderr/01232
-rw-r--r--test/stderr/01434
-rw-r--r--test/stderr/01492
-rw-r--r--test/stderr/016112
-rw-r--r--test/stderr/01694
-rw-r--r--test/stderr/01838
-rw-r--r--test/stderr/021814
-rw-r--r--test/stderr/02492
-rw-r--r--test/stderr/027510
-rw-r--r--test/stderr/027710
-rw-r--r--test/stderr/027812
-rw-r--r--test/stderr/02794
-rw-r--r--test/stderr/028312
-rw-r--r--test/stderr/02948
-rw-r--r--test/stderr/02974
-rw-r--r--test/stderr/03034
-rw-r--r--test/stderr/03158
-rw-r--r--test/stderr/03174
-rw-r--r--test/stderr/03324
-rw-r--r--test/stderr/03334
-rw-r--r--test/stderr/035710
-rw-r--r--test/stderr/03586
-rw-r--r--test/stderr/03606
-rw-r--r--test/stderr/036112
-rw-r--r--test/stderr/03622
-rw-r--r--test/stderr/03642
-rw-r--r--test/stderr/03682
-rw-r--r--test/stderr/03704
-rw-r--r--test/stderr/03712
-rw-r--r--test/stderr/03748
-rw-r--r--test/stderr/037512
-rw-r--r--test/stderr/037656
-rw-r--r--test/stderr/03778
-rw-r--r--test/stderr/037810
-rw-r--r--test/stderr/03796
-rw-r--r--test/stderr/03804
-rw-r--r--test/stderr/03812
-rw-r--r--test/stderr/038210
-rw-r--r--test/stderr/038616
-rw-r--r--test/stderr/03872
-rw-r--r--test/stderr/038816
-rw-r--r--test/stderr/03912
-rw-r--r--test/stderr/039312
-rw-r--r--test/stderr/03962
-rw-r--r--test/stderr/03988
-rw-r--r--test/stderr/03992
-rw-r--r--test/stderr/040232
-rw-r--r--test/stderr/040310
-rw-r--r--test/stderr/040418
-rw-r--r--test/stderr/04088
-rw-r--r--test/stderr/04142
-rw-r--r--test/stderr/04192
-rw-r--r--test/stderr/04268
-rw-r--r--test/stderr/043210
-rw-r--r--test/stderr/04352
-rw-r--r--test/stderr/04372
-rw-r--r--test/stderr/04506
-rw-r--r--test/stderr/04626
-rw-r--r--test/stderr/04632
-rw-r--r--test/stderr/04642
-rw-r--r--test/stderr/04656
-rw-r--r--test/stderr/04692
-rw-r--r--test/stderr/04712
-rw-r--r--test/stderr/04734
-rw-r--r--test/stderr/04766
-rw-r--r--test/stderr/04792
-rw-r--r--test/stderr/04832
-rw-r--r--test/stderr/04842
-rw-r--r--test/stderr/04878
-rw-r--r--test/stderr/048916
-rw-r--r--test/stderr/04992
-rw-r--r--test/stderr/051212
-rw-r--r--test/stderr/05296
-rw-r--r--test/stderr/05432
-rw-r--r--test/stderr/054420
-rw-r--r--test/stderr/05454
-rw-r--r--test/stderr/05544
-rw-r--r--test/stderr/05632
-rw-r--r--test/stderr/05752
-rw-r--r--test/stderr/057856
-rw-r--r--test/stderr/10064
-rw-r--r--test/stderr/201316
-rw-r--r--test/stderr/20358
-rw-r--r--test/stderr/211316
-rw-r--r--test/stderr/21358
-rw-r--r--test/stderr/22004
-rw-r--r--test/stderr/22014
-rw-r--r--test/stderr/22022
-rw-r--r--test/stderr/260016
-rw-r--r--test/stderr/30002
-rw-r--r--test/stderr/32014
-rw-r--r--test/stderr/32102
-rw-r--r--test/stderr/32122
-rw-r--r--test/stderr/34002
-rw-r--r--test/stderr/45204
-rw-r--r--test/stderr/48024
-rw-r--r--test/stderr/48034
-rw-r--r--test/stderr/50004
-rw-r--r--test/stderr/500410
-rw-r--r--test/stderr/500536
-rw-r--r--test/stderr/50068
-rw-r--r--test/stderr/50088
-rw-r--r--test/stderr/520418
-rw-r--r--test/stderr/541048
-rw-r--r--test/stderr/542048
-rw-r--r--test/stdout/00021
-rw-r--r--test/stdout/05721
-rw-r--r--test/stdout/09016
-rw-r--r--test/stdout/21026
-rw-r--r--test/stdout/21324
-rw-r--r--test/stdout/30002
-rw-r--r--test/stdout/401235
302 files changed, 1406 insertions, 1175 deletions
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index 4a8e1d06e..a9a048ecb 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -9967,7 +9967,7 @@ a regular expression, and a substitution string. For example:
${sg{abcdefabcdef}{abc}{xyz}}
.endd
yields &"xyzdefxyzdef"&. Because all three arguments are expanded before use,
-if any $ or \ characters are required in the regular expression or in the
+if any $, } or \ characters are required in the regular expression or in the
substitution string, they have to be escaped. For example:
.code
${sg{abcdef}{^(...)(...)\$}{\$2\$1}}
@@ -10118,7 +10118,15 @@ character. For example:
.code
${addresses:>& Chief <ceo@up.stairs>, sec@base.ment (dogsbody)}
.endd
-expands to &`ceo@up.stairs&&sec@base.ment`&. Compare the &*address*& (singular)
+expands to &`ceo@up.stairs&&sec@base.ment`&. The string is expanded
+first, so if the expanded string starts with >, it may change the output
+separator unintentionally. This can be avoided by setting the output
+separator explicitly:
+.code
+${addresses:>:$h_from:}
+.endd
+
+Compare the &*address*& (singular)
expansion item, which extracts the working address from a single RFC2822
address. See the &*filter*&, &*map*&, and &*reduce*& items for ways of
processing lists.
@@ -23798,7 +23806,7 @@ of the message. Its value must not be zero. See also &%final_timeout%&.
.option dkim_private_key smtp string&!! unset
.option dkim_canon smtp string&!! unset
.option dkim_strict smtp string&!! unset
-.option dkim_sign_headers smtp string&!! unset
+.option dkim_sign_headers smtp string&!! "per RFC"
.option dkim_hash smtp string&!! sha256
.option dkim_identity smtp string&!! unset
DKIM signing options. For details see section &<<SECDKIMSIGN>>&.
@@ -24139,7 +24147,7 @@ This option provides a list of servers to which, provided they announce
CHUNKING support, Exim will attempt to use BDAT commands rather than DATA.
BDAT will not be used in conjunction with a transport filter.
-.option hosts_try_fastopen smtp "host list!!" unset
+.option hosts_try_fastopen smtp "host list&!!" unset
.cindex "fast open, TCP" "enabling, in client"
.cindex "TCP Fast Open" "enabling, in client"
.cindex "RFC 7413" "TCP Fast Open"
@@ -24155,6 +24163,9 @@ as the initiator must present a cookie in the SYN segment.
On (at least some) current Linux distributions the facility must be enabled
in the kernel by the sysadmin before the support is usable.
+There is no option for control of the server side; if the system supports
+it it is always enebled. Note that legthy operations in the connect ACL,
+such as DNSBL lookups, will still delay the emission of the SMTP banner.
.option hosts_try_prdr smtp "host list&!!" *
.cindex "PRDR" "enabling, optional in client"
@@ -38580,11 +38591,17 @@ either "1" or "true", Exim will defer. Otherwise Exim will send the message
unsigned. You can use the &%$dkim_domain%& and &%$dkim_selector%& expansion
variables here.
-.option dkim_sign_headers smtp string&!! unset
-If set, this option must expand to (or be specified as) a colon-separated
-list of header names. Headers with these names will be included in the message
-signature.
-When unspecified, the header names recommended in RFC4871 will be used.
+.option dkim_sign_headers smtp string&!! "see below"
+If set, this option must expand to a colon-separated
+list of header names.
+.new
+Headers with these names, or the absence or such a header, will be included
+in the message signature.
+When unspecified, the header names listed in RFC4871 will be used,
+whether or not each header is present in the message.
+The default list is available for the expansion in the macro
+"_DKIM_SIGN_HEADERS".
+.wen
.section "Verifying DKIM signatures in incoming mail" "SECID514"
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 8f1b6b7ad..4b3d64e0c 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -166,6 +166,22 @@ HS/02 Fix Bug 2130: large writes from the transport subprocess where chunked
JH/27 Fix SOCKS bug: an unitialized pointer was deref'd by the transport process
which could crash as a result. This could lead to undeliverable messages.
+JH/28 Logging: "next input sent too soon" now shows where input was truncated
+ for log purposes.
+
+JH/29 Fix queue_run_in_order to ignore the PID portion of the message ID. This
+ matters on fast-turnover and PID-randomising systems, which were getting
+ out-of-order delivery.
+
+JH/30 Fix a logging bug on aarch64: an unsafe routine was previously used for
+ a possibly-overlapping copy. The symptom was that "Remote host closed
+ connection in response to HELO" was logged instead of the actual 4xx
+ error for the HELO.
+
+JH/31 Fix CHUNKING code to properly flush the unwanted chunk after an error.
+ Previously only that bufferd was discarded, resulting in SYMTP command
+ desynchronisation.
+
Exim version 4.89
-----------------
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 39fce1eab..6d875d5f4 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -53,6 +53,7 @@ Version 4.90
13. DKIM support for multiple signing, by domain and/or key-selector.
DKIM support for multiple hashes, and for alternate-identity tags.
+ Builtin macro with default list of signed headers.
14. Exipick understands -C|--config for an alternative Exim
configuration file.
diff --git a/src/Makefile b/src/Makefile
index b262a7b53..958306292 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2,7 +2,7 @@
# appropriate links, and then creating and running the main makefile in that
# directory.
-# Copyright (c) University of Cambridge, 1995 - 2015
+# Copyright (c) University of Cambridge, 1995 - 2017
# See the file NOTICE for conditions of use and distribution.
# IRIX make uses the shell that is in the SHELL variable, which often defaults
diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base
index 67ac082ba..d64ed549f 100644
--- a/src/OS/Makefile-Base
+++ b/src/OS/Makefile-Base
@@ -5,7 +5,7 @@
# optional, Local/* files at the front of this file, to create Makefile in the
# build directory.
#
-# Copyright (c) The Exim Maintainers 2016
+# Copyright (c) The Exim Maintainers 2017
SHELL = $(MAKE_SHELL)
SCRIPTS = ../scripts
@@ -135,6 +135,7 @@ OBJ_MACRO = macro_predef.o \
macro-manualroute.o macro-queryprogram.o macro-redirect.o \
macro-auth-spa.o macro-cram_md5.o macro-cyrus_sasl.o macro-dovecot.o macro-gsasl_exim.o \
macro-heimdal_gssapi.o macro-plaintext.o macro-spa.o macro-tls.o\
+ macro-dkim.o
$(OBJ_MACRO): $(MACRO_HSRC)
@@ -222,6 +223,9 @@ macro-spa.o : auths/spa.c
macro-tls.o: auths/tls.c
@echo "$(CC) -DMACRO_PREDEF auths/tls.c"
$(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ auths/tls.c
+macro-dkim.o: dkim.c
+ @echo "$(CC) -DMACRO_PREDEF dkim.c"
+ $(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ dkim.c
macro_predef: $(OBJ_MACRO)
@echo "$(LNCC) -o $@"
diff --git a/src/OS/os.c-Linux b/src/OS/os.c-Linux
index dd65c8b39..a10bc7d25 100644
--- a/src/OS/os.c-Linux
+++ b/src/OS/os.c-Linux
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1997 - 2016 */
+/* Copyright (c) University of Cambridge 1997 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Linux-specific code. This is concatenated onto the generic
diff --git a/src/OS/os.h-FreeBSD b/src/OS/os.h-FreeBSD
index 3a06e766e..8b1af396a 100644
--- a/src/OS/os.h-FreeBSD
+++ b/src/OS/os.h-FreeBSD
@@ -1,4 +1,7 @@
/* Exim: OS-specific C header file for FreeBSD */
+/* Copyright (c) University of Cambridge 2017 */
+/* See the file NOTICE for conditions of use and distribution. */
+
#include <sys/types.h>
@@ -48,6 +51,7 @@ extern ssize_t os_sendfile(int, int, off_t *, size_t);
/* TCP_FASTOPEN support. There does not seems to be a
MSG_FASTOPEN defined yet... */
+#define EXIM_TFO_PROBE
#include <netinet/tcp.h> /* for TCP_FASTOPEN */
#include <sys/socket.h> /* for MSG_FASTOPEN */
diff --git a/src/OS/os.h-Linux b/src/OS/os.h-Linux
index f6d35772b..88c4d9117 100644
--- a/src/OS/os.h-Linux
+++ b/src/OS/os.h-Linux
@@ -1,4 +1,7 @@
/* Exim: OS-specific C header file for Linux */
+/* Copyright (c) University of Cambridge 2017 */
+/* See the file NOTICE for conditions of use and distribution. */
+
/* Some old systems we've received bug-reports for have a <limits.h> which
does not pull in <features.h>. Best to just pull it in now and have done
diff --git a/src/OS/os.h-OpenBSD b/src/OS/os.h-OpenBSD
index 5d55a967e..81ed4870b 100644
--- a/src/OS/os.h-OpenBSD
+++ b/src/OS/os.h-OpenBSD
@@ -1,4 +1,7 @@
/* Exim: OS-specific C header file for OpenBSD */
+/* Copyright (c) University of Cambridge 2017 */
+/* See the file NOTICE for conditions of use and distribution. */
+
#define HAVE_BSD_GETLOADAVG
#define HAVE_MMAP
@@ -10,7 +13,7 @@
if the version released is past that point. */
#include <sys/param.h>
#if OpenBSD >= 201405
-#define NOT_HAVE_ARC4RANDOM_STIR
+# define NOT_HAVE_ARC4RANDOM_STIR
#endif
typedef struct flock flock_t;
@@ -27,4 +30,27 @@ typedef struct __res_state *res_state;
# define EPROTO 71
#endif
+/* We need to force this; the automatic in buildconfig.c gets %ld */
+#ifdef OFF_T_FMT
+# undef OFF_T_FMT
+# undef LONGLONG_T
+#endif
+#define OFF_T_FMT "%lld"
+#define LONGLONG_T long long int
+
+#ifdef PID_T_FMT
+# undef PID_T_FMT
+#endif
+#define PID_T_FMT "%d"
+
+#ifdef INO_T_FMT
+# undef INO_T_FMT
+#endif
+#define INO_T_FMT "%llu"
+
+#ifdef TIME_T_FMT
+# undef TIME_T_FMT
+#endif
+#define TIME_T_FMT "%lld"
+
/* End */
diff --git a/src/exim_monitor/em_globals.c b/src/exim_monitor/em_globals.c
index 46ad834da..43d1bbceb 100644
--- a/src/exim_monitor/em_globals.c
+++ b/src/exim_monitor/em_globals.c
@@ -2,7 +2,7 @@
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/exim_monitor/em_log.c b/src/exim_monitor/em_log.c
index 73aa0e567..69e63533c 100644
--- a/src/exim_monitor/em_log.c
+++ b/src/exim_monitor/em_log.c
@@ -2,7 +2,7 @@
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This module contains code for scanning the main log,
diff --git a/src/exim_monitor/em_main.c b/src/exim_monitor/em_main.c
index 00471ce3d..09b754b58 100644
--- a/src/exim_monitor/em_main.c
+++ b/src/exim_monitor/em_main.c
@@ -2,7 +2,7 @@
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/exim_monitor/em_menu.c b/src/exim_monitor/em_menu.c
index 935e82687..6cd009d2b 100644
--- a/src/exim_monitor/em_menu.c
+++ b/src/exim_monitor/em_menu.c
@@ -2,7 +2,7 @@
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/exim_monitor/em_queue.c b/src/exim_monitor/em_queue.c
index e6b1e91d9..7d231530c 100644
--- a/src/exim_monitor/em_queue.c
+++ b/src/exim_monitor/em_queue.c
@@ -2,7 +2,7 @@
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/exim_monitor/em_version.c b/src/exim_monitor/em_version.c
index 0279654ac..a2edbfe8a 100644
--- a/src/exim_monitor/em_version.c
+++ b/src/exim_monitor/em_version.c
@@ -2,7 +2,7 @@
* Exim Monitor *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "mytypes.h"
diff --git a/src/scripts/Configure-Makefile b/src/scripts/Configure-Makefile
index 648960e44..2af192721 100755
--- a/src/scripts/Configure-Makefile
+++ b/src/scripts/Configure-Makefile
@@ -6,7 +6,7 @@ export LC_ALL=C
# just got too horrendous to get it right in "make", because of the optionally
# existing configuration files.
#
-# Copyright (c) The Exim Maintainers 2016
+# Copyright (c) The Exim Maintainers 2017
# First off, get the OS type, and check that there is a make file for it.
diff --git a/src/scripts/MakeLinks b/src/scripts/MakeLinks
index 22e5a4bd7..770591dc8 100755
--- a/src/scripts/MakeLinks
+++ b/src/scripts/MakeLinks
@@ -3,7 +3,7 @@
# Script to build links for all the exim source files from the system-
# specific build directory. It should be run from within that directory.
#
-# Copyright (c) The Exim Maintainers 2016
+# Copyright (c) The Exim Maintainers 2017
test ! -d ../src && \
echo "*** $0 should be run in a system-specific subdirectory." && \
diff --git a/src/scripts/reversion b/src/scripts/reversion
index 45755c084..c82d9c0ac 100755
--- a/src/scripts/reversion
+++ b/src/scripts/reversion
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (c) The Exim Maintainers 2016
+# Copyright (c) The Exim Maintainers 2017
set -e
LC_ALL=C
@@ -96,7 +96,7 @@ if [ ".${SOURCE_DATE_EPOCH:-}" != "." ]; then
# builds without it causing any problems: nothing really cares about timezone.
# GNU date: "date -d @TS"
# BSD date: "date -r TS"
- exim_build_date_override="$(date -u -d "@${SOURCE_DATE_EPOCH}" "$fmt" 2>/dev/null | date -u -r "${SOURCE_DATE_EPOCH}" "$fmt" 2>/dev/null)"
+ exim_build_date_override="$(date -u -d "@${SOURCE_DATE_EPOCH}" "$fmt" 2>/dev/null || date -u -r "${SOURCE_DATE_EPOCH}" "$fmt" 2>/dev/null)"
fi
( echo '# automatically generated file - see ../scripts/reversion'
diff --git a/src/src/EDITME b/src/src/EDITME
index e604acd8b..72e26ce0e 100644
--- a/src/src/EDITME
+++ b/src/src/EDITME
@@ -258,7 +258,7 @@ TRANSPORT_SMTP=yes
# you perform upgrades and revert them. You should consider the benefit of
# embedding the Exim version number into LOOKUP_MODULE_DIR, so that you can
# maintain two concurrent sets of modules.
-#
+#
# *BEWARE*: ability to modify the files in LOOKUP_MODULE_DIR is equivalent to
# the ability to modify the Exim binary, which is often setuid root! The Exim
# developers only intend this functionality be used by OS software packagers
@@ -311,6 +311,7 @@ LOOKUP_DNSDB=yes
# LOOKUP_IBASE=yes
# LOOKUP_LDAP=yes
# LOOKUP_MYSQL=yes
+# LOOKUP_MYSQL_PC=mariadb
# LOOKUP_NIS=yes
# LOOKUP_NISPLUS=yes
# LOOKUP_ORACLE=yes
diff --git a/src/src/acl.c b/src/src/acl.c
index 79feb5f68..640989997 100644
--- a/src/src/acl.c
+++ b/src/src/acl.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Code for handling Access Control Lists (ACLs) */
@@ -3931,7 +3931,7 @@ if (acl_level == 0)
}
else ss = s;
-while (isspace(*ss))ss++;
+while (isspace(*ss)) ss++;
/* If we can't find a named ACL, the default is to parse it as an inline one.
(Unless it begins with a slash; non-existent files give rise to an error.) */
diff --git a/src/src/auths/call_pam.c b/src/src/auths/call_pam.c
index a5cbec3ed..74d492792 100644
--- a/src/src/auths/call_pam.c
+++ b/src/src/auths/call_pam.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c
index b9e57c1e9..3f80bd674 100644
--- a/src/src/auths/cram_md5.c
+++ b/src/src/auths/cram_md5.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/auths/cyrus_sasl.c b/src/src/auths/cyrus_sasl.c
index cbf244633..afbeb81e2 100644
--- a/src/src/auths/cyrus_sasl.c
+++ b/src/src/auths/cyrus_sasl.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This code was originally contributed by Matthew Byng-Maddick */
diff --git a/src/src/auths/dovecot.c b/src/src/auths/dovecot.c
index 2dcaa0e42..8c5b411de 100644
--- a/src/src/auths/dovecot.c
+++ b/src/src/auths/dovecot.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2004 Andrey Panin <pazke@donpac.ru>
- * Copyright (c) 2006-2016 The Exim Maintainers
+ * Copyright (c) 2006-2017 The Exim Maintainers
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
diff --git a/src/src/auths/get_data.c b/src/src/auths/get_data.c
index 3857e0738..9c793e3ab 100644
--- a/src/src/auths/get_data.c
+++ b/src/src/auths/get_data.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/auths/get_no64_data.c b/src/src/auths/get_no64_data.c
index 1bb611c1c..1006cf275 100644
--- a/src/src/auths/get_no64_data.c
+++ b/src/src/auths/get_no64_data.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2012 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/auths/gsasl_exim.c b/src/src/auths/gsasl_exim.c
index 48621a402..0ce9b9297 100644
--- a/src/src/auths/gsasl_exim.c
+++ b/src/src/auths/gsasl_exim.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2012 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Copyright (c) Twitter Inc 2012
diff --git a/src/src/auths/heimdal_gssapi.c b/src/src/auths/heimdal_gssapi.c
index 03a4bec79..b583a73fd 100644
--- a/src/src/auths/heimdal_gssapi.c
+++ b/src/src/auths/heimdal_gssapi.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Copyright (c) Twitter Inc 2012
diff --git a/src/src/auths/md5.c b/src/src/auths/md5.c
index 71b8c9952..d0037d92b 100644
--- a/src/src/auths/md5.c
+++ b/src/src/auths/md5.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#ifndef STAND_ALONE
diff --git a/src/src/auths/plaintext.c b/src/src/auths/plaintext.c
index 8bba05823..0bd67f686 100644
--- a/src/src/auths/plaintext.c
+++ b/src/src/auths/plaintext.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/auths/spa.c b/src/src/auths/spa.c
index f14ca5e54..9c0064ae4 100644
--- a/src/src/auths/spa.c
+++ b/src/src/auths/spa.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This file, which provides support for Microsoft's Secure Password
diff --git a/src/src/auths/tls.c b/src/src/auths/tls.c
index bdcae3194..f29a22c82 100644
--- a/src/src/auths/tls.c
+++ b/src/src/auths/tls.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2016 */
+/* Copyright (c) Jeremy Harris 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This file provides an Exim authenticator driver for
diff --git a/src/src/auths/xtextencode.c b/src/src/auths/xtextencode.c
index 4d189fc06..3fa57c4a7 100644
--- a/src/src/auths/xtextencode.c
+++ b/src/src/auths/xtextencode.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/base64.c b/src/src/base64.c
index 9dcbb74f0..f6f187f07 100644
--- a/src/src/base64.c
+++ b/src/src/base64.c
@@ -5,7 +5,7 @@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004, 2015 */
/* License: GPL */
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/buildconfig.c b/src/src/buildconfig.c
index 4ed287414..22fde15ca 100644
--- a/src/src/buildconfig.c
+++ b/src/src/buildconfig.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -101,6 +101,7 @@ main(int argc, char **argv)
{
off_t test_off_t = 0;
time_t test_time_t = 0;
+ino_t test_ino_t;
#if ! (__STDC_VERSION__ >= 199901L)
size_t test_size_t = 0;
ssize_t test_ssize_t = 0;
@@ -153,13 +154,13 @@ This assumption is known to be OK for the common operating systems. */
fprintf(new, "#ifndef OFF_T_FMT\n");
if (sizeof(test_off_t) > sizeof(test_long_t))
{
- fprintf(new, "#define OFF_T_FMT \"%%lld\"\n");
- fprintf(new, "#define LONGLONG_T long long int\n");
+ fprintf(new, "# define OFF_T_FMT \"%%lld\"\n");
+ fprintf(new, "# define LONGLONG_T long long int\n");
}
else
{
- fprintf(new, "#define OFF_T_FMT \"%%ld\"\n");
- fprintf(new, "#define LONGLONG_T long int\n");
+ fprintf(new, "# define OFF_T_FMT \"%%ld\"\n");
+ fprintf(new, "# define LONGLONG_T long int\n");
}
fprintf(new, "#endif\n\n");
@@ -171,14 +172,23 @@ off_t. */
fprintf(new, "#ifndef TIME_T_FMT\n");
if (sizeof(test_time_t) > sizeof(test_long_t))
{
- fprintf(new, "#define TIME_T_FMT \"%%lld\"\n");
- fprintf(new, "#undef LONGLONG_T\n");
- fprintf(new, "#define LONGLONG_T long long int\n");
+ fprintf(new, "# define TIME_T_FMT \"%%lld\"\n");
+ fprintf(new, "# undef LONGLONG_T\n");
+ fprintf(new, "# define LONGLONG_T long long int\n");
}
else
- {
- fprintf(new, "#define TIME_T_FMT \"%%ld\"\n");
- }
+ fprintf(new, "# define TIME_T_FMT \"%%ld\"\n");
+fprintf(new, "#endif\n\n");
+
+fprintf(new, "#ifndef INO_T_FMT\n");
+if (sizeof(test_ino_t) > sizeof(test_long_t))
+ fprintf(new, "# define INO_T_FMT \"%%llu\"\n");
+else
+ fprintf(new, "# define INO_T_FMT \"%%lu\"\n");
+fprintf(new, "#endif\n\n");
+
+fprintf(new, "#ifndef PID_T_FMT\n");
+fprintf(new, "# define PID_T_FMT \"%%lu\"\n");
fprintf(new, "#endif\n\n");
/* And for sizeof() results, size_t, which should with C99 be just %zu, deal
diff --git a/src/src/config.h.defaults b/src/src/config.h.defaults
index dbfde8935..4750523dc 100644
--- a/src/src/config.h.defaults
+++ b/src/src/config.h.defaults
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* The default settings for Exim configuration variables. A #define without
diff --git a/src/src/dane-openssl.c b/src/src/dane-openssl.c
index 0a74f1f28..e48b0cb79 100644
--- a/src/src/dane-openssl.c
+++ b/src/src/dane-openssl.c
@@ -2,7 +2,7 @@
* Author: Viktor Dukhovni
* License: THIS CODE IS IN THE PUBLIC DOMAIN.
*
- * Copyright (c) The Exim Maintainers 2014 - 2016
+ * Copyright (c) The Exim Maintainers 2014 - 2017
*/
#include <stdio.h>
#include <string.h>
diff --git a/src/src/dbfn.c b/src/src/dbfn.c
index 5529fe93f..29d980802 100644
--- a/src/src/dbfn.c
+++ b/src/src/dbfn.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/dbstuff.h b/src/src/dbstuff.h
index aec549f48..adb362445 100644
--- a/src/src/dbstuff.h
+++ b/src/src/dbstuff.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This header file contains macro definitions so that a variety of DBM
@@ -632,8 +632,12 @@ after reading data. */
# define EXIM_DBOPEN(name, dirname, flags, mode, dbpp) \
do { \
DEBUG(D_hints_lookup) \
- debug_printf("EXIM_DBOPEN: file <%s> dir <%s> flags 0x%x\n", \
- (name), (dirname), flags); \
+ debug_printf("EXIM_DBOPEN: file <%s> dir <%s> flags=%s\n", \
+ (name), (dirname), \
+ (flags) == O_RDONLY ? "O_RDONLY" \
+ : (flags) == O_RDWR ? "O_RDWR" \
+ : (flags) == (O_RDWR|O_CREAT) ? "O_RDWR|O_CREAT" \
+ : "??"); \
EXIM_DBOPEN__(name, dirname, flags, mode, dbpp); \
DEBUG(D_hints_lookup) debug_printf("returned from EXIM_DBOPEN: %p\n", *dbpp); \
} while(0)
diff --git a/src/src/dcc.c b/src/src/dcc.c
index a11e12df4..9a1657d26 100644
--- a/src/src/dcc.c
+++ b/src/src/dcc.c
@@ -7,7 +7,7 @@
* wbreyha@gmx.net
* See the file NOTICE for conditions of use and distribution.
*
- * Copyright (c) The Exim Maintainers 2015 - 2016
+ * Copyright (c) The Exim Maintainers 2015 - 2017
*/
/* This patch is based on code from Tom Kistners exiscan (ACL integration) and
diff --git a/src/src/debug.c b/src/src/debug.c
index 17a87d2d2..9e042f53f 100644
--- a/src/src/debug.c
+++ b/src/src/debug.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 1241fa3cf..a7f561c9c 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* The main code for delivering a message. */
@@ -10,6 +10,7 @@
#include "exim.h"
#include "transports/smtp.h"
+#include <sys/uio.h>
#include <assert.h>
@@ -80,6 +81,52 @@ static uschar *used_return_path = NULL;
/*************************************************
+* read as much as requested *
+*************************************************/
+
+/* The syscall read(2) doesn't always returns as much as we want. For
+several reasons it might get less. (Not talking about signals, as syscalls
+are restartable). When reading from a network or pipe connection the sender
+might send in smaller chunks, with delays between these chunks. The read(2)
+may return such a chunk.
+
+The more the writer writes and the smaller the pipe between write and read is,
+the more we get the chance of reading leass than requested. (See bug 2130)
+
+This function read(2)s until we got all the data we *requested*.
+
+Note: This function may block. Use it only if you're sure about the
+amount of data you will get.
+
+Argument:
+ fd the file descriptor to read from
+ buffer pointer to a buffer of size len
+ len the requested(!) amount of bytes
+
+Returns: the amount of bytes read
+*/
+static ssize_t
+readn(int fd, void * buffer, size_t len)
+{
+ void * next = buffer;
+ void * end = buffer + len;
+
+ while (next < end)
+ {
+ ssize_t got = read(fd, next, end - next);
+
+ /* I'm not sure if there are signals that can interrupt us,
+ for now I assume the worst */
+ if (got == -1 && errno == EINTR) continue;
+ if (got <= 0) return next - buffer;
+ next += got;
+ }
+
+ return len;
+}
+
+
+/*************************************************
* Make a new address item *
*************************************************/
@@ -1424,7 +1471,7 @@ DEBUG(D_deliver) debug_printf("post-process %s (%d)\n", addr->address, result);
/* Set up driver kind and name for logging. Disable logging if the router or
transport has disabled it. */
-if (driver_type == DTYPE_TRANSPORT)
+if (driver_type == EXIM_DTYPE_TRANSPORT)
{
if (addr->transport)
{
@@ -1434,7 +1481,7 @@ if (driver_type == DTYPE_TRANSPORT)
}
else driver_kind = US"transporting";
}
-else if (driver_type == DTYPE_ROUTER)
+else if (driver_type == EXIM_DTYPE_ROUTER)
{
if (addr->router)
{
@@ -2628,7 +2675,7 @@ if (max_parallel > 0)
next = addr->next;
addr->message = US"concurrency limit reached for transport";
addr->basic_errno = ERRNO_TRETRY;
- post_process_one(addr, DEFER, LOG_MAIN, DTYPE_TRANSPORT, 0);
+ post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_TRANSPORT, 0);
} while ((addr = next));
return TRUE;
}
@@ -2690,7 +2737,7 @@ while (addr_local)
addr->message = addr->router
? string_sprintf("No transport set by %s router", addr->router->name)
: string_sprintf("No transport set by system filter");
- post_process_one(addr, DEFER, logflags, DTYPE_TRANSPORT, 0);
+ post_process_one(addr, DEFER, logflags, EXIM_DTYPE_TRANSPORT, 0);
continue;
}
@@ -2825,7 +2872,7 @@ while (addr_local)
while (addr)
{
addr2 = addr->next;
- post_process_one(addr, rc, logflags, DTYPE_TRANSPORT, 0);
+ post_process_one(addr, rc, logflags, EXIM_DTYPE_TRANSPORT, 0);
addr = addr2;
}
continue; /* With next batch of addresses */
@@ -2927,7 +2974,7 @@ while (addr_local)
this->basic_errno = ERRNO_LRETRY;
addr2 = addr3 ? (addr3->next = addr2->next)
: (addr = addr2->next);
- post_process_one(this, DEFER, logflags, DTYPE_TRANSPORT, 0);
+ post_process_one(this, DEFER, logflags, EXIM_DTYPE_TRANSPORT, 0);
}
}
@@ -2950,7 +2997,7 @@ while (addr_local)
do
{
addr = addr->next;
- post_process_one(addr, DEFER, logflags, DTYPE_TRANSPORT, 0);
+ post_process_one(addr, DEFER, logflags, EXIM_DTYPE_TRANSPORT, 0);
} while ((addr = addr2));
}
continue; /* Loop for the next set of addresses. */
@@ -3107,7 +3154,7 @@ while (addr_local)
addr2->more_errno = deliver_time.tv_sec;
addr2->delivery_usec = deliver_time.tv_usec;
}
- post_process_one(addr2, result, logflags, DTYPE_TRANSPORT, logchar);
+ post_process_one(addr2, result, logflags, EXIM_DTYPE_TRANSPORT, logchar);
/* If a pipe delivery generated text to be sent back, the result may be
changed to FAIL, and we must copy this for subsequent addresses in the
@@ -3311,14 +3358,13 @@ while (!done)
If we get less, we can assume the subprocess do be done and do not expect any further
information from it. */
- got = readn(fd, pipeheader, required);
- if (got != required)
+ if ((got = readn(fd, pipeheader, required)) != required)
{
- msg = string_sprintf("got %d of %d bytes (pipeheader) "
- "from transport process %d for transport %s",
- got, PIPE_HEADER_SIZE, pid, addr->transport->driver_name);
- done = TRUE;
- break;
+ msg = string_sprintf("got " SSIZE_T_FMT " of %d bytes (pipeheader) "
+ "from transport process %d for transport %s",
+ got, PIPE_HEADER_SIZE, pid, addr->transport->driver_name);
+ done = TRUE;
+ break;
}
pipeheader[PIPE_HEADER_SIZE] = '\0';
@@ -3348,14 +3394,13 @@ while (!done)
/* Same as above, the transport process will write the bytes announced
in a timely manner, so we can just wait for the bytes, getting less than expected
is considered a problem of the subprocess, we do not expect anything else from it. */
- got = readn(fd, big_buffer, required);
- if (got != required)
+ if ((got = readn(fd, big_buffer, required)) != required)
{
- msg = string_sprintf("got only %d of %d bytes (pipedata) "
- "from transport process %d for transport %s",
- got, required, pid, addr->transport->driver_name);
- done = TRUE;
- break;
+ msg = string_sprintf("got only " SSIZE_T_FMT " of " SIZE_T_FMT
+ " bytes (pipedata) from transport process %d for transport %s",
+ got, required, pid, addr->transport->driver_name);
+ done = TRUE;
+ break;
}
/* Handle each possible type of item, assuming the complete item is
@@ -3757,7 +3802,7 @@ while (addr)
addr->transport_return = DEFER;
}
(void)post_process_one(addr, addr->transport_return, logflags,
- DTYPE_TRANSPORT, addr->special_action);
+ EXIM_DTYPE_TRANSPORT, addr->special_action);
}
/* Next address */
@@ -6048,7 +6093,7 @@ else if (system_filter && process_recipients != RECIP_FAIL_TIMEOUT)
p = p->next;
if (!addr_last) addr_new = p; else addr_last->next = p;
badp->local_part = badp->address; /* Needed for log line */
- post_process_one(badp, DEFER, LOG_MAIN|LOG_PANIC, DTYPE_ROUTER, 0);
+ post_process_one(badp, DEFER, LOG_MAIN|LOG_PANIC, EXIM_DTYPE_ROUTER, 0);
continue;
}
} /* End of pfr handling */
@@ -6166,7 +6211,7 @@ if (process_recipients != RECIP_IGNORE)
case RECIP_FAIL_LOOP:
new->message = US"Too many \"Received\" headers - suspected mail loop";
- post_process_one(new, FAIL, LOG_MAIN, DTYPE_ROUTER, 0);
+ post_process_one(new, FAIL, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
break;
@@ -6299,7 +6344,7 @@ while (addr_new) /* Loop until all addresses dealt with */
addr->message =
US"filter autoreply generated syntactically invalid recipient";
addr->prop.ignore_error = TRUE;
- (void) post_process_one(addr, FAIL, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void) post_process_one(addr, FAIL, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
continue; /* with the next new address */
}
@@ -6366,7 +6411,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->basic_errno = ERRNO_FORBIDFILE;
addr->message = US"delivery to file forbidden";
- (void)post_process_one(addr, FAIL, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, FAIL, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
continue; /* with the next new address */
}
}
@@ -6376,7 +6421,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->basic_errno = ERRNO_FORBIDPIPE;
addr->message = US"delivery to pipe forbidden";
- (void)post_process_one(addr, FAIL, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, FAIL, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
continue; /* with the next new address */
}
}
@@ -6384,7 +6429,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->basic_errno = ERRNO_FORBIDREPLY;
addr->message = US"autoreply forbidden";
- (void)post_process_one(addr, FAIL, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, FAIL, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
continue; /* with the next new address */
}
@@ -6395,7 +6440,7 @@ while (addr_new) /* Loop until all addresses dealt with */
if (addr->basic_errno == ERRNO_BADTRANSPORT)
{
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
continue;
}
@@ -6407,7 +6452,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
uschar *save = addr->transport->name;
addr->transport->name = US"**bypassed**";
- (void)post_process_one(addr, OK, LOG_MAIN, DTYPE_TRANSPORT, '=');
+ (void)post_process_one(addr, OK, LOG_MAIN, EXIM_DTYPE_TRANSPORT, '=');
addr->transport->name = save;
continue; /* with the next new address */
}
@@ -6430,7 +6475,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->message = US"cannot check percent_hack_domains";
addr->basic_errno = ERRNO_LISTDEFER;
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_NONE, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_NONE, 0);
continue;
}
@@ -6454,7 +6499,7 @@ while (addr_new) /* Loop until all addresses dealt with */
addr->message = US"domain is held";
addr->basic_errno = ERRNO_HELD;
}
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_NONE, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_NONE, 0);
continue;
}
@@ -6563,7 +6608,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->message = US"reusing SMTP connection skips previous routing defer";
addr->basic_errno = ERRNO_RRETRY;
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
}
/* If we are in a queue run, defer routing unless there is no retry data or
@@ -6616,7 +6661,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->message = US"retry time not reached";
addr->basic_errno = ERRNO_RRETRY;
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
}
/* The domain is OK for routing. Remember if retry data exists so it
@@ -6658,7 +6703,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->basic_errno = ERRNO_LISTDEFER;
addr->message = US"queue_domains lookup deferred";
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
}
else
{
@@ -6669,7 +6714,7 @@ while (addr_new) /* Loop until all addresses dealt with */
{
addr->basic_errno = ERRNO_QUEUE_DOMAIN;
addr->message = US"domain is in queue_domains";
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
}
}
@@ -6734,7 +6779,7 @@ while (addr_new) /* Loop until all addresses dealt with */
if (rc != OK)
{
- (void)post_process_one(addr, rc, LOG_MAIN, DTYPE_ROUTER, 0);
+ (void)post_process_one(addr, rc, LOG_MAIN, EXIM_DTYPE_ROUTER, 0);
continue; /* route next address */
}
@@ -7037,7 +7082,7 @@ if (queue_run_local)
addr->next = NULL;
addr->basic_errno = ERRNO_LOCAL_ONLY;
addr->message = US"remote deliveries suppressed";
- (void)post_process_one(addr, DEFER, LOG_MAIN, DTYPE_TRANSPORT, 0);
+ (void)post_process_one(addr, DEFER, LOG_MAIN, EXIM_DTYPE_TRANSPORT, 0);
}
/* Handle remote deliveries */
@@ -8388,6 +8433,13 @@ return final_yield;
void
deliver_init(void)
{
+#ifdef EXIM_TFO_PROBE
+tfo_probe();
+#else
+tcp_fastopen_ok = TRUE;
+#endif
+
+
if (!regex_PIPELINING) regex_PIPELINING =
regex_must_compile(US"\\n250[\\s\\-]PIPELINING(\\s|\\n|$)", FALSE, TRUE);
@@ -8499,14 +8551,10 @@ if (cutthrough.fd >= 0 && cutthrough.callout_hold_only)
goto fail;
else if (pid == 0) /* child: fork again to totally disconnect */
- {
- close(pfd[1]);
- if ((pid = fork()))
- _exit(pid ? EXIT_FAILURE : EXIT_SUCCESS);
- smtp_proxy_tls(big_buffer, big_buffer_size, pfd[0], 5*60);
- exim_exit(0);
- }
+ /* does not return */
+ smtp_proxy_tls(big_buffer, big_buffer_size, pfd, 5*60);
+ DEBUG(D_transport) debug_printf("proxy-proc inter-pid %d\n", pid);
close(pfd[0]);
waitpid(pid, NULL, 0);
(void) close(channel_fd); /* release the client socket */
diff --git a/src/src/dkim.c b/src/src/dkim.c
index 723267cbf..d31cae9c7 100644
--- a/src/src/dkim.c
+++ b/src/src/dkim.c
@@ -12,7 +12,20 @@
#ifndef DISABLE_DKIM
-#include "pdkim/pdkim.h"
+# include "pdkim/pdkim.h"
+
+# ifdef MACRO_PREDEF
+# include "macro_predef.h"
+
+void
+params_dkim(void)
+{
+builtin_macro_create_var(US"_DKIM_SIGN_HEADERS", US PDKIM_DEFAULT_SIGN_HEADERS);
+}
+# else /*!MACRO_PREDEF*/
+
+
+
int dkim_verify_oldpool;
pdkim_ctx *dkim_verify_ctx = NULL;
@@ -125,7 +138,7 @@ void
dkim_exim_verify_finish(void)
{
pdkim_signature * sig = NULL;
-int dkim_signers_size = 0, dkim_signers_ptr = 0, rc;
+int rc;
gstring * g = NULL;
const uschar * errstr;
@@ -172,7 +185,7 @@ for (sig = dkim_signatures; sig; sig = sig->next)
" c=", sig->canon_headers == PDKIM_CANON_SIMPLE ? "simple" : "relaxed",
"/", sig->canon_body == PDKIM_CANON_SIMPLE ? "simple" : "relaxed",
" a=", dkim_sig_to_a_tag(sig),
- string_sprintf(" b=%d",
+ string_sprintf(" b=" SIZE_T_FMT,
(int)sig->sighash.len > -1 ? sig->sighash.len * 8 : 0));
if ((s= sig->identity)) logmsg = string_append(logmsg, 2, " i=", s);
if (sig->created > 0) logmsg = string_cat(logmsg,
@@ -340,7 +353,7 @@ switch (what)
case DKIM_BODYLENGTH:
return dkim_cur_sig->bodylength >= 0
- ? string_sprintf(OFF_T_FMT, (LONGLONG_T) dkim_cur_sig->bodylength)
+ ? string_sprintf("%ld", dkim_cur_sig->bodylength)
: dkim_exim_expand_defaults(what);
case DKIM_CANON_BODY:
@@ -365,12 +378,12 @@ switch (what)
case DKIM_CREATED:
return dkim_cur_sig->created > 0
- ? string_sprintf("%llu", dkim_cur_sig->created)
+ ? string_sprintf("%lu", dkim_cur_sig->created)
: dkim_exim_expand_defaults(what);
case DKIM_EXPIRES:
return dkim_cur_sig->expires > 0
- ? string_sprintf("%llu", dkim_cur_sig->expires)
+ ? string_sprintf("%lu", dkim_cur_sig->expires)
: dkim_exim_expand_defaults(what);
case DKIM_HEADERNAMES:
@@ -661,4 +674,5 @@ expand_bad:
goto bad;
}
-#endif
+# endif /*!MACRO_PREDEF*/
+#endif /*!DISABLE_DKIM*/
diff --git a/src/src/dkim.h b/src/src/dkim.h
index 8b12e21ed..735a1162a 100644
--- a/src/src/dkim.h
+++ b/src/src/dkim.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge, 1995 - 2016 */
+/* Copyright (c) University of Cambridge, 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
void dkim_exim_init(void);
diff --git a/src/src/dkim_transport.c b/src/src/dkim_transport.c
index b61c41edc..f707595cb 100644
--- a/src/src/dkim_transport.c
+++ b/src/src/dkim_transport.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Transport shim for dkim signing */
@@ -37,9 +37,17 @@ return TRUE;
/* Send the file at in_fd down the output fd */
static BOOL
-dkt_send_file(int out_fd, int in_fd, off_t off, size_t size)
+dkt_send_file(int out_fd, int in_fd, off_t off
+#ifdef OS_SENDFILE
+ , size_t size
+#endif
+ )
{
+#ifdef OS_SENDFILE
DEBUG(D_transport) debug_printf("send file fd=%d size=%u\n", out_fd, (unsigned)(size - off));
+#else
+DEBUG(D_transport) debug_printf("send file fd=%d\n", out_fd);
+#endif
/*XXX should implement timeout, like transport_write_block_fd() ? */
@@ -297,7 +305,11 @@ if (options & topt_use_bdat)
if(dlen > 0 && !transport_write_block(tctx, dkim_signature->s, dlen, TRUE))
goto err;
-if (!dkt_send_file(tctx->u.fd, dkim_fd, 0, k_file_size))
+if (!dkt_send_file(tctx->u.fd, dkim_fd, 0
+#ifdef OS_SENDFILE
+ , k_file_size
+#endif
+ ))
{
save_errno = errno;
rc = FALSE;
diff --git a/src/src/dmarc.c b/src/src/dmarc.c
index 704b0c88d..6cb5b19fe 100644
--- a/src/src/dmarc.c
+++ b/src/src/dmarc.c
@@ -79,12 +79,12 @@ return eblock;
messages on the same SMTP connection (that come from the
same host with the same HELO string) */
-int dmarc_init()
+int
+dmarc_init()
{
int *netmask = NULL; /* Ignored */
int is_ipv6 = 0;
-char *tld_file = (dmarc_tld_file == NULL) ?
- DMARC_TLD_FILE : CS dmarc_tld_file;
+char *tld_file = dmarc_tld_file ? CS dmarc_tld_file : DMARC_TLD_FILE;
/* Set some sane defaults. Also clears previous results when
* multiple messages in one connection. */
@@ -505,11 +505,11 @@ if (!dmarc_history_file)
history_file_fd = log_create(dmarc_history_file);
if (history_file_fd < 0)
-{
+ {
log_write(0, LOG_MAIN|LOG_PANIC, "failure to create DMARC history file: %s",
dmarc_history_file);
return DMARC_HIST_FILE_ERR;
-}
+ }
/* Generate the contents of the history file */
history_buffer = string_sprintf(
@@ -575,31 +575,24 @@ else
return DMARC_HIST_OK;
}
+
uschar *
dmarc_exim_expand_query(int what)
{
if (dmarc_disable_verify || !dmarc_pctx)
return dmarc_exim_expand_defaults(what);
-switch(what)
- {
- case DMARC_VERIFY_STATUS:
- return(dmarc_status);
- default:
- return US"";
- }
+if (what == DMARC_VERIFY_STATUS)
+ return dmarc_status;
+return US"";
}
uschar *
dmarc_exim_expand_defaults(int what)
{
-switch(what)
- {
- case DMARC_VERIFY_STATUS:
- return dmarc_disable_verify ? US"off" : US"none";
- default:
- return US"";
- }
+if (what == DMARC_VERIFY_STATUS)
+ return dmarc_disable_verify ? US"off" : US"none";
+return US"";
}
uschar *
diff --git a/src/src/drtables.c b/src/src/drtables.c
index 10b4ae8e0..1d8155798 100644
--- a/src/src/drtables.c
+++ b/src/src/drtables.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/exigrep.src b/src/src/exigrep.src
index 1899267be..bdeffae82 100644
--- a/src/src/exigrep.src
+++ b/src/src/exigrep.src
@@ -7,7 +7,7 @@ BEGIN { pop @INC if $INC[-1] eq '.' };
use Pod::Usage;
use Getopt::Long;
-# Copyright (c) 2007-2015 University of Cambridge.
+# Copyright (c) 2007-2017 University of Cambridge.
# See the file NOTICE for conditions of use and distribution.
# Except when they appear in comments, the following placeholders in this
diff --git a/src/src/exim.c b/src/src/exim.c
index 7114b7529..7dd084534 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -658,12 +658,13 @@ Returns: does not return
*/
void
-exim_exit(int rc)
+exim_exit(int rc, const uschar * process)
{
search_tidyup();
DEBUG(D_any)
- debug_printf(">>>>>>>>>>>>>>>> Exim pid=%d terminating with rc=%d "
- ">>>>>>>>>>>>>>>>\n", (int)getpid(), rc);
+ debug_printf(">>>>>>>>>>>>>>>> Exim pid=%d %s%s%sterminating with rc=%d "
+ ">>>>>>>>>>>>>>>>\n", (int)getpid(),
+ process ? "(" : "", process, process ? ") " : "", rc);
exit(rc);
}
@@ -840,7 +841,8 @@ fprintf(f, "Support for:");
fprintf(f, " SOCKS");
#endif
#ifdef TCP_FASTOPEN
- fprintf(f, " TCP_Fast_Open");
+ deliver_init();
+ if (tcp_fastopen_ok) fprintf(f, " TCP_Fast_Open");
#endif
#ifdef EXPERIMENTAL_LMDB
fprintf(f, " Experimental_LMDB");
@@ -3194,10 +3196,10 @@ for (i = 1; i < argc; i++)
which sets the host protocol and host name */
if (*argrest == 0)
- {
- if (i+1 < argc) argrest = argv[++i]; else
+ if (i+1 < argc)
+ argrest = argv[++i];
+ else
{ badarg = TRUE; break; }
- }
if (*argrest != 0)
{
@@ -3211,9 +3213,7 @@ for (i = 1; i < argc; i++)
hn = Ustrchr(argrest, ':');
if (hn == NULL)
- {
received_protocol = argrest;
- }
else
{
int old_pool = store_pool;
@@ -3793,12 +3793,9 @@ NOTE: immediatly after opening the configuration file we change the working
directory to "/"! Later we change to $spool_directory. We do it there, because
during readconf_main() some expansion takes place already. */
-/* Store the initial cwd before we change directories */
-if ((initial_cwd = os_getcwd(NULL, 0)) == NULL)
- {
- perror("exim: can't get the current working directory");
- exit(EXIT_FAILURE);
- }
+/* Store the initial cwd before we change directories. Can be NULL if the
+dir has already been unlinked. */
+initial_cwd = os_getcwd(NULL, 0);
/* checking:
-be[m] expansion test -
@@ -3876,7 +3873,7 @@ else
}
/* At this point, we know if the user is privileged and some command-line
-options become possibly imperssible, depending upon the configuration file. */
+options become possibly impermissible, depending upon the configuration file. */
if (checking && commandline_checks_require_admin && !admin_user) {
fprintf(stderr, "exim: those command-line flags are set to require admin\n");
@@ -4482,7 +4479,7 @@ if (test_retry_arg >= 0)
if (test_retry_arg >= argc)
{
printf("-brt needs a domain or address argument\n");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
s1 = argv[test_retry_arg++];
s2 = NULL;
@@ -4588,7 +4585,7 @@ if (test_retry_arg >= 0)
printf("\n");
}
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
/* Handle a request to list one or more configuration options */
@@ -4612,14 +4609,14 @@ if (list_options)
}
else readconf_print(argv[i], NULL, flag_n);
}
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
if (list_config)
{
set_process_info("listing config");
readconf_print(US"config", NULL, flag_n);
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
@@ -4648,7 +4645,7 @@ if (msg_action_arg > 0 && msg_action != MSG_LOAD)
if (prod_requires_admin && !admin_user)
{
fprintf(stderr, "exim: Permission denied\n");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
set_process_info("delivering specified messages");
if (deliver_give_up) forced_delivery = deliver_force_thaw = TRUE;
@@ -4667,11 +4664,11 @@ if (msg_action_arg > 0 && msg_action != MSG_LOAD)
{
fprintf(stderr, "failed to fork delivery process for %s: %s\n", argv[i],
strerror(errno));
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
else wait(&status);
}
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
@@ -4690,7 +4687,7 @@ if (queue_interval == 0 && !daemon_listen)
else
set_process_info("running the queue (single queue run)");
queue_run(start_queue_run_id, stop_queue_run_id, FALSE);
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
@@ -4713,10 +4710,9 @@ for (i = 0;;)
/* If user name has not been set by -F, set it from the passwd entry
unless -f has been used to set the sender address by a trusted user. */
- if (originator_name == NULL)
+ if (!originator_name)
{
- if (sender_address == NULL ||
- (!trusted_caller && filter_test == FTEST_NONE))
+ if (!sender_address || (!trusted_caller && filter_test == FTEST_NONE))
{
uschar *name = US pw->pw_gecos;
uschar *amp = Ustrchr(name, '&');
@@ -4726,11 +4722,11 @@ for (i = 0;;)
replaced by a copy of the login name, and some even specify that
the first character should be upper cased, so that's what we do. */
- if (amp != NULL)
+ if (amp)
{
int loffset;
string_format(buffer, sizeof(buffer), "%.*s%n%s%s",
- amp - name, name, &loffset, originator_login, amp + 1);
+ (int)(amp - name), name, &loffset, originator_login, amp + 1);
buffer[loffset] = toupper(buffer[loffset]);
name = buffer;
}
@@ -4738,7 +4734,7 @@ for (i = 0;;)
/* If a pattern for matching the gecos field was supplied, apply
it and then expand the name string. */
- if (gecos_pattern != NULL && gecos_name != NULL)
+ if (gecos_pattern && gecos_name)
{
const pcre *re;
re = regex_must_compile(gecos_pattern, FALSE, TRUE); /* Use malloc */
@@ -4747,7 +4743,7 @@ for (i = 0;;)
{
uschar *new_name = expand_string(gecos_name);
expand_nmax = -1;
- if (new_name != NULL)
+ if (new_name)
{
DEBUG(D_receive) debug_printf("user name \"%s\" extracted from "
"gecos field \"%s\"\n", new_name, name);
@@ -4844,10 +4840,10 @@ if (test_rewrite_arg >= 0)
if (test_rewrite_arg >= argc)
{
printf("-brw needs an address argument\n");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
rewrite_test(argv[test_rewrite_arg]);
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
/* A locally-supplied message is considered to be coming from a local user
@@ -4962,7 +4958,7 @@ if (verify_address_mode || address_test_mode)
}
route_tidyup();
- exim_exit(exit_value);
+ exim_exit(exit_value, US"main");
}
/* Handle expansion checking. Either expand items on the command line, or read
@@ -5064,7 +5060,7 @@ if (expansion_test)
deliver_datafile = -1;
}
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
@@ -5158,7 +5154,7 @@ if (host_checking)
}
smtp_log_no_mail();
}
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
@@ -5322,7 +5318,7 @@ if (smtp_input)
if (!smtp_start_session())
{
mac_smtp_fflush();
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"smtp_start toplevel");
}
}
@@ -5437,14 +5433,14 @@ while (more)
cancel_cutthrough_connection(TRUE, US"receive dropped");
if (more) goto moreloop;
smtp_log_no_mail(); /* Log no mail if configured */
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"receive toplevel");
}
}
else
{
cancel_cutthrough_connection(TRUE, US"message setup dropped");
smtp_log_no_mail(); /* Log no mail if configured */
- exim_exit((rc == 0)? EXIT_SUCCESS : EXIT_FAILURE);
+ exim_exit(rc ? EXIT_FAILURE : EXIT_SUCCESS, US"msg setup toplevel");
}
}
@@ -5495,14 +5491,12 @@ while (more)
if (error_handling == ERRORS_STDERR)
{
fprintf(stderr, "exim: too many recipients\n");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
else
- {
return
moan_to_sender(ERRMESS_TOOMANYRECIP, NULL, NULL, stdin, TRUE)?
errors_sender_rc : EXIT_FAILURE;
- }
#ifdef SUPPORT_I18N
{
@@ -5531,7 +5525,7 @@ while (more)
{
fprintf(stderr, "exim: bad recipient address \"%s\": %s\n",
string_printing(list[i]), errmess);
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
else
{
@@ -5604,7 +5598,7 @@ while (more)
for real; when reading the headers of a message for filter testing,
it is TRUE if the headers were terminated by '.' and FALSE otherwise. */
- if (message_id[0] == 0) exim_exit(EXIT_FAILURE);
+ if (message_id[0] == 0) exim_exit(EXIT_FAILURE, US"main");
} /* Non-SMTP message reception */
/* If this is a filter testing run, there are headers in store, but
@@ -5649,7 +5643,7 @@ while (more)
if (chdir("/")) /* Get away from wherever the user is running this from */
{
DEBUG(D_receive) debug_printf("chdir(\"/\") failed\n");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, US"main");
}
/* Now we run either a system filter test, or a user filter test, or both.
@@ -5658,20 +5652,16 @@ while (more)
explicitly. */
if ((filter_test & FTEST_SYSTEM) != 0)
- {
if (!filter_runtest(filter_sfd, filter_test_sfile, TRUE, more))
- exim_exit(EXIT_FAILURE);
- }
+ exim_exit(EXIT_FAILURE, US"main");
memcpy(filter_sn, filter_n, sizeof(filter_sn));
if ((filter_test & FTEST_USER) != 0)
- {
if (!filter_runtest(filter_ufd, filter_test_ufile, FALSE, more))
- exim_exit(EXIT_FAILURE);
- }
+ exim_exit(EXIT_FAILURE, US"main");
- exim_exit(EXIT_SUCCESS);
+ exim_exit(EXIT_SUCCESS, US"main");
}
/* Else act on the result of message reception. We should not get here unless
@@ -5797,7 +5787,7 @@ while (more)
log_write(0, LOG_MAIN|LOG_PANIC,
"process %d crashed with signal %d while delivering %s",
(int)pid, status & 0x00ff, message_id);
- if (mua_wrapper && (status & 0xffff) != 0) exim_exit(EXIT_FAILURE);
+ if (mua_wrapper && (status & 0xffff) != 0) exim_exit(EXIT_FAILURE, US"main");
}
}
}
@@ -5829,54 +5819,9 @@ moreloop:
store_reset(reset_point);
}
-exim_exit(EXIT_SUCCESS); /* Never returns */
+exim_exit(EXIT_SUCCESS, US"main"); /* Never returns */
return 0; /* To stop compiler warning */
}
-/*************************************************
-* read as much as requested *
-*************************************************/
-
-/* The syscall read(2) doesn't always returns as much as we want. For
-several reasons it might get less. (Not talking about signals, as syscalls
-are restartable). When reading from a network or pipe connection the sender
-might send in smaller chunks, with delays between these chunks. The read(2)
-may return such a chunk.
-
-The more the writer writes and the smaller the pipe between write and read is,
-the more we get the chance of reading leass than requested. (See bug 2130)
-
-This function read(2)s until we got all the data we *requested*.
-
-Note: This function may block. Use it only if you're sure about the
-amount of data you will get.
-
-Argument:
- fd the file descriptor to read from
- buffer pointer to a buffer of size len
- len the requested(!) amount of bytes
-
-Returns: the amount of bytes read
-*/
-ssize_t
-readn(int fd, void *buffer, size_t len)
-{
- void *next = buffer;
- void *end = buffer + len;
-
- while (next < end)
- {
- ssize_t got = read(fd, next, end - next);
-
- /* I'm not sure if there are signals that can interrupt us,
- for now I assume the worst */
- if (got == -1 && errno == EINTR) continue;
- if (got <= 0) return next - buffer;
- next += got;
- }
-
- return len;
-}
-
/* End of exim.c */
diff --git a/src/src/exim.h b/src/src/exim.h
index f8dd9a9ba..770fd6333 100644
--- a/src/src/exim.h
+++ b/src/src/exim.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -597,9 +597,11 @@ default to EDQUOT if it exists, otherwise ENOSPC. */
# undef DISABLE_DNSSEC
#endif
-/* Wrapper around read(2) to read all the data we requested (BLOCKING) */
-ssize_t
-readn(int fd, void *buffer, size_t len);
+/* Some platforms (FreeBSD, OpenBSD, Solaris) do not seem to define this */
+
+#ifndef POLLRDHUP
+# define POLLRDHUP (POLLIN | POLLHUP)
+#endif
#endif
/* End of exim.h */
diff --git a/src/src/exim_dbmbuild.c b/src/src/exim_dbmbuild.c
index 7431bbc03..2dcc40f3e 100644
--- a/src/src/exim_dbmbuild.c
+++ b/src/src/exim_dbmbuild.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/exim_dbutil.c b/src/src/exim_dbutil.c
index fb455bbd3..4f3c4fadb 100644
--- a/src/src/exim_dbutil.c
+++ b/src/src/exim_dbutil.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/eximstats.src b/src/src/eximstats.src
index 727ee44b9..80ac93372 100644
--- a/src/src/eximstats.src
+++ b/src/src/eximstats.src
@@ -1,6 +1,6 @@
#!PERL_COMMAND
-# Copyright (c) 2001-2016 University of Cambridge.
+# Copyright (c) 2001-2017 University of Cambridge.
# See the file NOTICE for conditions of use and distribution.
# Perl script to generate statistics from one or more Exim log files.
diff --git a/src/src/exipick.src b/src/src/exipick.src
index 4751f7657..a1aa79dc0 100644
--- a/src/src/exipick.src
+++ b/src/src/exipick.src
@@ -1,4 +1,7 @@
#!PERL_COMMAND
+# Copyright (c) 2017 University of Cambridge.
+# See the file NOTICE for conditions of use and distribution.
+
# This variables should be set by the building process
my $spool = 'SPOOL_DIRECTORY'; # may be overridden later
@@ -387,7 +390,7 @@ sub process_criteria {
} else {
$c[-1]{cmp} .= $G::negate ? " ? 0 : 1" : " ? 1 : 0";
}
- # support the each_* psuedo variables. Steal the criteria off of the
+ # support the each_* pseudo variables. Steal the criteria off of the
# queue for special processing later
if ($c[-1]{var} =~ /^each_(recipients(_(un)?del)?)$/) {
my $var = $1;
@@ -1594,7 +1597,7 @@ TRUE if, under normal circumstances, Exim will not try to deliver the message.
=item S + $each_recipients
-This is a psuedo variable which allows you to apply a test against each address in $recipients individually. Whereas '$recipients =~ /@aol.com/' will match if any recipient address contains aol.com, '$each_recipients =~ /@aol.com$/' will only be true if every recipient matches that pattern. Note that this obeys --and or --or being set. Using it with --or is very similar to just matching against $recipients, but with the added benefit of being able to use anchors at the beginning and end of each recipient address.
+This is a pseudo variable which allows you to apply a test against each address in $recipients individually. Whereas '$recipients =~ /@aol.com/' will match if any recipient address contains aol.com, '$each_recipients =~ /@aol.com$/' will only be true if every recipient matches that pattern. Note that this obeys --and or --or being set. Using it with --or is very similar to just matching against $recipients, but with the added benefit of being able to use anchors at the beginning and end of each recipient address.
=item S + $each_recipients_del
diff --git a/src/src/expand.c b/src/src/expand.c
index 9cbfbe883..782467ff7 100644
--- a/src/src/expand.c
+++ b/src/src/expand.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -1484,14 +1484,14 @@ while (*s != 0)
/* If value2 is unset, just compute one number */
if (value2 < 0)
- s = string_sprintf("%d", total % value1);
+ s = string_sprintf("%lu", total % value1);
/* Otherwise do a div/mod hash */
else
{
total = total % (value1 * value2);
- s = string_sprintf("%d/%d", total/value2, total % value2);
+ s = string_sprintf("%lu/%lu", total/value2, total % value2);
}
*len = Ustrlen(s);
@@ -2821,18 +2821,21 @@ switch(cond_type)
uschar *save_iterate_item = iterate_item;
int (*compare)(const uschar *, const uschar *);
- DEBUG(D_expand) debug_printf_indent("condition: %s\n", name);
+ DEBUG(D_expand) debug_printf_indent("condition: %s item: %s\n", name, sub[0]);
tempcond = FALSE;
compare = cond_type == ECOND_INLISTI
? strcmpic : (int (*)(const uschar *, const uschar *)) strcmp;
while ((iterate_item = string_nextinlist(&list, &sep, NULL, 0)))
+ {
+ DEBUG(D_expand) debug_printf_indent(" compare %s\n", iterate_item);
if (compare(sub[0], iterate_item) == 0)
{
tempcond = TRUE;
break;
}
+ }
iterate_item = save_iterate_item;
}
@@ -3927,18 +3930,20 @@ while (*s != 0)
{
int len;
int newsize = 0;
- gstring * g;
+ gstring * g = NULL;
s = read_name(name, sizeof(name), s, US"_");
/* If this is the first thing to be expanded, release the pre-allocated
buffer. */
- if (yield && yield->ptr == 0)
+ if (!yield)
+ g = store_get(sizeof(gstring));
+ else if (yield->ptr == 0)
{
if (resetok) store_reset(yield);
yield = NULL;
- g = store_get(sizeof(gstring));
+ g = store_get(sizeof(gstring)); /* alloc _before_ calling find_variable() */
}
/* Header */
@@ -3993,7 +3998,8 @@ while (*s != 0)
yield->ptr = len;
yield->s = value;
}
- else yield = string_catn(yield, value, len);
+ else
+ yield = string_catn(yield, value, len);
continue;
}
@@ -6766,7 +6772,14 @@ while (*s != 0)
int start, end, domain; /* Not really used */
while (isspace(*sub)) sub++;
- if (*sub == '>') { *outsep = *++sub; ++sub; }
+ if (*sub == '>')
+ if (*outsep = *++sub) ++sub;
+ else
+ {
+ expand_string_message = string_sprintf("output separator "
+ "missing in expanding ${addresses:%s}", --sub);
+ goto EXPAND_FAILED;
+ }
parse_allow_group = TRUE;
for (;;)
@@ -7142,8 +7155,8 @@ while (*s != 0)
if (error != NULL)
{
expand_string_message = string_sprintf("error in expression "
- "evaluation: %s (after processing \"%.*s\")", error, sub-save_sub,
- save_sub);
+ "evaluation: %s (after processing \"%.*s\")", error,
+ (int)(sub-save_sub), save_sub);
goto EXPAND_FAILED;
}
sprintf(CS var_buffer, PR_EXIM_ARITH, n);
@@ -7422,13 +7435,15 @@ while (*s != 0)
{
int len;
int newsize = 0;
- gstring * g;
+ gstring * g = NULL;
- if (yield && yield->ptr == 0)
+ if (!yield)
+ g = store_get(sizeof(gstring));
+ else if (yield->ptr == 0)
{
if (resetok) store_reset(yield);
yield = NULL;
- g = store_get(sizeof(gstring));
+ g = store_get(sizeof(gstring)); /* alloc _before_ calling find_variable() */
}
if (!(value = find_variable(name, FALSE, skipping, &newsize)))
{
diff --git a/src/src/filter.c b/src/src/filter.c
index 0b3ef8b2d..01571218c 100644
--- a/src/src/filter.c
+++ b/src/src/filter.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -2322,7 +2322,7 @@ while (commands != NULL)
{
*error_pointer = string_sprintf("Bad time value for \"once_repeat\" "
"in mail or vacation command: %s",
- commands->args[mailarg_index_once_repeat]);
+ commands->args[mailarg_index_once_repeat].u);
return FF_ERROR;
}
}
diff --git a/src/src/functions.h b/src/src/functions.h
index 3bea9d2c1..1fe561f56 100644
--- a/src/src/functions.h
+++ b/src/src/functions.h
@@ -181,7 +181,7 @@ extern uschar *event_raise(uschar *, const uschar *, uschar *);
extern void msg_event_raise(const uschar *, const address_item *);
#endif
extern const uschar * exim_errstr(int);
-extern void exim_exit(int);
+extern void exim_exit(int, const uschar *);
extern void exim_nullstd(void);
extern void exim_setugid(uid_t, gid_t, BOOL, uschar *);
extern void exim_wait_tick(struct timeval *, int);
@@ -412,7 +412,7 @@ extern void smtp_get_cache(void);
extern int smtp_handle_acl_fail(int, int, uschar *, uschar *);
extern void smtp_log_no_mail(void);
extern void smtp_message_code(uschar **, int *, uschar **, uschar **, BOOL);
-extern void smtp_proxy_tls(uschar *, size_t, int, int);
+extern void smtp_proxy_tls(uschar *, size_t, int *, int);
extern BOOL smtp_read_response(smtp_inblock *, uschar *, int, int, int);
extern void smtp_respond(uschar *, int, BOOL, uschar *);
extern void smtp_notquit_exit(uschar *, uschar *, uschar *, ...);
@@ -478,6 +478,9 @@ extern int strcmpic(const uschar *, const uschar *);
extern int strncmpic(const uschar *, const uschar *, int);
extern uschar *strstric(uschar *, uschar *, BOOL);
+#ifdef EXIM_TFO_PROBE
+extern void tfo_probe(void);
+#endif
extern void timesince(struct timeval * diff, struct timeval * then);
extern void tls_modify_variables(tls_support *);
extern uschar *tod_stamp(int);
diff --git a/src/src/hash.c b/src/src/hash.c
index 19ab1efd0..ee4379648 100644
--- a/src/src/hash.c
+++ b/src/src/hash.c
@@ -1,8 +1,8 @@
/*
* Exim - an Internet mail transport agent
*
- * Copyright (C) 2016 Exim maintainers
- * Copyright (c) University of Cambridge 1995 - 2016
+ * Copyright (C) 2017 Exim maintainers
+ * Copyright (c) University of Cambridge 1995 - 2017
*
* Hash interface functions
*/
diff --git a/src/src/hash.h b/src/src/hash.h
index 337dc9910..79521f027 100644
--- a/src/src/hash.h
+++ b/src/src/hash.h
@@ -1,7 +1,7 @@
/*
* Exim - an Internet mail transport agent
*
- * Copyright (C) 2016 Exim maintainers
+ * Copyright (C) 2017 Exim maintainers
*
* Hash interface functions
*/
diff --git a/src/src/host.c b/src/src/host.c
index c02fc5532..05bde3fb2 100644
--- a/src/src/host.c
+++ b/src/src/host.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for finding hosts, either by gethostbyname(), gethostbyaddr(), or
diff --git a/src/src/imap_utf7.c b/src/src/imap_utf7.c
index 323225c23..dfa50a9e1 100644
--- a/src/src/imap_utf7.c
+++ b/src/src/imap_utf7.c
@@ -1,3 +1,6 @@
+/* Copyright (c) University of Cambridge 2017 */
+/* See the file NOTICE for conditions of use and distribution. */
+
#include "exim.h"
#ifdef SUPPORT_I18N
diff --git a/src/src/ip.c b/src/src/ip.c
index e11aef985..e85dcb23e 100644
--- a/src/src/ip.c
+++ b/src/src/ip.c
@@ -161,6 +161,26 @@ return bind(sock, (struct sockaddr *)&sin, s_len);
/*************************************************
+*************************************************/
+
+#ifdef EXIM_TFO_PROBE
+void
+tfo_probe(void)
+{
+# ifdef TCP_FASTOPEN
+int sock, backlog = 5;
+
+if ( (sock = socket(SOCK_STREAM, AF_INET, 0)) < 0
+ && setsockopt(sock, IPPROTO_TCP, TCP_FASTOPEN, &backlog, sizeof(backlog))
+ )
+ tcp_fastopen_ok = TRUE;
+close(sock);
+# endif
+}
+#endif
+
+
+/*************************************************
* Connect socket to remote host *
*************************************************/
@@ -175,7 +195,7 @@ Arguments:
address the remote address, in text form
port the remote port
timeout a timeout (zero for indefinite timeout)
- fastopen non-null iff TCP_FASTOPEN can be used; may indicate early-data to
+ fastopen_blob non-null iff TCP_FASTOPEN can be used; may indicate early-data to
be sent in SYN segment
Returns: 0 on success; -1 on failure, with errno set
@@ -183,7 +203,7 @@ Returns: 0 on success; -1 on failure, with errno set
int
ip_connect(int sock, int af, const uschar *address, int port, int timeout,
- const blob * fastopen)
+ const blob * fastopen_blob)
{
struct sockaddr_in s_in4;
struct sockaddr *s_ptr;
@@ -232,16 +252,17 @@ before it gets our ACK of its SYN,ACK - the latter is useful for
the SMTP banner. Other (than SMTP) cases of TCP connections can
possibly use the data-on-syn, so support that too. */
-if (fastopen)
+if (fastopen_blob && tcp_fastopen_ok)
{
- if ((rc = sendto(sock, fastopen->data, fastopen->len,
+ if ((rc = sendto(sock, fastopen_blob->data, fastopen_blob->len,
MSG_FASTOPEN | MSG_DONTWAIT, s_ptr, s_len)) >= 0)
/* seen for with-data, experimental TFO option, with-cookie case */
/* seen for with-data, proper TFO opt, with-cookie case */
{
- DEBUG(D_transport|D_v) debug_printf("TFO mode connection attempt, %s data\n",
- fastopen->len > 0 ? "with" : "no");
- tcp_out_fastopen = fastopen->len > 0 ? 2 : 1;
+ DEBUG(D_transport|D_v)
+ debug_printf("non-TFO mode connection attempt to %s, %lu data\n",
+ address, (unsigned long)fastopen_blob->len);
+ tcp_out_fastopen = fastopen_blob->len > 0 ? 2 : 1;
}
else if (errno == EINPROGRESS) /* expected if we had no cookie for peer */
/* seen for no-data, proper TFO option, both cookie-request and with-cookie cases */
@@ -251,14 +272,14 @@ if (fastopen)
/* ? older Experimental TFO option behaviour ? */
{ /* queue unsent data */
DEBUG(D_transport|D_v) debug_printf("TFO mode sendto, %s data: EINPROGRESS\n",
- fastopen->len > 0 ? "with" : "no");
- if (!fastopen->data)
+ fastopen_blob->len > 0 ? "with" : "no");
+ if (!fastopen_blob->data)
{
tcp_out_fastopen = 1; /* we tried; unknown if useful yet */
rc = 0;
}
else
- rc = send(sock, fastopen->data, fastopen->len, 0);
+ rc = send(sock, fastopen_blob->data, fastopen_blob->len, 0);
}
else if(errno == EOPNOTSUPP)
{
@@ -271,9 +292,12 @@ else
#endif
{
legacy_connect:
+ DEBUG(D_transport|D_v) if (fastopen_blob)
+ debug_printf("non-TFO mode connection attempt to %s, %lu data\n",
+ address, (unsigned long)fastopen_blob->len);
if ((rc = connect(sock, s_ptr, s_len)) >= 0)
- if ( fastopen && fastopen->data && fastopen->len
- && send(sock, fastopen->data, fastopen->len, 0) < 0)
+ if ( fastopen_blob && fastopen_blob->data && fastopen_blob->len
+ && send(sock, fastopen_blob->data, fastopen_blob->len, 0) < 0)
rc = -1;
}
@@ -320,7 +344,7 @@ Arguments:
timeout a timeout
connhost if not NULL, host_item to be filled in with connection details
errstr pointer for allocated string on error
- fastopen with SOCK_STREAM, if non-null, request TCP Fast Open.
+ fastopen_blob with SOCK_STREAM, if non-null, request TCP Fast Open.
Additionally, optional early-data to send
Return:
@@ -328,7 +352,7 @@ Return:
*/
int
ip_connectedsocket(int type, const uschar * hostname, int portlo, int porthi,
- int timeout, host_item * connhost, uschar ** errstr, const blob * fastopen)
+ int timeout, host_item * connhost, uschar ** errstr, const blob * fastopen_blob)
{
int namelen, port;
host_item shost;
@@ -389,7 +413,7 @@ for (h = &shost; h; h = h->next)
}
for(port = portlo; port <= porthi; port++)
- if (ip_connect(fd, af, h->address, port, timeout, fastopen) == 0)
+ if (ip_connect(fd, af, h->address, port, timeout, fastopen_blob) == 0)
{
if (fd != fd6) close(fd6);
if (fd != fd4) close(fd4);
diff --git a/src/src/local_scan.h b/src/src/local_scan.h
index c03d87032..0aa6ef403 100644
--- a/src/src/local_scan.h
+++ b/src/src/local_scan.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This file is the header that is the only Exim header to be included in the
diff --git a/src/src/log.c b/src/src/log.c
index fd72bb1ad..db82925e5 100644
--- a/src/src/log.c
+++ b/src/src/log.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for writing log files. The code for maintaining datestamped
@@ -232,7 +232,7 @@ if (s1)
}
if (receive_call_bombout) receive_bomb_out(NULL, s2); /* does not return */
if (smtp_input) smtp_closedown(s2);
-exim_exit(EXIT_FAILURE);
+exim_exit(EXIT_FAILURE, NULL);
}
@@ -761,7 +761,7 @@ if (!log_buffer)
if (!(log_buffer = US malloc(LOG_BUFFER_SIZE)))
{
fprintf(stderr, "exim: failed to get store for log buffer\n");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, NULL);
}
/* If we haven't already done so, inspect the setting of log_file_path to
@@ -958,7 +958,7 @@ if (!really_exim || log_testing_mode)
else
fprintf(log_stderr, "%s", CS log_buffer);
}
- if ((flags & LOG_PANIC_DIE) == LOG_PANIC_DIE) exim_exit(EXIT_FAILURE);
+ if ((flags & LOG_PANIC_DIE) == LOG_PANIC_DIE) exim_exit(EXIT_FAILURE, US"");
return;
}
diff --git a/src/src/lookups/dbmdb.c b/src/src/lookups/dbmdb.c
index 4b03c35f1..090be4f26 100644
--- a/src/src/lookups/dbmdb.c
+++ b/src/src/lookups/dbmdb.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/lookups/dnsdb.c b/src/src/lookups/dnsdb.c
index 9e95b9038..dfecb8166 100644
--- a/src/src/lookups/dnsdb.c
+++ b/src/src/lookups/dnsdb.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/lookups/ibase.c b/src/src/lookups/ibase.c
index 58bced201..acf9787a1 100644
--- a/src/src/lookups/ibase.c
+++ b/src/src/lookups/ibase.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* The code in this module was contributed by Ard Biesheuvel. */
diff --git a/src/src/lookups/ldap.c b/src/src/lookups/ldap.c
index 8d6ac2674..235af0f93 100644
--- a/src/src/lookups/ldap.c
+++ b/src/src/lookups/ldap.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Many thanks to Stuart Lynne for contributing the original code for this
diff --git a/src/src/lookups/lf_functions.h b/src/src/lookups/lf_functions.h
index 210aae4d5..b989f8459 100644
--- a/src/src/lookups/lf_functions.h
+++ b/src/src/lookups/lf_functions.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Header for the functions that are shared by the lookups */
diff --git a/src/src/lookups/lf_quote.c b/src/src/lookups/lf_quote.c
index 1541d0d16..83eac33b2 100644
--- a/src/src/lookups/lf_quote.c
+++ b/src/src/lookups/lf_quote.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/lookups/lf_sqlperform.c b/src/src/lookups/lf_sqlperform.c
index 6d4f7a798..5687fabe9 100644
--- a/src/src/lookups/lf_sqlperform.c
+++ b/src/src/lookups/lf_sqlperform.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -98,7 +98,7 @@ else
return DEFER;
}
- qserverlist = string_sprintf("%.*s", ss - s, s);
+ qserverlist = string_sprintf("%.*s", (int)(ss - s), s);
qsep = 0;
while ((qserver = string_nextinlist(&qserverlist, &qsep, qbuffer,
diff --git a/src/src/lookups/lmdb.c b/src/src/lookups/lmdb.c
index 55f273fd9..48ad489f9 100644
--- a/src/src/lookups/lmdb.c
+++ b/src/src/lookups/lmdb.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 2016 */
+/* Copyright (c) University of Cambridge 2016 - 2017*/
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c
index 745856d02..b236d8b72 100644
--- a/src/src/lookups/lsearch.c
+++ b/src/src/lookups/lsearch.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/lookups/mysql.c b/src/src/lookups/mysql.c
index 53789133e..ff1ef8325 100644
--- a/src/src/lookups/mysql.c
+++ b/src/src/lookups/mysql.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Thanks to Paul Kelly for contributing the original code for these
@@ -13,7 +13,53 @@ functions. */
#include "lf_functions.h"
#include <mysql.h> /* The system header */
-#include <mysql_version.h>
+
+/* We define symbols for *_VERSION_ID (numeric), *_VERSION_STR (char*)
+and *_BASE_STR (char*). It's a bit of guesswork. Especially for mariadb
+with versions before 10.2, as they do not define there there specific symbols.
+*/
+
+/* Newer (>= 10.2) MariaDB */
+#if defined MARIADB_VERSION_ID
+#define EXIM_MxSQL_VERSION_ID MARIADB_VERSION_ID
+
+/* MySQL defines MYSQL_VERSION_ID, and MariaDB does so */
+/* https://dev.mysql.com/doc/refman/5.7/en/c-api-server-client-versions.html */
+#elif defined LIBMYSQL_VERSION_ID
+#define EXIM_MxSQL_VERSION_ID LIBMYSQL_VERSION_ID
+#elif defined MYSQL_VERSION_ID
+#define EXIM_MxSQL_VERSION_ID MYSQL_VERSION_ID
+
+#else
+#define EXIM_MYSQL_VERSION_ID 0
+#endif
+
+/* Newer (>= 10.2) MariaDB */
+#ifdef MARIADB_CLIENT_VERSION_STR
+#define EXIM_MxSQL_VERSION_STR MARIADB_CLIENT_VERSION_STR
+
+/* Mysql uses MYSQL_SERVER_VERSION */
+#elif defined LIBMYSQL_VERSION
+#define EXIM_MxSQL_VERSION_STR LIBMYSQL_VERSION
+#elif defined MYSQL_SERVER_VERSION
+#define EXIM_MxSQL_VERSION_STR MYSQL_SERVER_VERSION
+
+#else
+#define EXIM_MxSQL_VERSION_STR "unknown"
+#endif
+
+#if defined MARIADB_BASE_VERSION
+#define EXIM_MxSQL_BASE_STR MARIADB_BASE_VERSION
+
+#elif defined MARIADB_PACKAGE_VERSION
+#define EXIM_MxSQL_BASE_STR "mariadb"
+
+#elif defined MYSQL_BASE_VERSION
+#define EXIM_MxSQL_BASE_STR MYSQL_BASE_VERSION
+
+#else
+#define EXIM_MxSQL_BASE_STR "n.A."
+#endif
/* Structure and anchor for caching connections. */
@@ -432,10 +478,10 @@ return quoted;
void
mysql_version_report(FILE *f)
{
-fprintf(f, "Library version: MySQL: Compile: %s [%s]\n"
- " Runtime: %s\n",
- MYSQL_SERVER_VERSION, MYSQL_COMPILATION_COMMENT,
- mysql_get_client_info());
+fprintf(f, "Library version: MySQL: Compile: %lu %s [%s]\n"
+ " Runtime: %lu %s\n",
+ (long)EXIM_MxSQL_VERSION_ID, EXIM_MxSQL_VERSION_STR, EXIM_MxSQL_BASE_STR,
+ mysql_get_client_version(), mysql_get_client_info());
#ifdef DYNLOOKUP
fprintf(f, " Exim version %s\n", EXIM_VERSION_STR);
#endif
diff --git a/src/src/lookups/nisplus.c b/src/src/lookups/nisplus.c
index 03c343103..e4184bbd6 100644
--- a/src/src/lookups/nisplus.c
+++ b/src/src/lookups/nisplus.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/lookups/pgsql.c b/src/src/lookups/pgsql.c
index ef8f0997d..0b771f59c 100644
--- a/src/src/lookups/pgsql.c
+++ b/src/src/lookups/pgsql.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Thanks to Petr Cech for contributing the original code for these
diff --git a/src/src/lookups/redis.c b/src/src/lookups/redis.c
index e8989ca3a..ad34d388c 100644
--- a/src/src/lookups/redis.c
+++ b/src/src/lookups/redis.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/lookups/sqlite.c b/src/src/lookups/sqlite.c
index 0df853736..ee8930d3c 100644
--- a/src/src/lookups/sqlite.c
+++ b/src/src/lookups/sqlite.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/macro_predef.c b/src/src/macro_predef.c
index 6b3157fbe..d13248ce4 100644
--- a/src/src/macro_predef.c
+++ b/src/src/macro_predef.c
@@ -21,7 +21,7 @@ uschar * syslog_facility_str;
/******************************************************************************/
void
-builtin_macro_create(const uschar * name)
+builtin_macro_create_var(const uschar * name, const uschar * val)
{
printf ("static macro_item p%d = { ", mp_index);
if (mp_index == 0)
@@ -29,12 +29,20 @@ if (mp_index == 0)
else
printf(".next=&p%d,", mp_index-1);
-printf(" .command_line=FALSE, .namelen=%d, .replen=1,"
- " .name=US\"%s\", .replacement=US\"y\" };\n",
- Ustrlen(name), CS name);
+printf(" .command_line=FALSE, .namelen=%d, .replen=%d,"
+ " .name=US\"%s\", .replacement=US\"%s\" };\n",
+ Ustrlen(name), Ustrlen(val), CS name, CS val);
mp_index++;
}
+
+void
+builtin_macro_create(const uschar * name)
+{
+builtin_macro_create_var(name, US"y");
+}
+
+
void
spf(uschar * buf, int len, const uschar * fmt, ...)
{
@@ -265,6 +273,14 @@ options_transports();
options_auths();
}
+static void
+params(void)
+{
+#ifndef DISABLE_DKIM
+params_dkim();
+#endif
+}
+
int
main(void)
@@ -272,6 +288,7 @@ main(void)
printf("#include \"exim.h\"\n");
features();
options();
+params();
printf("macro_item * macros = &p%d;\n", mp_index-1);
printf("macro_item * mlast = &p0;\n");
diff --git a/src/src/macro_predef.h b/src/src/macro_predef.h
index 1d3ba7f74..00d9537ca 100644
--- a/src/src/macro_predef.h
+++ b/src/src/macro_predef.h
@@ -9,10 +9,12 @@
extern void spf(uschar *, int, const uschar *, ...);
extern void builtin_macro_create(const uschar *);
+extern void builtin_macro_create_var(const uschar *, const uschar *);
extern void options_from_list(optionlist *, unsigned, const uschar *, uschar *);
extern void options_main(void);
extern void options_routers(void);
extern void options_transports(void);
extern void options_auths(void);
+extern void params_dkim(void);
diff --git a/src/src/macros.h b/src/src/macros.h
index eaa7f21ef..764c65b8d 100644
--- a/src/src/macros.h
+++ b/src/src/macros.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -107,8 +107,8 @@ don't make the file descriptors two-way. */
/* Debugging control */
-#define DEBUG(x) if ((debug_selector & (x)) != 0)
-#define HDEBUG(x) if (host_checking || (debug_selector & (x)) != 0)
+#define DEBUG(x) if (debug_selector & (x))
+#define HDEBUG(x) if (host_checking || (debug_selector & (x)))
#define PTR_CHK(ptr) \
do { \
@@ -224,9 +224,9 @@ enum { tod_log, tod_log_bare, tod_log_zone, tod_log_datestamp_daily,
/* For identifying types of driver */
enum {
- DTYPE_NONE,
- DTYPE_ROUTER,
- DTYPE_TRANSPORT
+ EXIM_DTYPE_NONE,
+ EXIM_DTYPE_ROUTER,
+ EXIM_DTYPE_TRANSPORT
};
/* Error numbers for generating error messages when reading a message on the
diff --git a/src/src/malware.c b/src/src/malware.c
index ccb7e6d20..9a98c9957 100644
--- a/src/src/malware.c
+++ b/src/src/malware.c
@@ -4,7 +4,7 @@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003 - 2015
* License: GPL
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
*/
/* Code for calling virus (malware) scanners. Called from acl.c. */
@@ -147,10 +147,10 @@ uses the returned in_addr to get a second connection to the same system.
*/
static inline int
m_tcpsocket(const uschar * hostname, unsigned int port,
- host_item * host, uschar ** errstr, const blob * fastopen)
+ host_item * host, uschar ** errstr, const blob * fastopen_blob)
{
return ip_connectedsocket(SOCK_STREAM, hostname, port, port, 5,
- host, errstr, fastopen);
+ host, errstr, fastopen_blob);
}
static int
diff --git a/src/src/match.c b/src/src/match.c
index 93777c6fe..c21711410 100644
--- a/src/src/match.c
+++ b/src/src/match.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for matching strings */
diff --git a/src/src/mime.c b/src/src/mime.c
index 36737e9eb..45cec29a5 100644
--- a/src/src/mime.c
+++ b/src/src/mime.c
@@ -4,7 +4,7 @@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004, 2015
* License: GPL
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
*/
#include "exim.h"
diff --git a/src/src/moan.c b/src/src/moan.c
index 6d922a5a4..0228dcd4e 100644
--- a/src/src/moan.c
+++ b/src/src/moan.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for sending messages to sender or to mailmaster. */
@@ -587,7 +587,7 @@ fprintf(stderr, "%d previous message%s successfully processed.\n",
fprintf(stderr, "The rest of the batch was abandoned.\n");
-exim_exit(yield);
+exim_exit(yield, US"batch");
}
diff --git a/src/src/mytypes.h b/src/src/mytypes.h
index a74705739..2d7134d2b 100644
--- a/src/src/mytypes.h
+++ b/src/src/mytypes.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/os.c b/src/src/os.c
index 6eadc38b1..592b76186 100644
--- a/src/src/os.c
+++ b/src/src/os.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#ifdef STAND_ALONE
diff --git a/src/src/parse.c b/src/src/parse.c
index 68a83b0e8..1b44146c5 100644
--- a/src/src/parse.c
+++ b/src/src/parse.c
@@ -745,7 +745,7 @@ if (*s == '<')
*errorptr = s[-1] == 0
? US"'>' missing at end of address"
: string_sprintf("malformed address: %.32s may not follow %.*s",
- s-1, s - US mailbox - 1, mailbox);
+ s-1, (int)(s - US mailbox - 1), mailbox);
goto PARSE_FAILED;
}
@@ -798,7 +798,7 @@ if (*s != 0)
else
{
*errorptr = string_sprintf("malformed address: %.32s may not follow %.*s",
- s, s - US mailbox, mailbox);
+ s, (int)(s - US mailbox), mailbox);
goto PARSE_FAILED;
}
}
diff --git a/src/src/pdkim/Makefile b/src/src/pdkim/Makefile
index 10631ceaa..c1d7db868 100644
--- a/src/src/pdkim/Makefile
+++ b/src/src/pdkim/Makefile
@@ -1,4 +1,5 @@
# Make file for building the pdkim library.
+# Copyright (c) The Exim Maintainers 2017
OBJ = pdkim.o signing.o
diff --git a/src/src/pdkim/crypt_ver.h b/src/src/pdkim/crypt_ver.h
index 439d99b3a..bf620366f 100644
--- a/src/src/pdkim/crypt_ver.h
+++ b/src/src/pdkim/crypt_ver.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2016 */
+/* Copyright (c) Jeremy Harris 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Signing and hashing routine selection for PDKIM */
diff --git a/src/src/pdkim/pdkim.c b/src/src/pdkim/pdkim.c
index 06d455d7d..1420b1a79 100644
--- a/src/src/pdkim/pdkim.c
+++ b/src/src/pdkim/pdkim.c
@@ -51,14 +51,6 @@
#define PDKIM_MAX_HEADERS 512
#define PDKIM_MAX_BODY_LINE_LEN 16384
#define PDKIM_DNS_TXT_MAX_NAMELEN 1024
-#define PDKIM_DEFAULT_SIGN_HEADERS "From:Sender:Reply-To:Subject:Date:"\
- "Message-ID:To:Cc:MIME-Version:Content-Type:"\
- "Content-Transfer-Encoding:Content-ID:"\
- "Content-Description:Resent-Date:Resent-From:"\
- "Resent-Sender:Resent-To:Resent-Cc:"\
- "Resent-Message-ID:In-Reply-To:References:"\
- "List-Id:List-Help:List-Unsubscribe:"\
- "List-Subscribe:List-Post:List-Owner:List-Archive"
/* -------------------------------------------------------------------------- */
struct pdkim_stringlist {
diff --git a/src/src/pdkim/pdkim.h b/src/src/pdkim/pdkim.h
index a34999ad8..067c574f2 100644
--- a/src/src/pdkim/pdkim.h
+++ b/src/src/pdkim/pdkim.h
@@ -26,6 +26,15 @@
#include "../blob.h"
#include "../hash.h"
+#define PDKIM_DEFAULT_SIGN_HEADERS "From:Sender:Reply-To:Subject:Date:"\
+ "Message-ID:To:Cc:MIME-Version:Content-Type:"\
+ "Content-Transfer-Encoding:Content-ID:"\
+ "Content-Description:Resent-Date:Resent-From:"\
+ "Resent-Sender:Resent-To:Resent-Cc:"\
+ "Resent-Message-ID:In-Reply-To:References:"\
+ "List-Id:List-Help:List-Unsubscribe:"\
+ "List-Subscribe:List-Post:List-Owner:List-Archive"
+
/* -------------------------------------------------------------------------- */
/* Length of the preallocated buffer for the "answer" from the dns/txt
callback function. This should match the maximum RDLENGTH from DNS. */
diff --git a/src/src/pdkim/pdkim_hash.h b/src/src/pdkim/pdkim_hash.h
index 008f277b3..8ea550290 100644
--- a/src/src/pdkim/pdkim_hash.h
+++ b/src/src/pdkim/pdkim_hash.h
@@ -1,7 +1,7 @@
/*
* PDKIM - a RFC4871 (DKIM) implementation
*
- * Copyright (C) 2016 Exim maintainers
+ * Copyright (C) 2017 Exim maintainers
*
* Hash interface functions
*/
diff --git a/src/src/pdkim/signing.c b/src/src/pdkim/signing.c
index 1396b194e..58edb4cdd 100644
--- a/src/src/pdkim/signing.c
+++ b/src/src/pdkim/signing.c
@@ -1,7 +1,7 @@
/*
* PDKIM - a RFC4871 (DKIM) implementation
*
- * Copyright (C) 2016 Exim maintainers
+ * Copyright (C) 2017 Exim maintainers
*
* signing/verification interface
*/
diff --git a/src/src/pdkim/signing.h b/src/src/pdkim/signing.h
index 61e241e5d..61a1a0ad4 100644
--- a/src/src/pdkim/signing.h
+++ b/src/src/pdkim/signing.h
@@ -1,7 +1,7 @@
/*
* PDKIM - a RFC4871 (DKIM) implementation
*
- * Copyright (C) 2016 Exim maintainers
+ * Copyright (C) 2017 Exim maintainers
*
* RSA signing/verification interface
*/
diff --git a/src/src/perl.c b/src/src/perl.c
index 6966d73b5..faaebf302 100644
--- a/src/src/perl.c
+++ b/src/src/perl.c
@@ -3,6 +3,7 @@
*************************************************/
/* Copyright (c) 1998 Malcolm Beattie */
+/* Copyright (C) 2017 Exim maintainers */
/* Modified by PH to get rid of the "na" usage, March 1999.
Modified further by PH for general tidying for Exim 4.
diff --git a/src/src/queue.c b/src/src/queue.c
index 8b0494b26..f94681197 100644
--- a/src/src/queue.c
+++ b/src/src/queue.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions that operate on the input queue. */
@@ -80,7 +80,11 @@ queue_filename *first = NULL;
queue_filename **append = &first;
while (a && b)
- if (Ustrcmp(a->text, b->text) < 0)
+ {
+ int d;
+ if ((d = Ustrncmp(a->text, b->text, 6)) == 0)
+ d = Ustrcmp(a->text + 14, b->text + 14);
+ if (d < 0)
{
*append = a;
append= &a->next;
@@ -92,6 +96,7 @@ while (a && b)
append= &b->next;
b = b->next;
}
+ }
*append = a ? a : b;
return first;
@@ -278,7 +283,7 @@ for (; i <= *subcount; i++)
if (root[j])
{
next = merge_queue_lists(next, root[j]);
- root[j] = (j == LOG2_MAXNODES - 1)? next : NULL;
+ root[j] = j == LOG2_MAXNODES - 1 ? next : NULL;
}
else
{
@@ -450,8 +455,8 @@ subsequent iterations.
When the first argument of queue_get_spool_list() is -1 (for queue_run_in_
order), it scans all directories and makes a single message list. */
-for (i = (queue_run_in_order? -1 : 0);
- i <= (queue_run_in_order? -1 : subcount);
+for (i = queue_run_in_order ? -1 : 0;
+ i <= (queue_run_in_order ? -1 : subcount);
i++)
{
queue_filename *f;
diff --git a/src/src/rda.c b/src/src/rda.c
index fb3edac17..80e210447 100644
--- a/src/src/rda.c
+++ b/src/src/rda.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This module contains code for extracting addresses from a forwarding list
diff --git a/src/src/readconf.c b/src/src/readconf.c
index 1cbbd83ef..b34372c44 100644
--- a/src/src/readconf.c
+++ b/src/src/readconf.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for reading the configuration file, and for displaying
@@ -3271,9 +3271,8 @@ if (trusted_config && Ustrcmp(filename, US"/dev/null"))
letter. If we see something starting with an upper case letter, it is taken as
a macro definition. */
-while ((s = get_config_line()) != NULL)
+while ((s = get_config_line()))
{
-
if (config_lineno == 1 && Ustrstr(s, "\xef\xbb\xbf") == s)
log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN,
"found unexpected BOM (Byte Order Mark)");
@@ -3441,7 +3440,7 @@ if (*log_file_path != 0)
openlog(). Default is LOG_MAIL set in globals.c. Allow the user to omit the
leading "log_". */
-if (syslog_facility_str != NULL)
+if (syslog_facility_str)
{
int i;
uschar *s = syslog_facility_str;
@@ -3451,27 +3450,22 @@ if (syslog_facility_str != NULL)
s += 4;
for (i = 0; i < syslog_list_size; i++)
- {
if (strcmpic(s, syslog_list[i].name) == 0)
{
syslog_facility = syslog_list[i].value;
break;
}
- }
if (i >= syslog_list_size)
- {
log_write(0, LOG_PANIC_DIE|LOG_CONFIG,
"failed to interpret syslog_facility \"%s\"", syslog_facility_str);
- }
}
/* Expand pid_file_path */
if (*pid_file_path != 0)
{
- s = expand_string(pid_file_path);
- if (s == NULL)
+ if (!(s = expand_string(pid_file_path)))
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "failed to expand pid_file_path "
"\"%s\": %s", pid_file_path, expand_string_message);
pid_file_path = s;
@@ -3479,7 +3473,7 @@ if (*pid_file_path != 0)
/* Set default value of process_log_path */
-if (process_log_path == NULL || *process_log_path =='\0')
+if (!process_log_path || *process_log_path =='\0')
process_log_path = string_sprintf("%s/exim-process.info", spool_directory);
/* Compile the regex for matching a UUCP-style "From_" line in an incoming
@@ -3489,23 +3483,19 @@ regex_From = regex_must_compile(uucp_from_pattern, FALSE, TRUE);
/* Unpick the SMTP rate limiting options, if set */
-if (smtp_ratelimit_mail != NULL)
- {
+if (smtp_ratelimit_mail)
unpick_ratelimit(smtp_ratelimit_mail, &smtp_rlm_threshold,
&smtp_rlm_base, &smtp_rlm_factor, &smtp_rlm_limit);
- }
-if (smtp_ratelimit_rcpt != NULL)
- {
+if (smtp_ratelimit_rcpt)
unpick_ratelimit(smtp_ratelimit_rcpt, &smtp_rlr_threshold,
&smtp_rlr_base, &smtp_rlr_factor, &smtp_rlr_limit);
- }
/* The qualify domains default to the primary host name */
-if (qualify_domain_sender == NULL)
+if (!qualify_domain_sender)
qualify_domain_sender = primary_hostname;
-if (qualify_domain_recipient == NULL)
+if (!qualify_domain_recipient)
qualify_domain_recipient = qualify_domain_sender;
/* Setting system_filter_user in the configuration sets the gid as well if a
@@ -3514,7 +3504,7 @@ name is given, but a numerical value does not. */
if (system_filter_uid_set && !system_filter_gid_set)
{
struct passwd *pw = getpwuid(system_filter_uid);
- if (pw == NULL)
+ if (!pw)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "Failed to look up uid %ld",
(long int)system_filter_uid);
system_filter_gid = pw->pw_gid;
@@ -3524,14 +3514,14 @@ if (system_filter_uid_set && !system_filter_gid_set)
/* If the errors_reply_to field is set, check that it is syntactically valid
and ensure it contains a domain. */
-if (errors_reply_to != NULL)
+if (errors_reply_to)
{
uschar *errmess;
int start, end, domain;
uschar *recipient = parse_extract_address(errors_reply_to, &errmess,
&start, &end, &domain, FALSE);
- if (recipient == NULL)
+ if (!recipient)
log_write(0, LOG_PANIC_DIE|LOG_CONFIG,
"error in errors_reply_to (%s): %s", errors_reply_to, errmess);
@@ -3553,12 +3543,13 @@ if (smtp_accept_max == 0 &&
so that it can be computed from the host name, for example. We do this last
so as to ensure that everything else is set up before the expansion. */
-if (host_number_string != NULL)
+if (host_number_string)
{
long int n;
uschar *end;
uschar *s = expand_string(host_number_string);
- if (s == NULL)
+
+ if (!s)
log_write(0, LOG_MAIN|LOG_PANIC_DIE,
"failed to expand localhost_number \"%s\": %s",
host_number_string, expand_string_message);
@@ -3577,11 +3568,10 @@ if (host_number_string != NULL)
#ifdef SUPPORT_TLS
/* If tls_verify_hosts is set, tls_verify_certificates must also be set */
-if ((tls_verify_hosts != NULL || tls_try_verify_hosts != NULL) &&
- tls_verify_certificates == NULL)
+if ((tls_verify_hosts || tls_try_verify_hosts) && !tls_verify_certificates)
log_write(0, LOG_PANIC_DIE|LOG_CONFIG,
"tls_%sverify_hosts is set, but tls_verify_certificates is not set",
- (tls_verify_hosts != NULL)? "" : "try_");
+ tls_verify_hosts ? "" : "try_");
/* This also checks that the library linkage is working and we can call
routines in it, so call even if tls_require_ciphers is unset */
diff --git a/src/src/receive.c b/src/src/receive.c
index 4fb0c26cb..31402925d 100644
--- a/src/src/receive.c
+++ b/src/src/receive.c
@@ -190,7 +190,7 @@ if (STATVFS(CS path, &statbuf) != 0)
log_write(0, LOG_MAIN|LOG_PANIC, "cannot accept message: failed to stat "
"%s directory %s: %s", name, path, strerror(errno));
smtp_closedown(US"spool or log directory problem");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, NULL);
}
*inodeptr = (statbuf.F_FILES > 0)? statbuf.F_FAVAIL : -1;
@@ -343,7 +343,7 @@ if (!already_bombing_out)
/* Exit from the program (non-BSMTP cases) */
-exim_exit(EXIT_FAILURE);
+exim_exit(EXIT_FAILURE, NULL);
}
@@ -1142,7 +1142,7 @@ if (error_handling == ERRORS_SENDER)
else
fprintf(stderr, "exim: %s%s\n", text2, text1); /* Sic */
(void)fclose(f);
-exim_exit(error_rc);
+exim_exit(error_rc, US"");
}
@@ -2620,8 +2620,9 @@ letter and it is not used internally.
NOTE: If ever the format of message ids is changed, the regular expression for
checking that a string is in this format must be updated in a corresponding
way. It appears in the initializing code in exim.c. The macro MESSAGE_ID_LENGTH
-must also be changed to reflect the correct string length. Then, of course,
-other programs that rely on the message id format will need updating too. */
+must also be changed to reflect the correct string length. The queue-sort code
+needs to know the layout. Then, of course, other programs that rely on the
+message id format will need updating too. */
Ustrncpy(message_id, string_base62((long int)(message_id_tv.tv_sec)), 6);
message_id[6] = '-';
@@ -3323,7 +3324,7 @@ if (extract_recip && (bad_addresses != NULL || recipients_count == 0))
{
Uunlink(spool_name);
(void)fclose(data_file);
- exim_exit(error_rc);
+ exim_exit(error_rc, US"receiving");
}
}
diff --git a/src/src/regex.c b/src/src/regex.c
index 3560bef52..605ae5d25 100644
--- a/src/src/regex.c
+++ b/src/src/regex.c
@@ -4,7 +4,7 @@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-2015
* License: GPL
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
*/
/* Code for matching regular expressions against headers and body.
diff --git a/src/src/retry.c b/src/src/retry.c
index 91c27104a..40cc2e98f 100644
--- a/src/src/retry.c
+++ b/src/src/retry.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with retrying unsuccessful deliveries. */
diff --git a/src/src/rewrite.c b/src/src/rewrite.c
index 830d2bb8d..fe6369f16 100644
--- a/src/src/rewrite.c
+++ b/src/src/rewrite.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with rewriting headers */
@@ -309,7 +309,7 @@ for (rule = rewrite_rules;
start = Ustrlen(pf1) + start + new - p1;
end = start + Ustrlen(newparsed);
- new = string_sprintf("%s%.*s%s", pf1, p2 - p1, p1, pf2);
+ new = string_sprintf("%s%.*s%s", pf1, (int)(p2 - p1), p1, pf2);
}
/* Now accept the whole thing */
diff --git a/src/src/rfc2047.c b/src/src/rfc2047.c
index cb4a661bf..6eb567521 100644
--- a/src/src/rfc2047.c
+++ b/src/src/rfc2047.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This file contains a function for decoding message header lines that may
diff --git a/src/src/route.c b/src/src/route.c
index 1b9676f3f..c112169f7 100644
--- a/src/src/route.c
+++ b/src/src/route.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions concerned with routing, and the list of generic router options. */
diff --git a/src/src/routers/accept.c b/src/src/routers/accept.c
index b3a54e7cb..9d230bf20 100644
--- a/src/src/routers/accept.c
+++ b/src/src/routers/accept.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/routers/dnslookup.c b/src/src/routers/dnslookup.c
index 9e230b1be..5017efbee 100644
--- a/src/src/routers/dnslookup.c
+++ b/src/src/routers/dnslookup.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/routers/ipliteral.c b/src/src/routers/ipliteral.c
index 5cd6da52a..bc16b1b98 100644
--- a/src/src/routers/ipliteral.c
+++ b/src/src/routers/ipliteral.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/routers/iplookup.c b/src/src/routers/iplookup.c
index 3592809ea..34edf439d 100644
--- a/src/src/routers/iplookup.c
+++ b/src/src/routers/iplookup.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/routers/manualroute.c b/src/src/routers/manualroute.c
index a695a9b6a..105fec0fe 100644
--- a/src/src/routers/manualroute.c
+++ b/src/src/routers/manualroute.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/routers/queryprogram.c b/src/src/routers/queryprogram.c
index abba024db..c7886923c 100644
--- a/src/src/routers/queryprogram.c
+++ b/src/src/routers/queryprogram.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c
index 5b6a08818..c823f0234 100644
--- a/src/src/routers/redirect.c
+++ b/src/src/routers/redirect.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/routers/rf_change_domain.c b/src/src/routers/rf_change_domain.c
index 219e283cc..afd86f643 100644
--- a/src/src/routers/rf_change_domain.c
+++ b/src/src/routers/rf_change_domain.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -37,8 +37,8 @@ rf_change_domain(address_item *addr, const uschar *domain, BOOL rewrite,
{
address_item *parent = store_get(sizeof(address_item));
uschar *at = Ustrrchr(addr->address, '@');
-uschar *address = string_sprintf("%.*s@%s", at - addr->address, addr->address,
- domain);
+uschar *address = string_sprintf("%.*s@%s",
+ (int)(at - addr->address), addr->address, domain);
DEBUG(D_route) debug_printf("domain changed to %s\n", domain);
diff --git a/src/src/routers/rf_get_errors_address.c b/src/src/routers/rf_get_errors_address.c
index d81f0e907..46562a704 100644
--- a/src/src/routers/rf_get_errors_address.c
+++ b/src/src/routers/rf_get_errors_address.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/routers/rf_get_munge_headers.c b/src/src/routers/rf_get_munge_headers.c
index bf8dc4a5d..5cd046ffb 100644
--- a/src/src/routers/rf_get_munge_headers.c
+++ b/src/src/routers/rf_get_munge_headers.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/routers/rf_queue_add.c b/src/src/routers/rf_queue_add.c
index 1eb109c89..fa25aa598 100644
--- a/src/src/routers/rf_queue_add.c
+++ b/src/src/routers/rf_queue_add.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
diff --git a/src/src/sieve.c b/src/src/sieve.c
index 3bb10785b..5d6b611c3 100644
--- a/src/src/sieve.c
+++ b/src/src/sieve.c
@@ -3,7 +3,7 @@
*************************************************/
/* Copyright (c) Michael Haardt 2003 - 2015
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
* See the file NOTICE for conditions of use and distribution.
*/
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c
index 8e7e431cd..1fdb705a5 100644
--- a/src/src/smtp_in.c
+++ b/src/src/smtp_in.c
@@ -565,11 +565,12 @@ for(;;)
incomplete_transaction_log(US"sync failure");
log_write(0, LOG_MAIN|LOG_REJECT, "SMTP protocol synchronization error "
"(next input sent too soon: pipelining was not advertised): "
- "rejected \"%s\" %s next input=\"%s\"",
+ "rejected \"%s\" %s next input=\"%s\"%s",
smtp_cmd_buffer, host_and_ident(TRUE),
- string_printing(string_copyn(smtp_inptr, n)));
- (void) synprot_error(L_smtp_protocol_error, 554, NULL,
- US"SMTP synchronization error");
+ string_printing(string_copyn(smtp_inptr, n)),
+ smtp_inend - smtp_inptr > n ? "..." : "");
+ (void) synprot_error(L_smtp_protocol_error, 554, NULL,
+ US"SMTP synchronization error");
goto repeat_until_rset;
}
@@ -680,8 +681,11 @@ return buf;
void
bdat_flush_data(void)
{
-unsigned n = chunking_data_left;
-(void) bdat_getbuf(&n);
+while (chunking_data_left)
+{
+ unsigned n = chunking_data_left;
+ (void) bdat_getbuf(&n);
+}
receive_getc = lwr_receive_getc;
receive_getbuf = lwr_receive_getbuf;
@@ -841,7 +845,7 @@ if (!yield)
{
log_write(0, LOG_MAIN|LOG_PANIC, "string too large in smtp_printf()");
smtp_closedown(US"Unexpected error");
- exim_exit(EXIT_FAILURE);
+ exim_exit(EXIT_FAILURE, NULL);
}
/* If this is the first output for a (non-batch) RCPT command, see if all RCPTs
@@ -921,7 +925,7 @@ if (smtp_batched_input)
moan_smtp_batch(NULL, "421 SMTP command timeout"); /* Does not return */
smtp_notquit_exit(US"command-timeout", US"421",
US"%s: SMTP command timeout - closing connection", smtp_active_hostname);
-exim_exit(EXIT_FAILURE);
+exim_exit(EXIT_FAILURE, US"receiving");
}
@@ -945,7 +949,7 @@ if (smtp_batched_input)
moan_smtp_batch(NULL, "421 SIGTERM received"); /* Does not return */
smtp_notquit_exit(US"signal-exit", US"421",
US"%s: Service not available - closing connection", smtp_active_hostname);
-exim_exit(EXIT_FAILURE);
+exim_exit(EXIT_FAILURE, US"receiving");
}
diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c
index 786f8b592..2373e493c 100644
--- a/src/src/smtp_out.c
+++ b/src/src/smtp_out.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* A number of functions for driving outgoing SMTP calls. */
@@ -212,7 +212,7 @@ int dscp_level;
int dscp_option;
int sock;
int save_errno = 0;
-const blob * fastopen = NULL;
+const blob * fastopen_blob = NULL;
#ifndef DISABLE_EVENT
@@ -265,12 +265,12 @@ else
{
#ifdef TCP_FASTOPEN
if (verify_check_given_host(&ob->hosts_try_fastopen, host) == OK)
- fastopen = early_data ? early_data : &tcp_fastopen_nodata;
+ fastopen_blob = early_data ? early_data : &tcp_fastopen_nodata;
#endif
- if (ip_connect(sock, host_af, host->address, port, timeout, fastopen) < 0)
+ if (ip_connect(sock, host_af, host->address, port, timeout, fastopen_blob) < 0)
save_errno = errno;
- else if (early_data && !fastopen && early_data->data && early_data->len)
+ else if (early_data && !fastopen_blob && early_data->data && early_data->len)
if (send(sock, early_data->data, early_data->len, 0) < 0)
save_errno = errno;
}
@@ -309,7 +309,7 @@ else
}
if (ob->keepalive) ip_keepalive(sock, host->address, TRUE);
#ifdef TCP_FASTOPEN
- if (fastopen) tfo_out_check(sock);
+ if (fastopen_blob) tfo_out_check(sock);
#endif
return sock;
}
diff --git a/src/src/spam.c b/src/src/spam.c
index 6ca6678f8..6b03a848f 100644
--- a/src/src/spam.c
+++ b/src/src/spam.c
@@ -4,7 +4,7 @@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003 - 2015
* License: GPL
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
*/
/* Code for calling spamassassin's spamd. Called from acl.c. */
diff --git a/src/src/spf.c b/src/src/spf.c
index 2741c7baf..c4c5ef761 100644
--- a/src/src/spf.c
+++ b/src/src/spf.c
@@ -5,7 +5,7 @@
/* Experimental SPF support.
Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004 - 2014
License: GPL
- Copyright (c) The Exim Maintainers 2016
+ Copyright (c) The Exim Maintainers 2017
*/
/* Code for calling spf checks via libspf-alt. Called from acl.c. */
diff --git a/src/src/spool_in.c b/src/src/spool_in.c
index a5b14959f..2a99c63dd 100644
--- a/src/src/spool_in.c
+++ b/src/src/spool_in.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for reading spool files. When compiling for a utility (eximon),
@@ -459,8 +459,8 @@ for (;;)
tree_node *node;
endptr = Ustrchr(big_buffer + 6, ' ');
if (endptr == NULL) goto SPOOL_FORMAT_ERROR;
- name = string_sprintf("%c%.*s", big_buffer[4], endptr - big_buffer - 6,
- big_buffer + 6);
+ name = string_sprintf("%c%.*s", big_buffer[4],
+ (int)(endptr - big_buffer - 6), big_buffer + 6);
if (sscanf(CS endptr, " %d", &count) != 1) goto SPOOL_FORMAT_ERROR;
node = acl_var_create(name);
node->data.ptr = store_get(count + 1);
diff --git a/src/src/spool_mbox.c b/src/src/spool_mbox.c
index 432634094..16b0a332c 100644
--- a/src/src/spool_mbox.c
+++ b/src/src/spool_mbox.c
@@ -4,7 +4,7 @@
/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003 - 2015
* License: GPL
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
*/
/* Code for setting up a MBOX style spool file inside a /scan/<msgid>
diff --git a/src/src/spool_out.c b/src/src/spool_out.c
index 449662253..d48841367 100644
--- a/src/src/spool_out.c
+++ b/src/src/spool_out.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for writing spool files, and moving them about. */
diff --git a/src/src/std-crypto.c b/src/src/std-crypto.c
index d41e2a195..e315e993a 100644
--- a/src/src/std-crypto.c
+++ b/src/src/std-crypto.c
@@ -3,6 +3,7 @@
*************************************************/
/* Copyright (c) Phil Pennock 2012, 2016
+ * Copyright (c) The Exim Maintainers 2017
* But almost everything here is fixed published constants from RFCs, so also:
* Copyright (C) The Internet Society (2003)
* Copyright (C) The IETF Trust (2008)
diff --git a/src/src/store.c b/src/src/store.c
index 12db584ce..c7cf33c9a 100644
--- a/src/src/store.c
+++ b/src/src/store.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Exim gets and frees all its store through these functions. In the original
diff --git a/src/src/string.c b/src/src/string.c
index 6b7d9a067..2e919e6d9 100644
--- a/src/src/string.c
+++ b/src/src/string.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Miscellaneous string-handling functions. Some are not required for
@@ -1372,10 +1372,20 @@ while (*fp != 0)
break;
case 'p':
- if (p >= last - 24) { yield = FALSE; goto END_FORMAT; }
- strncpy(newformat, item_start, fp - item_start);
- newformat[fp - item_start] = 0;
- p += sprintf(CS p, newformat, va_arg(ap, void *));
+ {
+ void * ptr;
+ if (p >= last - 24) { yield = FALSE; goto END_FORMAT; }
+ /* sprintf() saying "(nil)" for a null pointer seems unreliable.
+ Handle it explicitly. */
+ if ((ptr = va_arg(ap, void *)))
+ {
+ strncpy(newformat, item_start, fp - item_start);
+ newformat[fp - item_start] = 0;
+ p += sprintf(CS p, newformat, ptr);
+ }
+ else
+ p += sprintf(CS p, "(nil)");
+ }
break;
/* %f format is inherently insecure if the numbers that it may be
diff --git a/src/src/structs.h b/src/src/structs.h
index 22c141c0d..6adb30023 100644
--- a/src/src/structs.h
+++ b/src/src/structs.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/tls-gnu.c b/src/src/tls-gnu.c
index d54c560f7..43094f30d 100644
--- a/src/src/tls-gnu.c
+++ b/src/src/tls-gnu.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Copyright (c) Phil Pennock 2012 */
diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c
index 6f10cf5f7..58401e932 100644
--- a/src/src/tls-openssl.c
+++ b/src/src/tls-openssl.c
@@ -29,7 +29,7 @@ functions from the OpenSSL library. */
# include <openssl/ocsp.h>
#endif
#ifdef EXPERIMENTAL_DANE
-# include <danessl.h>
+# include "danessl.h"
#endif
diff --git a/src/src/tls.c b/src/src/tls.c
index a24b939a4..bba6acf6b 100644
--- a/src/src/tls.c
+++ b/src/src/tls.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* This module provides TLS (aka SSL) support for Exim. The code for OpenSSL is
diff --git a/src/src/tlscert-gnu.c b/src/src/tlscert-gnu.c
index c9df5ea19..385fb8d42 100644
--- a/src/src/tlscert-gnu.c
+++ b/src/src/tlscert-gnu.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2014 - 2015 */
+/* Copyright (c) Jeremy Harris 2014 - 2017 */
/* This file provides TLS/SSL support for Exim using the GnuTLS library,
one of the available supported implementations. This file is #included into
diff --git a/src/src/tlscert-openssl.c b/src/src/tlscert-openssl.c
index bfd4dc112..3f0767926 100644
--- a/src/src/tlscert-openssl.c
+++ b/src/src/tlscert-openssl.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2014 - 2016 */
+/* Copyright (c) Jeremy Harris 2014 - 2017 */
/* This module provides TLS (aka SSL) support for Exim using the OpenSSL
library. It is #included into the tls.c file when that library is used.
@@ -149,7 +149,7 @@ else
time_t t = mktime(&tm); /* make the tm self-consistent */
if (mod && Ustrcmp(mod, "int") == 0) /* seconds since epoch */
- s = string_sprintf("%u", t);
+ s = string_sprintf(TIME_T_FMT, t);
else
{
@@ -300,7 +300,7 @@ return mod ? tls_field_from_dn(cp, mod) : cp;
uschar *
tls_cert_version(void * cert, uschar * mod)
{
-return string_sprintf("%d", X509_get_version((X509 *)cert));
+return string_sprintf("%ld", X509_get_version((X509 *)cert));
}
uschar *
diff --git a/src/src/tod.c b/src/src/tod.c
index 76b6d2da9..55933dc84 100644
--- a/src/src/tod.c
+++ b/src/src/tod.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2014 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* A function for returning the time of day in various formats */
diff --git a/src/src/transport.c b/src/src/transport.c
index 75af68f9b..47da45fdf 100644
--- a/src/src/transport.c
+++ b/src/src/transport.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* General functions concerned with transportation, and generic options for all
@@ -588,7 +588,7 @@ at = Ustrrchr(addr->address, '@');
plen = (addr->prefix == NULL)? 0 : Ustrlen(addr->prefix);
slen = Ustrlen(addr->suffix);
-return string_sprintf("%.*s@%s", (at - addr->address - plen - slen),
+return string_sprintf("%.*s@%s", (int)(at - addr->address - plen - slen),
addr->address + plen, at + 1);
}
diff --git a/src/src/transports/appendfile.c b/src/src/transports/appendfile.c
index 3b463c644..ece1da51d 100644
--- a/src/src/transports/appendfile.c
+++ b/src/src/transports/appendfile.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
@@ -306,11 +306,11 @@ for (i = 0; i < 5; i++)
uschar *rest;
uschar *s = expand_string(q);
- if (s == NULL)
+ if (!s)
{
*errmsg = string_sprintf("Expansion of \"%s\" in %s transport failed: "
"%s", q, tblock->name, expand_string_message);
- return search_find_defer? DEFER : FAIL;
+ return search_find_defer ? DEFER : FAIL;
}
d = Ustrtod(s, &rest);
@@ -324,7 +324,8 @@ for (i = 0; i < 5; i++)
else if (tolower(*rest) == 'g') { d *= 1024.0*1024.0*1024.0; rest++; }
else if (*rest == '%' && i == 2)
{
- if (ob->quota_value <= 0 && !ob->maildir_use_size_file) d = 0;
+ if (ob->quota_value <= 0 && !ob->maildir_use_size_file)
+ d = 0;
else if ((int)d < 0 || (int)d > 100)
{
*errmsg = string_sprintf("Invalid quota_warn_threshold percentage (%d)"
@@ -340,8 +341,8 @@ for (i = 0; i < 5; i++)
appended. Currently only "no_check", so we can be lazy parsing it */
if (i < 2 && Ustrstr(rest, "/no_check") == rest)
{
- no_check = 1;
- rest += sizeof("/no_check") - 1;
+ no_check = 1;
+ rest += sizeof("/no_check") - 1;
}
while (isspace(*rest)) rest++;
@@ -359,41 +360,44 @@ for (i = 0; i < 5; i++)
switch (i)
{
case 0:
- if (d >= 2.0*1024.0*1024.0*1024.0 && sizeof(off_t) <= 4) which = US"quota";
- ob->quota_value = (off_t)d;
- ob->quota_no_check = no_check;
- q = ob->quota_filecount;
- break;
+ if (d >= 2.0*1024.0*1024.0*1024.0 && sizeof(off_t) <= 4)
+ which = US"quota";
+ ob->quota_value = (off_t)d;
+ ob->quota_no_check = no_check;
+ q = ob->quota_filecount;
+ break;
case 1:
- if (d >= 2.0*1024.0*1024.0*1024.0) which = US"quota_filecount";
- ob->quota_filecount_value = (int)d;
- ob->quota_filecount_no_check = no_check;
- q = ob->quota_warn_threshold;
- break;
+ if (d >= 2.0*1024.0*1024.0*1024.0)
+ which = US"quota_filecount";
+ ob->quota_filecount_value = (int)d;
+ ob->quota_filecount_no_check = no_check;
+ q = ob->quota_warn_threshold;
+ break;
case 2:
if (d >= 2.0*1024.0*1024.0*1024.0 && sizeof(off_t) <= 4)
- which = US"quota_warn_threshold";
- ob->quota_warn_threshold_value = (off_t)d;
- q = ob->mailbox_size_string;
- default_value = -1.0;
- break;
+ which = US"quota_warn_threshold";
+ ob->quota_warn_threshold_value = (off_t)d;
+ q = ob->mailbox_size_string;
+ default_value = -1.0;
+ break;
case 3:
- if (d >= 2.0*1024.0*1024.0*1024.0 && sizeof(off_t) <= 4)
- which = US"mailbox_size";;
- ob->mailbox_size_value = (off_t)d;
- q = ob->mailbox_filecount_string;
- break;
+ if (d >= 2.0*1024.0*1024.0*1024.0 && sizeof(off_t) <= 4)
+ which = US"mailbox_size";;
+ ob->mailbox_size_value = (off_t)d;
+ q = ob->mailbox_filecount_string;
+ break;
case 4:
- if (d >= 2.0*1024.0*1024.0*1024.0) which = US"mailbox_filecount";
- ob->mailbox_filecount_value = (int)d;
- break;
+ if (d >= 2.0*1024.0*1024.0*1024.0)
+ which = US"mailbox_filecount";
+ ob->mailbox_filecount_value = (int)d;
+ break;
}
- if (which != NULL)
+ if (which)
{
*errmsg = string_sprintf("%s value %.10g is too large (overflow) in "
"%s transport", which, d, tblock->name);
@@ -575,12 +579,12 @@ else if (ob->dirname == NULL && !ob->maildir_format && !ob->mailstore_format)
driver options. Only one of body_only and headers_only can be set. */
ob->options |=
- (tblock->body_only? topt_no_headers : 0) |
- (tblock->headers_only? topt_no_body : 0) |
- (tblock->return_path_add? topt_add_return_path : 0) |
- (tblock->delivery_date_add? topt_add_delivery_date : 0) |
- (tblock->envelope_to_add? topt_add_envelope_to : 0) |
- ((ob->use_crlf || ob->mbx_format)? topt_use_crlf : 0);
+ (tblock->body_only ? topt_no_headers : 0) |
+ (tblock->headers_only ? topt_no_body : 0) |
+ (tblock->return_path_add ? topt_add_return_path : 0) |
+ (tblock->delivery_date_add ? topt_add_delivery_date : 0) |
+ (tblock->envelope_to_add ? topt_add_envelope_to : 0) |
+ ((ob->use_crlf || ob->mbx_format) ? topt_use_crlf : 0);
}
@@ -892,7 +896,7 @@ if (dofcntl)
#ifndef NO_FLOCK
if (doflock && (yield >= 0))
{
- int flocktype = (fcntltype == F_WRLCK)? LOCK_EX : LOCK_SH;
+ int flocktype = (fcntltype == F_WRLCK) ? LOCK_EX : LOCK_SH;
if (flocktime > 0)
{
alarm(flocktime);
@@ -1271,7 +1275,7 @@ BOOL wait_for_tick = FALSE;
uid_t uid = geteuid(); /* See note above */
gid_t gid = getegid();
int mbformat;
-int mode = (addr->mode > 0)? addr->mode : ob->mode;
+int mode = (addr->mode > 0) ? addr->mode : ob->mode;
off_t saved_size = -1;
off_t mailbox_size = ob->mailbox_size_value;
int mailbox_filecount = ob->mailbox_filecount_value;
@@ -1349,7 +1353,7 @@ if ((ob->maildir_format || ob->mailstore_format) && !isdirectory)
addr->transport_return = PANIC;
addr->message = string_sprintf("mail%s_format requires \"directory\" "
"to be specified for the %s transport",
- ob->maildir_format? "dir" : "store", tblock->name);
+ ob->maildir_format ? "dir" : "store", tblock->name);
return FALSE;
}
@@ -1389,10 +1393,10 @@ if (isdirectory)
{
mbformat =
#ifdef SUPPORT_MAILDIR
- (ob->maildir_format)? mbf_maildir :
+ (ob->maildir_format) ? mbf_maildir :
#endif
#ifdef SUPPORT_MAILSTORE
- (ob->mailstore_format)? mbf_mailstore :
+ (ob->mailstore_format) ? mbf_mailstore :
#endif
mbf_smail;
}
@@ -1400,7 +1404,7 @@ else
{
mbformat =
#ifdef SUPPORT_MBX
- (ob->mbx_format)? mbf_mbx :
+ (ob->mbx_format) ? mbf_mbx :
#endif
mbf_unix;
}
@@ -1413,22 +1417,22 @@ DEBUG(D_transport)
" %s=%s format=%s\n message_prefix=%s\n message_suffix=%s\n "
"maildir_use_size_file=%s\n",
mode, ob->notify_comsat, ob->quota_value,
- ob->quota_no_check? " (no_check)" : "",
- ob->quota_filecount_no_check? " (no_check_filecount)" : "",
+ ob->quota_no_check ? " (no_check)" : "",
+ ob->quota_filecount_no_check ? " (no_check_filecount)" : "",
ob->quota_warn_threshold_value,
- ob->quota_warn_threshold_is_percent? "%" : "",
- isdirectory? "directory" : "file",
+ ob->quota_warn_threshold_is_percent ? "%" : "",
+ isdirectory ? "directory" : "file",
path, mailbox_formats[mbformat],
- (ob->message_prefix == NULL)? US"null" : string_printing(ob->message_prefix),
- (ob->message_suffix == NULL)? US"null" : string_printing(ob->message_suffix),
- (ob->maildir_use_size_file)? "yes" : "no");
+ (ob->message_prefix == NULL) ? US"null" : string_printing(ob->message_prefix),
+ (ob->message_suffix == NULL) ? US"null" : string_printing(ob->message_suffix),
+ (ob->maildir_use_size_file) ? "yes" : "no");
if (!isdirectory) debug_printf(" locking by %s%s%s%s%s\n",
- ob->use_lockfile? "lockfile " : "",
- ob->use_mbx_lock? "mbx locking (" : "",
- ob->use_fcntl? "fcntl " : "",
- ob->use_flock? "flock" : "",
- ob->use_mbx_lock? ")" : "");
+ ob->use_lockfile ? "lockfile " : "",
+ ob->use_mbx_lock ? "mbx locking (" : "",
+ ob->use_fcntl ? "fcntl " : "",
+ ob->use_flock ? "flock" : "",
+ ob->use_mbx_lock ? ")" : "");
}
/* If the -N option is set, can't do any more. */
@@ -1740,7 +1744,7 @@ if (!isdirectory)
int sleep_before_retry = TRUE;
file_opened = FALSE;
- if((use_lstat? Ulstat(filename, &statbuf) : Ustat(filename, &statbuf)) != 0)
+ if((use_lstat ? Ulstat(filename, &statbuf) : Ustat(filename, &statbuf)) != 0)
{
/* Let's hope that failure to stat (other than non-existence) is a
rare event. */
@@ -1787,7 +1791,7 @@ if (!isdirectory)
get a shared lock. */
fd = Uopen(filename, O_RDWR | O_APPEND | O_CREAT |
- (use_lstat? O_EXCL : 0), mode);
+ (use_lstat ? O_EXCL : 0), mode);
if (fd < 0)
{
if (errno == EEXIST) continue;
@@ -1836,7 +1840,7 @@ if (!isdirectory)
addr->basic_errno = ERRNO_BADUGID;
addr->message = string_sprintf("mailbox %s%s has wrong uid "
"(%ld != %ld)", filename,
- islink? " (symlink)" : "",
+ islink ? " (symlink)" : "",
(long int)(statbuf.st_uid), (long int)uid);
goto RETURN;
}
@@ -1847,7 +1851,7 @@ if (!isdirectory)
{
addr->basic_errno = ERRNO_BADUGID;
addr->message = string_sprintf("mailbox %s%s has wrong gid (%d != %d)",
- filename, islink? " (symlink)" : "", statbuf.st_gid, gid);
+ filename, islink ? " (symlink)" : "", statbuf.st_gid, gid);
goto RETURN;
}
@@ -1858,7 +1862,7 @@ if (!isdirectory)
{
addr->basic_errno = ERRNO_NOTREGULAR;
addr->message = string_sprintf("mailbox %s%s has too many links (%d)",
- filename, islink? " (symlink)" : "", statbuf.st_nlink);
+ filename, islink ? " (symlink)" : "", statbuf.st_nlink);
goto RETURN;
}
@@ -1884,7 +1888,7 @@ if (!isdirectory)
{
addr->basic_errno = ERRNO_NOTREGULAR;
addr->message = string_sprintf("mailbox %s is not a regular file%s",
- filename, ob->allow_fifo? " or named pipe" : "");
+ filename, ob->allow_fifo ? " or named pipe" : "");
goto RETURN;
}
@@ -1933,7 +1937,7 @@ if (!isdirectory)
a FIFO is opened WRONLY + NDELAY so that it fails if there is no process
reading the pipe. */
- fd = Uopen(filename, isfifo? (O_WRONLY|O_NDELAY) : (O_RDWR|O_APPEND),
+ fd = Uopen(filename, isfifo ? (O_WRONLY|O_NDELAY) : (O_RDWR|O_APPEND),
mode);
if (fd < 0)
{
@@ -1980,7 +1984,7 @@ if (!isdirectory)
{
addr->basic_errno = ERRNO_INODECHANGED;
addr->message = string_sprintf("opened mailbox %s inode number changed "
- "from %d to %ld", filename, inode, statbuf.st_ino);
+ "from " INO_T_FMT " to " INO_T_FMT, filename, inode, statbuf.st_ino);
addr->special_action = SPECIAL_FREEZE;
goto RETURN;
}
@@ -1994,7 +1998,7 @@ if (!isdirectory)
addr->basic_errno = ERRNO_NOTREGULAR;
addr->message =
string_sprintf("opened mailbox %s is no longer a %s", filename,
- isfifo? "named pipe" : "regular file");
+ isfifo ? "named pipe" : "regular file");
addr->special_action = SPECIAL_FREEZE;
goto RETURN;
}
@@ -2432,7 +2436,7 @@ else
{
uschar *s = path + check_path_len;
while (*s == '/') s++;
- s = (*s == 0)? US "new" : string_sprintf("%s/new", s);
+ s = (*s == 0) ? US "new" : string_sprintf("%s/new", s);
if (pcre_exec(dir_regex, NULL, CS s, Ustrlen(s), 0, 0, NULL, 0) < 0)
{
disable_quota = TRUE;
@@ -2571,7 +2575,7 @@ else
uschar *basename;
(void)gettimeofday(&msg_tv, NULL);
- basename = string_sprintf(TIME_T_FMT ".H%luP%lu.%s",
+ basename = string_sprintf(TIME_T_FMT ".H%luP" PID_T_FMT ".%s",
msg_tv.tv_sec, msg_tv.tv_usec, getpid(), primary_hostname);
filename = dataname = string_sprintf("tmp/%s", basename);
@@ -2592,7 +2596,7 @@ else
if (i >= ob->maildir_retries)
{
addr->message = string_sprintf ("failed to open %s (%d tr%s)",
- filename, i, (i == 1)? "y" : "ies");
+ filename, i, (i == 1) ? "y" : "ies");
addr->basic_errno = errno;
if (errno == errno_quota || errno == ENOSPC)
addr->user_message = US"mailbox is full";
@@ -2801,12 +2805,12 @@ if (!disable_quota && ob->quota_value > 0)
debug_printf("Exim quota = " OFF_T_FMT " old size = " OFF_T_FMT
" this message = %d (%sincluded)\n",
ob->quota_value, mailbox_size, message_size,
- ob->quota_is_inclusive? "" : "not ");
+ ob->quota_is_inclusive ? "" : "not ");
debug_printf(" file count quota = %d count = %d\n",
ob->quota_filecount_value, mailbox_filecount);
}
- if (mailbox_size + (ob->quota_is_inclusive? message_size:0) > ob->quota_value)
+ if (mailbox_size + (ob->quota_is_inclusive ? message_size:0) > ob->quota_value)
{
if (!ob->quota_no_check)
@@ -2898,7 +2902,7 @@ if (yield == OK && ob->use_bsmtp)
transport_newlines++;
for (a = addr; a != NULL; a = a->next)
{
- address_item *b = testflag(a, af_pfr)? a->parent: a;
+ address_item *b = testflag(a, af_pfr) ? a->parent: a;
if (!transport_write_string(fd, "RCPT TO:<%s>%s\n",
transport_rcpt_address(b, tblock->rcpt_include_affixes), cr))
{ yield = DEFER; break; }
@@ -3078,7 +3082,7 @@ if (yield != OK)
}
else /* Want a repeatable time when in test harness */
{
- addr->more_errno = running_in_test_harness? 10 :
+ addr->more_errno = running_in_test_harness ? 10 :
(int)time(NULL) - statbuf.st_mtime;
}
DEBUG(D_transport)
@@ -3103,8 +3107,8 @@ if (yield != OK)
addr->user_message = US"mailbox is full";
DEBUG(D_transport) debug_printf("System quota exceeded for %s%s%s\n",
dataname,
- isdirectory? US"" : US": time since file read = ",
- isdirectory? US"" : readconf_printtime(addr->more_errno));
+ isdirectory ? US"" : US": time since file read = ",
+ isdirectory ? US"" : readconf_printtime(addr->more_errno));
}
/* Handle Exim's own quota-imposition */
@@ -3117,8 +3121,8 @@ if (yield != OK)
addr->user_message = US"mailbox is full";
DEBUG(D_transport) debug_printf("Exim%s quota exceeded for %s%s%s\n",
filecount_msg, dataname,
- isdirectory? US"" : US": time since file read = ",
- isdirectory? US"" : readconf_printtime(addr->more_errno));
+ isdirectory ? US"" : US": time since file read = ",
+ isdirectory ? US"" : readconf_printtime(addr->more_errno));
}
/* Handle a process failure while writing via a filter; the return
@@ -3129,7 +3133,7 @@ if (yield != OK)
yield = PANIC;
addr->message = string_sprintf("transport filter process failed (%d) "
"while writing to %s%s", addr->more_errno, dataname,
- (addr->more_errno == EX_EXECFAILED)? ": unable to execute command" : "");
+ (addr->more_errno == EX_EXECFAILED) ? ": unable to execute command" : "");
}
/* Handle failure to expand header changes */
@@ -3203,7 +3207,7 @@ else
{
addr->basic_errno = errno;
addr->message = string_sprintf("close() error for %s",
- (ob->mailstore_format)? dataname : filename);
+ (ob->mailstore_format) ? dataname : filename);
yield = DEFER;
}
diff --git a/src/src/transports/appendfile.h b/src/src/transports/appendfile.h
index 70330857d..e2c919796 100644
--- a/src/src/transports/appendfile.h
+++ b/src/src/transports/appendfile.h
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Private structure for the private options. */
diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c
index 9f6e2acaf..bf31951fa 100644
--- a/src/src/transports/autoreply.c
+++ b/src/src/transports/autoreply.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/transports/lmtp.c b/src/src/transports/lmtp.c
index f26050fdc..de1ee166b 100644
--- a/src/src/transports/lmtp.c
+++ b/src/src/transports/lmtp.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2016 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/transports/pipe.c b/src/src/transports/pipe.c
index 0ce281fd0..5b7fa1f5c 100644
--- a/src/src/transports/pipe.c
+++ b/src/src/transports/pipe.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/transports/queuefile.c b/src/src/transports/queuefile.c
index bc4ed3f40..4a74c752a 100644
--- a/src/src/transports/queuefile.c
+++ b/src/src/transports/queuefile.c
@@ -4,6 +4,7 @@
/* Copyright (c) Andrew Colin Kissa <andrew@topdog.za.net> 2016 */
/* Copyright (c) University of Cambridge 2016 */
+/* Copyright (c) The Exim Maintainers 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 14cfde72a..9dc632e7f 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -1820,7 +1820,7 @@ goto SEND_QUIT;
errno = ERRNO_SMTPCLOSED;
goto EHLOHELO_FAILED;
}
- Ustrncpy(sx->buffer, rsp, sizeof(sx->buffer)/2);
+ memmove(sx->buffer, rsp, Ustrlen(rsp));
goto RESPONSE_FAILED;
}
}
@@ -2176,11 +2176,6 @@ return OK;
sx->send_quit = FALSE;
goto FAILED;
- /* This label is jumped to directly when a TLS negotiation has failed,
- or was not done for a host for which it is required. Values will be set
- in message and errno, and setting_up will always be true. Treat as
- a temporary error. */
-
EHLOHELO_FAILED:
code = '4';
message = string_sprintf("Remote host closed connection in response to %s"
@@ -2188,6 +2183,11 @@ return OK;
sx->send_quit = FALSE;
goto FAILED;
+ /* This label is jumped to directly when a TLS negotiation has failed,
+ or was not done for a host for which it is required. Values will be set
+ in message and errno, and setting_up will always be true. Treat as
+ a temporary error. */
+
#ifdef SUPPORT_TLS
TLS_FAILED:
code = '4';
@@ -2580,29 +2580,37 @@ return 0;
* Proxy TLS connection for another transport process *
******************************************************/
/*
-Use the given buffer as a staging area, and select on both the given fd
-and the TLS'd client-fd for data to read (per the coding in ip_recv() and
-fd_ready() this is legitimate). Do blocking full-size writes, and reads
-under a timeout.
+Close the unused end of the pipe, fork once more, then use the given buffer
+as a staging area, and select on both the given fd and the TLS'd client-fd for
+data to read (per the coding in ip_recv() and fd_ready() this is legitimate).
+Do blocking full-size writes, and reads under a timeout. Once both input
+channels are closed, exit the process.
Arguments:
buf space to use for buffering
bufsiz size of buffer
- proxy_fd comms to proxied process
+ pfd pipe filedescriptor array; [0] is comms to proxied process
timeout per-read timeout, seconds
*/
void
-smtp_proxy_tls(uschar * buf, size_t bsize, int proxy_fd, int timeout)
+smtp_proxy_tls(uschar * buf, size_t bsize, int * pfd, int timeout)
{
fd_set rfds, efds;
-int max_fd = MAX(proxy_fd, tls_out.active) + 1;
+int max_fd = MAX(pfd[0], tls_out.active) + 1;
int rc, i, fd_bits, nbytes;
+close(pfd[1]);
+if ((rc = fork()))
+ {
+ DEBUG(D_transport) debug_printf("proxy-proc final-pid %d\n", rc);
+ _exit(rc < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+ }
+
set_process_info("proxying TLS connection for continued transport");
FD_ZERO(&rfds);
FD_SET(tls_out.active, &rfds);
-FD_SET(proxy_fd, &rfds);
+FD_SET(pfd[0], &rfds);
for (fd_bits = 3; fd_bits; )
{
@@ -2624,17 +2632,17 @@ for (fd_bits = 3; fd_bits; )
if (rc <= 0)
{
DEBUG(D_transport) if (rc == 0) debug_printf("%s: timed out\n", __FUNCTION__);
- return;
+ goto done;
}
- if (FD_ISSET(tls_out.active, &efds) || FD_ISSET(proxy_fd, &efds))
+ if (FD_ISSET(tls_out.active, &efds) || FD_ISSET(pfd[0], &efds))
{
DEBUG(D_transport) debug_printf("select: exceptional cond on %s fd\n",
- FD_ISSET(proxy_fd, &efds) ? "proxy" : "tls");
- return;
+ FD_ISSET(pfd[0], &efds) ? "proxy" : "tls");
+ goto done;
}
}
- while (rc < 0 || !(FD_ISSET(tls_out.active, &rfds) || FD_ISSET(proxy_fd, &rfds)));
+ while (rc < 0 || !(FD_ISSET(tls_out.active, &rfds) || FD_ISSET(pfd[0], &rfds)));
/* handle inbound data */
if (FD_ISSET(tls_out.active, &rfds))
@@ -2642,20 +2650,20 @@ for (fd_bits = 3; fd_bits; )
{
fd_bits &= ~1;
FD_CLR(tls_out.active, &rfds);
- shutdown(proxy_fd, SHUT_WR);
+ shutdown(pfd[0], SHUT_WR);
timeout = 5;
}
else
{
for (nbytes = 0; rc - nbytes > 0; nbytes += i)
- if ((i = write(proxy_fd, buf + nbytes, rc - nbytes)) < 0) return;
+ if ((i = write(pfd[0], buf + nbytes, rc - nbytes)) < 0) goto done;
}
else if (fd_bits & 1)
FD_SET(tls_out.active, &rfds);
/* handle outbound data */
- if (FD_ISSET(proxy_fd, &rfds))
- if ((rc = read(proxy_fd, buf, bsize)) <= 0)
+ if (FD_ISSET(pfd[0], &rfds))
+ if ((rc = read(pfd[0], buf, bsize)) <= 0)
{
fd_bits = 0;
tls_close(FALSE, TRUE);
@@ -2664,11 +2672,15 @@ for (fd_bits = 3; fd_bits; )
{
for (nbytes = 0; rc - nbytes > 0; nbytes += i)
if ((i = tls_write(FALSE, buf + nbytes, rc - nbytes, FALSE)) < 0)
- return;
+ goto done;
}
else if (fd_bits & 2)
- FD_SET(proxy_fd, &rfds);
+ FD_SET(pfd[0], &rfds);
}
+
+done:
+ if (running_in_test_harness) millisleep(100); /* let logging complete */
+ exim_exit(0, US"TLS proxy");
}
#endif
@@ -3153,7 +3165,7 @@ else
else
sprintf(CS sx.buffer, "%.500s\n", addr->unique);
- DEBUG(D_deliver) debug_printf("S:journalling %s", sx.buffer);
+ DEBUG(D_deliver) debug_printf("S:journalling %s\n", sx.buffer);
len = Ustrlen(CS sx.buffer);
if (write(journal_fd, sx.buffer, len) != len)
log_write(0, LOG_MAIN|LOG_PANIC, "failed to write journal for "
@@ -3485,7 +3497,8 @@ propagate it from the initial
{
sx.send_quit = FALSE;
- /* If TLS is still active, we need to proxy it for the transport we
+ /* We have passed the client socket to a fresh transport process.
+ If TLS is still active, we need to proxy it for the transport we
just passed the baton to. Fork a child to to do it, and return to
get logging done asap. Which way to place the work makes assumptions
about post-fork prioritisation which may not hold on all platforms. */
@@ -3493,10 +3506,16 @@ propagate it from the initial
if (tls_out.active >= 0)
{
int pid = fork();
+ if (pid == 0) /* child; fork again to disconnect totally */
+ /* does not return */
+ smtp_proxy_tls(sx.buffer, sizeof(sx.buffer), pfd,
+ sx.ob->command_timeout);
+
if (pid > 0) /* parent */
{
DEBUG(D_transport) debug_printf("proxy-proc inter-pid %d\n", pid);
close(pfd[0]);
+ /* tidy the inter-proc to disconn the proxy proc */
waitpid(pid, NULL, 0);
tls_close(FALSE, FALSE);
(void)close(sx.inblock.sock);
@@ -3504,17 +3523,7 @@ propagate it from the initial
continue_hostname = NULL;
return yield;
}
- else if (pid == 0) /* child; fork again to disconnect totally */
- {
- close(pfd[1]);
- if ((pid = fork()))
- {
- DEBUG(D_transport) debug_printf("proxy-prox final-pid %d\n", pid);
- _exit(pid ? EXIT_FAILURE : EXIT_SUCCESS);
- }
- smtp_proxy_tls(sx.buffer, sizeof(sx.buffer), pfd[0], sx.ob->command_timeout);
- exim_exit(0);
- }
+ log_write(0, LOG_PANIC_DIE, "fork failed");
}
#endif
}
diff --git a/src/src/transports/smtp_socks.c b/src/src/transports/smtp_socks.c
index c9907dd54..5eee220a5 100644
--- a/src/src/transports/smtp_socks.c
+++ b/src/src/transports/smtp_socks.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2015 */
+/* Copyright (c) Jeremy Harris 2015 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* SOCKS version 5 proxy, client-mode */
@@ -74,8 +74,6 @@ sob->priority = SOCKS_PRIORITY;
static void
socks_option(socks_opts * sob, const uschar * opt)
{
-const uschar * s;
-
if (Ustrncmp(opt, "auth=", 5) == 0)
{
opt += 5;
diff --git a/src/src/transports/tf_maildir.c b/src/src/transports/tf_maildir.c
index 9e18a804b..d970156be 100644
--- a/src/src/transports/tf_maildir.c
+++ b/src/src/transports/tf_maildir.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2014 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions in support of the use of maildirsize files for handling quotas in
diff --git a/src/src/utf8.c b/src/src/utf8.c
index dcc944af9..cf010283b 100644
--- a/src/src/utf8.c
+++ b/src/src/utf8.c
@@ -2,7 +2,7 @@
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Jeremy Harris 2015, 2016 */
+/* Copyright (c) Jeremy Harris 2015 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
diff --git a/src/src/verify.c b/src/src/verify.c
index ac5eb667b..b957c709b 100644
--- a/src/src/verify.c
+++ b/src/src/verify.c
@@ -2263,7 +2263,7 @@ for (h = header_list; h != NULL && yield == OK; h = h->next)
/* deconst cast ok as we're passing a non-const to string_printing() */
*msgptr = US string_printing(
string_sprintf("%s: failing address in \"%.*s:\" header %s: %.*s",
- errmess, tt - h->text, h->text, verb, len, s));
+ errmess, (int)(tt - h->text), h->text, verb, len, s));
yield = FAIL;
break; /* Out of address loop */
@@ -2564,7 +2564,7 @@ for (i = 0; i < 3 && !done; i++)
while (ss > s && isspace(ss[-1])) ss--;
*log_msgptr = string_sprintf("syntax error in '%.*s' header when "
"scanning for sender: %s in \"%.*s\"",
- endname - h->text, h->text, *log_msgptr, ss - s, s);
+ (int)(endname - h->text), h->text, *log_msgptr, (int)(ss - s), s);
yield = FAIL;
done = TRUE;
break;
@@ -2592,11 +2592,9 @@ for (i = 0; i < 3 && !done; i++)
{
*verrno = vaddr->basic_errno;
if (smtp_return_error_details)
- {
*user_msgptr = string_sprintf("Rejected after DATA: "
"could not verify \"%.*s\" header address\n%s: %s",
- endname - h->text, h->text, vaddr->address, vaddr->message);
- }
+ (int)(endname - h->text), h->text, vaddr->address, vaddr->message);
}
/* Success or defer */
@@ -2657,6 +2655,7 @@ verify_get_ident(int port)
int sock, host_af, qlen;
int received_sender_port, received_interface_port, n;
uschar *p;
+blob early_data;
uschar buffer[2048];
/* Default is no ident. Check whether we want to do an ident check for this
@@ -2682,11 +2681,15 @@ if (ip_bind(sock, host_af, interface_address, 0) < 0)
goto END_OFF;
}
-/*XXX could take advantage of TFO early-data. Hmm, what are the
-error returns; can we differentiate connect from data fails?
-Do we need to? */
+/* Construct and send the query. */
+
+qlen = snprintf(CS buffer, sizeof(buffer), "%d , %d\r\n",
+ sender_host_port, interface_port);
+early_data.data = buffer;
+early_data.len = qlen;
+
if (ip_connect(sock, host_af, sender_host_address, port,
- rfc1413_query_timeout, &tcp_fastopen_nodata) < 0)
+ rfc1413_query_timeout, &early_data) < 0)
{
if (errno == ETIMEDOUT && LOGGING(ident_timeout))
log_write(0, LOG_MAIN, "ident connection to %s timed out",
@@ -2697,16 +2700,6 @@ if (ip_connect(sock, host_af, sender_host_address, port,
goto END_OFF;
}
-/* Construct and send the query. */
-
-sprintf(CS buffer, "%d , %d\r\n", sender_host_port, interface_port);
-qlen = Ustrlen(buffer);
-if (send(sock, buffer, qlen, 0) < 0)
- {
- DEBUG(D_ident) debug_printf("ident send failed: %s\n", strerror(errno));
- goto END_OFF;
- }
-
/* Read a response line. We put it into the rest of the buffer, using several
recv() calls if necessary. */
diff --git a/src/src/version.c b/src/src/version.c
index f27cc3cde..822323627 100644
--- a/src/src/version.c
+++ b/src/src/version.c
@@ -3,6 +3,7 @@
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2009 */
+/* Copyright (c) The Exim Maintainers 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* Function for setting up the version string. */
diff --git a/test/aux-fixed/2800.lmdb-mkdb-dump.py b/test/aux-fixed/2800.lmdb-mkdb-dump.py
deleted file mode 100644
index 3de6ba13b..000000000
--- a/test/aux-fixed/2800.lmdb-mkdb-dump.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-import os
-import lmdb
-
-if os.path.exists('2800.mdb'):
- os.unlink('2800.mdb')
-
-env = lmdb.open('2800.mdb', subdir=False);
-with env.begin(write=True) as txn:
- txn.put('first', 'data for first')
- txn.put('second', 'A=1 B=2')
- txn.put('third', 'A1:B2:C3')
- cursor = txn.cursor()
- for key, value in cursor:
- print key, "=>", value
diff --git a/test/aux-fixed/2800.mdb b/test/aux-fixed/2800.mdb
deleted file mode 100644
index 2002ee1b5..000000000
--- a/test/aux-fixed/2800.mdb
+++ /dev/null
Binary files differ
diff --git a/test/aux-fixed/2800.mdb.src b/test/aux-fixed/2800.mdb.src
deleted file mode 100644
index 957952720..000000000
--- a/test/aux-fixed/2800.mdb.src
+++ /dev/null
@@ -1,3 +0,0 @@
-first: data for first
-second: A=1 B=2
-third: A1:B2:C3
diff --git a/test/confs/2031 b/test/confs/2031
index 38713735b..0d9bba640 100644
--- a/test/confs/2031
+++ b/test/confs/2031
@@ -12,7 +12,7 @@ primary_hostname = myhost.test.ex
domainlist local_domains = test.ex : *.test.ex
acl_smtp_rcpt = acl_log_sni
-log_selector = +tls_peerdn +tls_sni
+log_selector = +tls_peerdn +tls_sni +received_recipients
remote_max_parallel = 1
tls_advertise_hosts = *
diff --git a/test/confs/2038 b/test/confs/2038
index 140819433..d5465e30d 100644
--- a/test/confs/2038
+++ b/test/confs/2038
@@ -14,6 +14,7 @@ log_selector = +tls_peerdn+smtp_connection+incoming_port+received_recipients
queue_only
queue_run_in_order
+remote_max_parallel = 1
smtp_accept_max_nonmail = 0
diff --git a/test/confs/2102 b/test/confs/2102
index 8b2083959..58ff6fbaa 100644
--- a/test/confs/2102
+++ b/test/confs/2102
@@ -40,7 +40,9 @@ check_recipient:
DHE_RSA_AES_256_CBC_SHA1 : \
DHE_RSA_3DES_EDE_CBC_SHA : \
ECDHE-RSA-AES256-GCM-SHA384 : \
- ECDHE-RSA-AES128-GCM-SHA256
+ ECDHE-RSA-AES128-GCM-SHA256 : \
+ ECDHE-RSA-CHACHA20-POLY1305
+ logwrite = cipher: $tls_in_cipher
warn logwrite = ${if def:tls_in_ourcert \
{Our cert SN: <${certextract{subject}{$tls_in_ourcert}}>} \
{We did not present a cert}}
diff --git a/test/confs/2119 b/test/confs/2119
index 26ae4c1bc..d55232d05 100644
--- a/test/confs/2119
+++ b/test/confs/2119
@@ -39,7 +39,8 @@ check_recipient:
DHE_RSA_AES_256_CBC_SHA1:\
DHE_RSA_3DES_EDE_CBC_SHA:\
ECDHE-RSA-AES256-GCM-SHA384:\
- ECDHE-RSA-AES128-GCM-SHA256
+ ECDHE-RSA-AES128-GCM-SHA256:\
+ ECDHE-RSA-CHACHA20-POLY1305
accept
diff --git a/test/confs/2132 b/test/confs/2132
index 7fb561bdc..7e491b8a6 100644
--- a/test/confs/2132
+++ b/test/confs/2132
@@ -39,7 +39,8 @@ check_recipient:
DHE_RSA_AES_256_CBC_SHA1 : \
DHE_RSA_3DES_EDE_CBC_SHA : \
ECDHE-RSA-AES256-GCM-SHA384 : \
- ECDHE-RSA-AES128-GCM-SHA256
+ ECDHE-RSA-AES128-GCM-SHA256 : \
+ ECDHE-RSA-CHACHA20-POLY1305
warn logwrite = ${if def:tls_in_ourcert \
{Our cert SN: <${certextract{subject}{$tls_in_ourcert}}>} \
{We did not present a cert}}
diff --git a/test/confs/2138 b/test/confs/2138
index d6d7604d8..7fec82541 100644
--- a/test/confs/2138
+++ b/test/confs/2138
@@ -14,6 +14,7 @@ log_selector = +tls_peerdn+smtp_connection+incoming_port+received_recipients
queue_only
queue_run_in_order
+remote_max_parallel = 1
smtp_accept_max_nonmail = 0
diff --git a/test/confs/4520 b/test/confs/4520
index 897c1a675..8fa3c38c8 100644
--- a/test/confs/4520
+++ b/test/confs/4520
@@ -9,7 +9,7 @@ primary_hostname = myhost.test.ex
# ----- Main settings -----
-acl_smtp_rcpt = accept
+acl_smtp_rcpt = accept logwrite = macro: _DKIM_SIGN_HEADERS
acl_smtp_dkim = accept logwrite = signer: $dkim_cur_signer bits: $dkim_key_length h=$dkim_headernames
DDIR=DIR/aux-fixed/dkim
diff --git a/test/log/0901 b/test/log/0901
index 0297a8915..0f876740f 100644
--- a/test/log/0901
+++ b/test/log/0901
@@ -10,6 +10,6 @@
1999-03-02 09:44:33 SMTP connection from (tester) [127.0.0.1] lost while reading message data
1999-03-02 09:44:33 SMTP connection from (tester) [127.0.0.1] lost while reading message data
1999-03-02 09:44:33 10HmbD-0005vi-00 <= someone8@some.domain H=(tester) [127.0.0.1] P=esmtp K S=sss for CALLER@test.ex
-1999-03-02 09:44:33 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "BDAT 1" H=(tester) [127.0.0.1] next input="BDAT 87 last\r\n"
+1999-03-02 09:44:33 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "BDAT 1" H=(tester) [127.0.0.1] next input="BDAT 87 last\r\no: Susan@random.co"...
1999-03-02 09:44:33 SMTP call from (tester) [127.0.0.1] dropped: too many syntax or protocol errors (last command was "From: Sam@random.com")
1999-03-02 09:44:33 SMTP connection from (tester) [127.0.0.1] lost while reading message data (header)
diff --git a/test/log/2031 b/test/log/2031
index 04b404948..b4d0e0bf6 100644
--- a/test/log/2031
+++ b/test/log/2031
@@ -1,17 +1,17 @@
-1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for CALLER@test.ex
1999-03-02 09:44:33 10HmaX-0005vi-00 => CALLER@test.ex R=client T=send_to_server1 H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no DN="C=UK,O=The Exim Maintainers,OU=Test Suite,CN=Phil Pennock" C="250 OK id=10HmaY-0005vi-00"
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
-1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for abcd@test.ex
1999-03-02 09:44:33 10HmaZ-0005vi-00 => abcd@test.ex R=client T=send_to_server2 H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no DN="CN=server1.example.com" C="250 OK id=10HmbA-0005vi-00"
1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
1999-03-02 09:44:33 SNI <fred>
-1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtps X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no SNI="fred" S=sss id=E10HmaX-0005vi-00@myhost.test.ex
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtps X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no SNI="fred" S=sss id=E10HmaX-0005vi-00@myhost.test.ex for CALLER@test.ex
1999-03-02 09:44:33 10HmaY-0005vi-00 => :blackhole: <CALLER@test.ex> R=server
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
1999-03-02 09:44:33 SNI <bill>
-1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtps X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no SNI="bill" S=sss id=E10HmaZ-0005vi-00@myhost.test.ex
+1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtps X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no SNI="bill" S=sss id=E10HmaZ-0005vi-00@myhost.test.ex for abcd@test.ex
1999-03-02 09:44:33 10HmbA-0005vi-00 => :blackhole: <abcd@test.ex> R=server
1999-03-02 09:44:33 10HmbA-0005vi-00 Completed
diff --git a/test/log/2038 b/test/log/2038
index b3dfed849..1ffc1aa92 100644
--- a/test/log/2038
+++ b/test/log/2038
@@ -1,4 +1,3 @@
-**NOTE: The delivery lines in this file have been sorted.
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for userx0@test.ex userx1@test.ex
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for usery0@test.ex usery1@test.ex
1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for userz0@test.ex userz1@test.ex
diff --git a/test/log/2124 b/test/log/2124
index cafa67b4d..72f0a5342 100644
--- a/test/log/2124
+++ b/test/log/2124
@@ -4,4 +4,4 @@
1999-03-02 09:44:33 [ip4.ip4.ip4.ip4] SSL verify error: depth=0 error=self signed certificate cert=/C=UK/O=The Exim Maintainers/OU=Test Suite/CN=Phil Pennock
1999-03-02 09:44:33 TLS error on connection from (rhu.barb) [ip4.ip4.ip4.ip4] (SSL_accept): error: <<detail omitted>>
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
-1999-03-02 09:44:33 TLS error on connection from (rhu.barb) [ip4.ip4.ip4.ip4] (SSL_CTX_use_certificate_chain_file file=/non/exist): error:02001002:system library:fopen:No such file or directory
+1999-03-02 09:44:33 TLS error on connection from (rhu.barb) [ip4.ip4.ip4.ip4] (SSL_CTX_use_certificate_chain_file file=/non/exist): error:xxxxxxxx:system library:fopen:No such file or directory
diff --git a/test/log/2138 b/test/log/2138
index 6bc8e0284..6e82af290 100644
--- a/test/log/2138
+++ b/test/log/2138
@@ -1,4 +1,3 @@
-**NOTE: The delivery lines in this file have been sorted.
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for userx0@test.ex userx1@test.ex
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for usery0@test.ex usery1@test.ex
1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss for userz0@test.ex userz1@test.ex
diff --git a/test/log/4012 b/test/log/4012
new file mode 100644
index 000000000..4d602c230
--- /dev/null
+++ b/test/log/4012
@@ -0,0 +1,5 @@
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss
+1999-03-02 09:44:33 10HmaY-0005vi-00 => :blackhole: <userx@test.ex> R=r
+1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaX-0005vi-00 [127.0.0.1]:1111 malware_name wibble
+1999-03-02 09:44:33 10HmaX-0005vi-00 U=CALLER F=<CALLER@myhost.test.ex> rejected after DATA
diff --git a/test/log/4520 b/test/log/4520
index 8daa636c0..b0ddcd64e 100644
--- a/test/log/4520
+++ b/test/log/4520
@@ -13,22 +13,26 @@
******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
+1999-03-02 09:44:33 macro: From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmaY-0005vi-00 DKIM: d=test.ex s=sel c=relaxed/relaxed a=rsa-sha256 b=1024 [verification succeeded]
1999-03-02 09:44:33 10HmaY-0005vi-00 signer: test.ex bits: 1024 h=From
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaX-0005vi-00@myhost.test.ex
1999-03-02 09:44:33 10HmaY-0005vi-00 => :blackhole: <a@test.ex> R=server_dump
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
+1999-03-02 09:44:33 macro: From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmbA-0005vi-00 DKIM: d=test.ex s=sel c=relaxed/relaxed a=rsa-sha256 b=1024 [verification succeeded]
1999-03-02 09:44:33 10HmbA-0005vi-00 signer: test.ex bits: 1024 h=From:From
1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmaZ-0005vi-00@myhost.test.ex
1999-03-02 09:44:33 10HmbA-0005vi-00 => :blackhole: <b@test.ex> R=server_dump
1999-03-02 09:44:33 10HmbA-0005vi-00 Completed
+1999-03-02 09:44:33 macro: From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmbC-0005vi-00 DKIM: d=test.ex s=sel c=relaxed/relaxed a=rsa-sha256 b=1024 i=allheaders@test.ex [verification succeeded]
1999-03-02 09:44:33 10HmbC-0005vi-00 signer: test.ex bits: 1024 h=Date:Sender:Message-Id:From:Reply-To:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmbC-0005vi-00 signer: allheaders@test.ex bits: 1024 h=Date:Sender:Message-Id:From:Reply-To:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmbC-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbB-0005vi-00@myhost.test.ex
1999-03-02 09:44:33 10HmbC-0005vi-00 => :blackhole: <c@test.ex> R=server_dump
1999-03-02 09:44:33 10HmbC-0005vi-00 Completed
+1999-03-02 09:44:33 macro: From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmbE-0005vi-00 DKIM: d=test.ex s=sel_bad c=relaxed/relaxed a=rsa-sha256 b=1024 [invalid - syntax error in public key record]
1999-03-02 09:44:33 10HmbE-0005vi-00 signer: test.ex bits: 1024 h=From
1999-03-02 09:44:33 10HmbE-0005vi-00 <= CALLER@myhost.test.ex H=the.local.host.name (myhost.test.ex) [ip4.ip4.ip4.ip4] P=esmtp S=sss id=E10HmbD-0005vi-00@myhost.test.ex
diff --git a/test/log/4523 b/test/log/4523
index d1e5ebba3..5c07fa5a2 100644
--- a/test/log/4523
+++ b/test/log/4523
@@ -4,6 +4,7 @@
******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
+1999-03-02 09:44:33 macro: From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmaY-0005vi-00 DKIM: d=test.ex s=sel c=relaxed/relaxed a=rsa-sha512 b=1024 i=allheaders@test.ex [verification succeeded]
1999-03-02 09:44:33 10HmaY-0005vi-00 signer: test.ex bits: 1024 h=Date:Sender:Message-Id:From:Reply-To:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmaY-0005vi-00 signer: allheaders@test.ex bits: 1024 h=Date:Sender:Message-Id:From:Reply-To:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
diff --git a/test/log/4524 b/test/log/4524
index a6d687c83..e0dde322a 100644
--- a/test/log/4524
+++ b/test/log/4524
@@ -4,6 +4,7 @@
******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
+1999-03-02 09:44:33 macro: From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive
1999-03-02 09:44:33 10HmaY-0005vi-00 DKIM: d=test.ex s=ses c=relaxed/relaxed a=rsa-sha256 b=512 [verification succeeded]
1999-03-02 09:44:33 10HmaY-0005vi-00 DKIM: d=test.ex s=sel c=relaxed/relaxed a=rsa-sha256 b=1024 [verification succeeded]
1999-03-02 09:44:33 10HmaY-0005vi-00 signer: test.ex bits: 512 h=From:To:Subject
diff --git a/test/rejectlog/0901 b/test/rejectlog/0901
index f75d9d270..a4185a966 100644
--- a/test/rejectlog/0901
+++ b/test/rejectlog/0901
@@ -1,6 +1,6 @@
******** SERVER ********
-1999-03-02 09:44:33 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "BDAT 1" H=(tester) [127.0.0.1] next input="BDAT 87 last\r\n"
+1999-03-02 09:44:33 SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "BDAT 1" H=(tester) [127.0.0.1] next input="BDAT 87 last\r\no: Susan@random.co"...
Envelope-from: <someone9@some.domain>
Envelope-to: <CALLER@test.ex>
1999-03-02 09:44:33 SMTP call from (tester) [127.0.0.1] dropped: too many syntax or protocol errors (last command was "From: Sam@random.com")
diff --git a/test/rejectlog/4012 b/test/rejectlog/4012
new file mode 100644
index 000000000..bd26ac2a4
--- /dev/null
+++ b/test/rejectlog/4012
@@ -0,0 +1,12 @@
+1999-03-02 09:44:33 10HmaX-0005vi-00 U=CALLER F=<CALLER@myhost.test.ex> rejected after DATA
+Envelope-from: <CALLER@myhost.test.ex>
+Envelope-to: <userx@test.ex>
+P Received: from CALLER (helo=test.ex)
+ by myhost.test.ex with local-esmtp (Exim x.yz)
+ (envelope-from <CALLER@myhost.test.ex>)
+ id 10HmaX-0005vi-00
+ for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+ Date: Tue, 2 Mar 1999 09:44:33 +0000
+ Subject: message should be rejected
+I Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
+F From: CALLER_NAME <CALLER@myhost.test.ex>
diff --git a/test/runtest b/test/runtest
index 3bd6c77bd..b6babd06a 100755
--- a/test/runtest
+++ b/test/runtest
@@ -903,7 +903,8 @@ RESET_AFTER_EXTRA_LINE_READ:
next if /^SSL info:/;
next if /SSL verify error: depth=0 error=certificate not trusted/;
s/SSL3_READ_BYTES/ssl3_read_bytes/i;
- s/^\d+:error:\d+(:SSL routines:ssl3_read_bytes:[^:]+:).*(:SSL alert number \d\d)$/pppp:error:dddddddd$1\[...\]$2/;
+ s/CONNECT_CR_FINISHED/ssl3_read_bytes/i;
+ s/^\d+:error:\d+(?:E\d+)?(:SSL routines:ssl3_read_bytes:[^:]+:).*(:SSL alert number \d\d)$/pppp:error:dddddddd$1\[...\]$2/;
# gnutls version variances
next if /^Error in the pull function./;
@@ -924,15 +925,19 @@ RESET_AFTER_EXTRA_LINE_READ:
s/^Exim version .*/Exim version x.yz ..../;
- # Debugging lines for Exim terminations
+ # Debugging lines for Exim terminations and process-generation
s/(?<=^>>>>>>>>>>>>>>>> Exim pid=)\d+(?= terminating)/pppp/;
+ s/^(proxy-proc \w{5}-pid) \d+$/$1 pppp/;
# IP address lookups use gethostbyname() when IPv6 is not supported,
# and gethostbyname2() or getipnodebyname() when it is.
s/\b(gethostbyname2?|\bgetipnodebyname)(\(af=inet\))?/get[host|ipnode]byname[2]/;
+ # we don't care what TZ enviroment the testhost was running
+ next if /^Reset TZ to/;
+
# drop gnutls version strings
next if /GnuTLS compile-time version: \d+[\.\d]+$/;
next if /GnuTLS runtime version: \d+[\.\d]+$/;
@@ -1081,9 +1086,9 @@ RESET_AFTER_EXTRA_LINE_READ:
if (s/(with \$received_protocol)\}\} \$\{if def:tls_cipher \{\(\$tls_cipher\)\n$/$1/)
{
$_ .= <IN>;
- s/\s+\}\}(?=\(Exim )/\}\} /;
+ s/[\sâ•Ž]+\}\}(?=\(Exim )/\}\} /;
}
- if (/^ condition: def:tls_cipher$/)
+ if (/^ ├──condition: def:tls_cipher$/)
{
<IN>; <IN>; <IN>; <IN>; <IN>; <IN>;
<IN>; <IN>; <IN>; <IN>; <IN>; next;
@@ -1111,8 +1116,8 @@ RESET_AFTER_EXTRA_LINE_READ:
next if /^(ppppp )?setsockopt FASTOPEN: Protocol not available$/;
# Specific pointer values reported for DB operations change from run to run
- s/^(returned from EXIM_DBOPEN: 0x)[0-9a-f]+/$1AAAAAAAA/;
- s/^(EXIM_DBCLOSE.0x)[0-9a-f]+/$1AAAAAAAA/;
+ s/^(returned from EXIM_DBOPEN: )(0x)?[0-9a-f]+/${1}0xAAAAAAAA/;
+ s/^(EXIM_DBCLOSE.)(0x)?[0-9a-f]+/${1}0xAAAAAAAA/;
# When Exim is checking the size of directories for maildir, it uses
# the check_dir_size() function to scan directories. Of course, the order
@@ -1168,6 +1173,9 @@ RESET_AFTER_EXTRA_LINE_READ:
# CHUNKING: exact sizes depend on hostnames in headers
s/(=>.* K C="250- \d)\d+ (byte chunk, total \d)\d+/$1nn $2nn/;
+
+ # openssl version variances
+ s/(TLS error on connection [^:]*: error:)[0-9A-F]{8}(:system library):(?:fopen|func\(4095\)):(No such file or directory)$/$1xxxxxxxx$2:fopen:$3/;
}
# ======== All files other than stderr ========
@@ -1530,10 +1538,11 @@ $munges =
dkim_(canon|domain|private_key|selector|sign_headers|strict|hash|identity)
|gnutls_require_(kx|mac|protocols)
|hosts_(requ(est|ire)|try)_(dane|ocsp)
- |hosts_(avoid|nopass|require|verify_avoid)_tls
+ |hosts_(avoid|nopass|noproxy|require|verify_avoid)_tls
|socks_proxy
|tls_[^ ]*
- )($|[ ]=)/x' },
+ )($|[ ]=)/x'
+ },
'sys_bindir' =>
{ 'mainlog' => 's%/(usr/(local/)?)?bin/%SYSBINDIR/%' },
@@ -1549,6 +1558,12 @@ $munges =
'timeout_errno' => # actual errno differs Solaris vs. Linux
{ 'mainlog' => 's/(host deferral .* errno) <\d+> /$1 <EEE> /' },
+
+ 'peer_terminated_conn' => # actual error differs FreedBSD vs. Linux
+ { 'stderr' => 's/^( SMTP\()Connection reset by peer(\)<<)$/$1closed$2/' },
+
+ 'perl_variants' => # result of hash-in-scalar-context changed from bucket-fill to keycount
+ { 'stdout' => 's%^> X/X$%> X%' },
};
@@ -3924,8 +3939,12 @@ foreach $test (@test_list)
}
if ($force_continue)
{
- print "\nstderr tail:\n";
+ print "\nstdout tail:\n";
+ print "==================>\n";
+ system("tail -20 test-stdout");
print "===================\n";
+ print "stderr tail:\n";
+ print "==================>\n";
system("tail -20 test-stderr");
print "===================\n";
print "... continue forced\n";
diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002
index cb0bb188f..dd9cea255 100644
--- a/test/scripts/0000-Basic/0002
+++ b/test/scripts/0000-Basic/0002
@@ -133,6 +133,7 @@ addresses: ${addresses:>+ Exim Person <local-part@dom.ain> (that's me),\
addresses: ${addresses:Exim Person <local-part@dom.ain> (that's me), \
xyz@abc, nullgroupname:;, group: p@q, r@s; }
addresses: ${addresses:local-part@dom.ain <local-part@dom.ain>}
+addresses: ${addresses:>}
escape: ${escape:B7·F2ò}
excape8bit: ${escape8bit:undisturbed text\ttab\nnewline\ttab\\backslash \176tilde\177DEL\200\x81.}
diff --git a/test/scripts/0000-Basic/0476 b/test/scripts/0000-Basic/0476
index a7ddb0f4b..b068a16a0 100644
--- a/test/scripts/0000-Basic/0476
+++ b/test/scripts/0000-Basic/0476
@@ -1,4 +1,5 @@
# RSET error for multiple messages
+munge peer_terminated_conn
need_ipv4
#
exim -odi -odqs userx@test.ex
diff --git a/test/scripts/0000-Basic/0901 b/test/scripts/0000-Basic/0901
index 5e88c5ae9..f5a6fff9a 100644
--- a/test/scripts/0000-Basic/0901
+++ b/test/scripts/0000-Basic/0901
@@ -247,11 +247,7 @@ MAIL FROM:someone9@some.domain
??? 250
RCPT TO:CALLER@test.ex
??? 250
-BDAT 1\r\nTBDAT 87 last
-o: Susan@random.com
-From: Sam@random.com
-Subject: This is a bodyless test message
-
+BDAT 1\r\nTBDAT 87 last\r\no: Susan@random.com\r\nFrom: Sam@random.com\r\nSubject: This is a bodyless test message\r\n\r\n
??? 554 SMTP synchronization error
****
#
diff --git a/test/scripts/2000-GnuTLS/2030 b/test/scripts/2000-GnuTLS/2030
index ef7a8dea2..b009d476b 100644
--- a/test/scripts/2000-GnuTLS/2030
+++ b/test/scripts/2000-GnuTLS/2030
@@ -6,5 +6,5 @@ exim -DSERVER=server -bd -oX PORT_D
exim CALLER@test.ex
Test message.
****
-millisleep 500
+sleep 1
killdaemon
diff --git a/test/scripts/2000-GnuTLS/2031 b/test/scripts/2000-GnuTLS/2031
index 76186b5e4..d302738fd 100644
--- a/test/scripts/2000-GnuTLS/2031
+++ b/test/scripts/2000-GnuTLS/2031
@@ -6,14 +6,14 @@ exim -DSERVER=server -bd -oX PORT_D
exim CALLER@test.ex
Test message.
****
-millisleep 700
+sleep 1
#
#
# Extended: server uses SNI to choose certificate
exim abcd@test.ex
Test message.
****
-millisleep 700
+sleep 1
#
#
killdaemon
diff --git a/test/scripts/2000-GnuTLS/2038 b/test/scripts/2000-GnuTLS/2038
index 83259d998..650286814 100644
--- a/test/scripts/2000-GnuTLS/2038
+++ b/test/scripts/2000-GnuTLS/2038
@@ -16,4 +16,3 @@ exim -qqf
killdaemon
exim -DSERVER=server -DNOTDAEMON -qf
****
-sortlog
diff --git a/test/scripts/2100-OpenSSL/2102 b/test/scripts/2100-OpenSSL/2102
index cbb9ce393..bdf5496f6 100644
--- a/test/scripts/2100-OpenSSL/2102
+++ b/test/scripts/2100-OpenSSL/2102
@@ -47,6 +47,7 @@ This is a test encrypted message.
quit
??? 221
****
+# nonloop addr conn rejected lacking cert
client-ssl HOSTIPV4 PORT_D
??? 220
ehlo rhu.barb
@@ -57,7 +58,10 @@ ehlo rhu.barb
??? 250-
??? 250
starttls
-??? 220
+??? 220 TLS go ahead
++++ 1
+help
+??? 554
****
client-ssl HOSTIPV4 PORT_D DIR/aux-fixed/exim-ca/example.com/server2.example.com/server2.example.com.pem DIR/aux-fixed/exim-ca/example.com/server2.example.com/server2.example.com.unlocked.key
??? 220
diff --git a/test/scripts/2100-OpenSSL/2132 b/test/scripts/2100-OpenSSL/2132
index 620a63f57..4a12fb0bb 100644
--- a/test/scripts/2100-OpenSSL/2132
+++ b/test/scripts/2100-OpenSSL/2132
@@ -58,6 +58,9 @@ ehlo rhu.barb
??? 250
starttls
??? 220
++++ 1
+help
+??? 554
****
client-ssl HOSTIPV4 PORT_D DIR/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.pem DIR/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.unlocked.key
??? 220
diff --git a/test/scripts/2100-OpenSSL/2138 b/test/scripts/2100-OpenSSL/2138
index 3a94a1f2e..79eaa2f31 100644
--- a/test/scripts/2100-OpenSSL/2138
+++ b/test/scripts/2100-OpenSSL/2138
@@ -15,4 +15,3 @@ exim -qqf
killdaemon
exim -DSERVER=server -DNOTDAEMON -qf
****
-sortlog
diff --git a/test/scripts/2800-lmdb/2800 b/test/scripts/2800-lmdb/2800
index a074ae628..930f9f2bc 100644
--- a/test/scripts/2800-lmdb/2800
+++ b/test/scripts/2800-lmdb/2800
@@ -1,11 +1,30 @@
# lmdb lookup
+#
+# prep a test database to work with
+perl -e 'chdir "DIR/aux-var"; exec "mdb_load -n DIR/aux-var/TESTNUM.mdb";'
+VERSION=3
+format=print
+type=btree
+mapsize=10485760
+maxreaders=126
+HEADER=END
+ first
+ data for first
+ second
+ A=1 B=2
+ third
+ A1:B2:C3
+DATA=END
+****
+#
+#
exim -be
-${lookup{first}lmdb{DIR/aux-fixed/TESTNUM.mdb}}
-${lookup{first}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}fail}
-${lookup{fail}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}{failure value}}
-${lookup{fail}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}fail}
-${lookup{second}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}fail}
-${extract{A}{${lookup{second}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}fail}}}
-${extract{B}{${lookup{second}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}fail}}}
-${extract{C}{${lookup{second}lmdb{DIR/aux-fixed/TESTNUM.mdb}{$value}fail}}{$value}fail}
+${lookup{first}lmdb{DIR/aux-var/TESTNUM.mdb}}
+${lookup{first}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}fail}
+${lookup{fail}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}{failure value}}
+${lookup{fail}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}fail}
+${lookup{second}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}fail}
+${extract{A}{${lookup{second}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}fail}}}
+${extract{B}{${lookup{second}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}fail}}}
+${extract{C}{${lookup{second}lmdb{DIR/aux-var/TESTNUM.mdb}{$value}fail}}{$value}fail}
****
diff --git a/test/scripts/3000-Perl/3000 b/test/scripts/3000-Perl/3000
index 30ac29eb3..60db492ad 100644
--- a/test/scripts/3000-Perl/3000
+++ b/test/scripts/3000-Perl/3000
@@ -1,4 +1,5 @@
# Embedded Perl
+munge perl_variants
exim -be
${perl{foo}}
${perl{foo}{arg1}}
diff --git a/test/stderr/0002 b/test/stderr/0002
index 4b68f4e43..8bf8f886f 100644
--- a/test/stderr/0002
+++ b/test/stderr/0002
@@ -80,7 +80,7 @@ LOG: MAIN PANIC
└─────result: no
├──expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
└─────result: match_address: no
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -111,7 +111,7 @@ admin user
┌considering: -oMt sender_ident = $sender_ident
├──expanding: -oMt sender_ident = $sender_ident
└─────result: -oMt sender_ident = me
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
1999-03-02 09:44:33 no host name found for IP address V4NET.11.12.13
Exim version x.yz ....
configuration file is TESTSUITE/test-config
@@ -171,7 +171,7 @@ sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1] ident=me)
┌considering: -oMt sender_ident = $sender_ident
├──expanding: -oMt sender_ident = $sender_ident
└─────result: -oMt sender_ident = me
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -230,7 +230,7 @@ SMTP>> 550 Administrative prohibition
LOG: connection_reject MAIN REJECT
H=ten-1.test.ex [V4NET.0.0.1] rejected connection in "connect" ACL
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -274,7 +274,7 @@ SMTP>> 550 Administrative prohibition
LOG: connection_reject MAIN REJECT
H=[V4NET.0.0.2] rejected connection in "connect" ACL
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
@@ -425,4 +425,4 @@ sender address = CALLER@myhost.test.ex
1.2.3.4 in "1.2.3"? no (malformed IPv4 address or address mask)
1.2.3.4 in "1.2.3.4/abc"? no (malformed IPv4 address or address mask)
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0021 b/test/stderr/0021
index 299cc4974..207889b0d 100644
--- a/test/stderr/0021
+++ b/test/stderr/0021
@@ -103,7 +103,7 @@ accept: condition test succeeded in ACL "rcpt"
end of ACL "rcpt": ACCEPT
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
1999-03-02 09:44:33 ACL "warn" with "message" setting found in a non-message (EHLO or HELO) ACL: cannot specify header lines here: message ignored
Exim version x.yz ....
configuration file is TESTSUITE/test-config
@@ -195,9 +195,9 @@ LOG: MAIN
=> x <x@y> R=accept T=appendfile
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
1999-03-02 09:44:33 ACL "warn" with "message" setting found in a non-message (EHLO or HELO) ACL: cannot specify header lines here: message ignored
1999-03-02 09:44:33 rcpt accepted C=EHLO,MAIL,RCPT
diff --git a/test/stderr/0022 b/test/stderr/0022
index d83ee0e4c..ab14c40ce 100644
--- a/test/stderr/0022
+++ b/test/stderr/0022
@@ -65,7 +65,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.9.8.7] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -136,7 +136,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.9.8.7] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -208,7 +208,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.9.8.7] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
>>> host in hosts_connection_nolog? no (end of list)
LOG: SMTP connection from [V4NET.9.8.7]
>>> host in host_lookup? no (option unset)
diff --git a/test/stderr/0037 b/test/stderr/0037
index 22ee0d210..1d03f0d48 100644
--- a/test/stderr/0037
+++ b/test/stderr/0037
@@ -116,5 +116,5 @@ LOG: MAIN
=> userx <filter-userx@test.ex> R=user_accept2 T=appendfile
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0078 b/test/stderr/0078
index c5d815f7a..3ab49c820 100644
--- a/test/stderr/0078
+++ b/test/stderr/0078
@@ -21,7 +21,7 @@ routed by lookuphost router
envelope to: xx@mxt6.test.ex
transport: remote_smtp
host ten-1.test.ex [V4NET.0.0.1] MX=5
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -59,7 +59,7 @@ routed by self router
envelope to: myhost.test.ex@mxt1.test.ex
transport: remote_smtp
host myhost.test.ex [V4NET.10.10.10]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -111,7 +111,7 @@ routed by self2 router
envelope to: xx@mxt1.test.ex
transport: remote_smtp
host myhost.test.ex [V4NET.10.10.10]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -129,4 +129,4 @@ lookuphost router called for xx@not.exist
lookuphost router declined for xx@not.exist
"more" is false: skipping remaining routers
no more routers
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0084 b/test/stderr/0084
index d424cc053..cda7d1275 100644
--- a/test/stderr/0084
+++ b/test/stderr/0084
@@ -67,4 +67,4 @@ domain = myhost.test.ex
routed by smart router
envelope to: no@myhost.test.ex
transport: <none>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0085 b/test/stderr/0085
index fb6810575..32705b79f 100644
--- a/test/stderr/0085
+++ b/test/stderr/0085
@@ -199,7 +199,7 @@ myhost.test.ex in "test.ex"? no (end of list)
smart2 router skipped: domains mismatch
no more routers
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -373,4 +373,4 @@ myhost.test.ex in "test.ex"? no (end of list)
smart2 router skipped: domains mismatch
no more routers
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0092 b/test/stderr/0092
index ff8d0d39a..d2b3b5c2a 100644
--- a/test/stderr/0092
+++ b/test/stderr/0092
@@ -110,7 +110,7 @@ LOG: lost_incoming_connection MAIN
SMTP data timeout (message abandoned) on connection from [V4NET.0.0.1] F=<userx@test.ex>
SMTP>> 421 myhost.test.ex SMTP incoming data timeout - closing connection.
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp NULLterminating with rc=1 >>>>>>>>>>>>>>>>
exim: timed out while reading - message abandoned
exim: timed out while reading - message abandoned
>>> host in hosts_connection_nolog? no (option unset)
diff --git a/test/stderr/0094 b/test/stderr/0094
index c0dbb7d26..efd339bf1 100644
--- a/test/stderr/0094
+++ b/test/stderr/0094
@@ -154,4 +154,4 @@ SMTP>> 221 the.local.host.name closing connection
LOG: smtp_connection MAIN
SMTP connection from oneback.test.ex [V4NET.99.99.90] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0117 b/test/stderr/0117
index 18e159f5a..45325c3d9 100644
--- a/test/stderr/0117
+++ b/test/stderr/0117
@@ -19,7 +19,7 @@ routed by lookuphost router
host ten-1.test.ex [V4NET.0.0.1] MX=5
host ten-2.test.ex [V4NET.0.0.2] MX=6
host ten-3.test.ex [V4NET.0.0.3] MX=7
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -41,7 +41,7 @@ routed by lookuphost router
host ten-1.test.ex [V4NET.0.0.1] MX=5
host ten-2.test.ex [V4NET.0.0.2] MX=6
host ten-3.test.ex [V4NET.0.0.3] MX=7
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -63,4 +63,4 @@ routed by lookuphost router
host ten-1.test.ex [V4NET.0.0.1] MX=5
host ten-2.test.ex [V4NET.0.0.2] MX=6
host ten-3.test.ex [V4NET.0.0.3] MX=7
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0123 b/test/stderr/0123
index 72eaef139..6d51d3252 100644
--- a/test/stderr/0123
+++ b/test/stderr/0123
@@ -437,4 +437,4 @@ parse_forward_list:
c3 router declined for z@test.ex
no more routers
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0143 b/test/stderr/0143
index b1d0ff9b6..493e4e38b 100644
--- a/test/stderr/0143
+++ b/test/stderr/0143
@@ -53,5 +53,5 @@ LOG: MAIN
=> userx@domain.com R=my_main_router T=my_smtp H=127.0.0.1 [127.0.0.1] C="250 OK"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0149 b/test/stderr/0149
index 986177b45..cd4fdd8fc 100644
--- a/test/stderr/0149
+++ b/test/stderr/0149
@@ -187,4 +187,4 @@ routed by domainlist2 router
transport: <none>
host V4NET.0.0.6 [V4NET.0.0.6]
host V4NET.0.0.7 [V4NET.0.0.7]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0161 b/test/stderr/0161
index 3a806f3de..0147fcb6f 100644
--- a/test/stderr/0161
+++ b/test/stderr/0161
@@ -28,7 +28,7 @@ routed by lookuphost router
envelope to: xx@mxt6.test.ex
transport: remote_smtp
host ten-1.test.ex [V4NET.0.0.1] MX=5
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -78,7 +78,7 @@ routed by self router
envelope to: myhost.test.ex@mxt1.test.ex
transport: remote_smtp
host myhost.test.ex [V4NET.10.10.10]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -142,7 +142,7 @@ routed by self2 router
envelope to: xx@mxt1.test.ex
transport: remote_smtp
host myhost.test.ex [V4NET.10.10.10]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -167,7 +167,7 @@ lookuphost router called for xx@not.exist
lookuphost router declined for xx@not.exist
"more" is false: skipping remaining routers
no more routers
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -187,7 +187,7 @@ failuphost router called for ff@mxt1.test.ex
domain = mxt1.test.ex
lowest numbered MX record points to local host: mxt1.test.ex: address failed (self = fail)
failuphost router forced address failure
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -226,4 +226,4 @@ set transport remote_smtp
finding IP address for fff
calling host_find_byname
fail router forced address failure
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0169 b/test/stderr/0169
index 30ed85f8d..ca5211478 100644
--- a/test/stderr/0169
+++ b/test/stderr/0169
@@ -35,5 +35,5 @@ LOG: MAIN
=> userx <userx@myhost.test.ex> R=localuser T=appendfile
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0183 b/test/stderr/0183
index 70385352e..35fc1967d 100644
--- a/test/stderr/0183
+++ b/test/stderr/0183
@@ -190,7 +190,7 @@ routed by lookuphost router
transport: smtp
host ten-1.test.ex [V4NET.0.0.1]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -381,7 +381,7 @@ routed by lookuphost router
transport: smtp
host ten-1.test.ex [V4NET.0.0.1]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -574,7 +574,7 @@ routed by lookuphost router
transport: smtp
host ten-1.test.ex [V4NET.0.0.1]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -635,4 +635,4 @@ returning DNS_FAIL
srv router: defer for srv@test.fail.dns
message: host lookup did not complete
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0218 b/test/stderr/0218
index f9f1d6849..552b5682e 100644
--- a/test/stderr/0218
+++ b/test/stderr/0218
@@ -56,10 +56,10 @@ LOG: MAIN
=> b@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=pppp -qq
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -100,7 +100,7 @@ trusted user
admin user
LOG: MAIN
<= <> R=10HmaZ-0005vi-00 U=EXIMUSER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
delivering 10HmbA-0005vi-00 (queue run pid ppppp)
@@ -113,7 +113,7 @@ LOG: MAIN
== b@test.ex R=client T=send_to_server defer (dd): Connection refused
LOG: queue_run MAIN
End queue run: pid=pppp -qq
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -158,7 +158,7 @@ trusted user
admin user
LOG: MAIN
<= <> R=10HmbA-0005vi-00 U=EXIMUSER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
Exim version x.yz ....
@@ -182,7 +182,7 @@ LOG: MAIN
=> c@test.ex F=<CALLER@test.ex> R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* C="250 OK"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=pppp -qqf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0249 b/test/stderr/0249
index b73502fa0..e57ef2755 100644
--- a/test/stderr/0249
+++ b/test/stderr/0249
@@ -17,4 +17,4 @@ LOG: address_rewrite MAIN
"User@c.domain" from env-from rewritten as "User@d.domain" by rule 2
LOG: address_rewrite MAIN
"User@c.domain" from env-to rewritten as "User@d.domain" by rule 2
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0275 b/test/stderr/0275
index 089dc2a8b..b663ad4b8 100644
--- a/test/stderr/0275
+++ b/test/stderr/0275
@@ -105,7 +105,7 @@ routed by r3 router
envelope to: userx@test.ex
transport: t1
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -198,7 +198,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -308,7 +308,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -354,6 +354,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0277 b/test/stderr/0277
index e92ac09f1..c174db8f1 100644
--- a/test/stderr/0277
+++ b/test/stderr/0277
@@ -37,7 +37,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -72,7 +72,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.6.7.8] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -115,7 +115,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.10.11.12] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -158,7 +158,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.1.1.1] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -200,4 +200,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.2.2.2] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0278 b/test/stderr/0278
index b7c7913df..c3a22c0e0 100644
--- a/test/stderr/0278
+++ b/test/stderr/0278
@@ -60,7 +60,7 @@ routed by r3 router
envelope to: CALLER@test.ex
transport: t1
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -145,7 +145,7 @@ Delivery address list:
CALLER@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -210,7 +210,7 @@ search_tidyup called
--------> CALLER@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -256,9 +256,9 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -342,4 +342,4 @@ unknown in "+local_localparts : +expanded : +unexpanded"? no (end of list)
r5 router skipped: local_parts mismatch
no more routers
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0279 b/test/stderr/0279
index efc549d2c..7762859fa 100644
--- a/test/stderr/0279
+++ b/test/stderr/0279
@@ -73,7 +73,7 @@ routed by r3 router
envelope to: CALLER@test.ex
transport: t1
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -112,4 +112,4 @@ parse_forward_list: :fail: matched *@+funny_domains
extract item: :fail: matched *@+funny_domains
rr1 router forced address failure
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0283 b/test/stderr/0283
index 95d0f0a4e..55b98b770 100644
--- a/test/stderr/0283
+++ b/test/stderr/0283
@@ -69,12 +69,12 @@ changed uid/gid: post-delivery tidying
uid=EXIM_UID gid=EXIM_GID pid=pppp
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -108,5 +108,5 @@ LOG: MAIN
== never@myhost.test.ex R=never T=t3 defer (-29): User 0 set for t3 transport is on the never_users list
changed uid/gid: post-delivery tidying
uid=EXIM_UID gid=EXIM_GID pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0294 b/test/stderr/0294
index c020fda0f..f4cd59269 100644
--- a/test/stderr/0294
+++ b/test/stderr/0294
@@ -98,7 +98,7 @@ SMTP<< quit
SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -146,7 +146,7 @@ SMTP<< quit
SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [1.2.3.4] closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -195,7 +195,7 @@ SMTP<< quit
SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.9.8.7] closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -256,4 +256,4 @@ SMTP<< quit
SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0297 b/test/stderr/0297
index 9eb75937f..f5db068eb 100644
--- a/test/stderr/0297
+++ b/test/stderr/0297
@@ -21,7 +21,7 @@ r1 router generated /a/b/c
routed by r1 router
envelope to: /a/b/c@myhost.test.ex
transport: <none>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -45,7 +45,7 @@ r1 router generated /x/y/z
routed by r1 router
envelope to: /x/y/z@myhost.test.ex
transport: <none>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
<= fil@ter U=CALLER P=local S=sss
delivering 10HmaX-0005vi-00
diff --git a/test/stderr/0303 b/test/stderr/0303
index 0a78b30f0..edf35c14f 100644
--- a/test/stderr/0303
+++ b/test/stderr/0303
@@ -112,7 +112,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from ([V4NET.2.3.4]) [V4NET.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -188,4 +188,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from host.name.tld [V4NET.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0315 b/test/stderr/0315
index 1c3e974f4..13db682d3 100644
--- a/test/stderr/0315
+++ b/test/stderr/0315
@@ -58,8 +58,8 @@ LOG: MAIN
*> y@ten-1.test.ex R=r1 T=t1 H=ten-1.test.ex [V4NET.0.0.1] C="delivery bypassed by -N option"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -138,5 +138,5 @@ LOG: MAIN
*> y@ten-2.test.ex R=r2 T=t1 H=ten-2.test.ex [V4NET.0.0.2] C="delivery bypassed by -N option"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0317 b/test/stderr/0317
index b71581e68..b9cc831fe 100644
--- a/test/stderr/0317
+++ b/test/stderr/0317
@@ -33,7 +33,7 @@ Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
created log directory TESTSUITE/spool/log
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -74,4 +74,4 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0332 b/test/stderr/0332
index 7dea91571..a0072373c 100644
--- a/test/stderr/0332
+++ b/test/stderr/0332
@@ -83,7 +83,7 @@ locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK"
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
locking TESTSUITE/spool/db/retry.lockfile
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering: delay@test.again.dns
@@ -99,4 +99,4 @@ After routing:
delay@test.again.dns
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0333 b/test/stderr/0333
index 595f0f869..8aa3598c0 100644
--- a/test/stderr/0333
+++ b/test/stderr/0333
@@ -37,7 +37,7 @@ LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1] C="250 OK"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -82,4 +82,4 @@ locking TESTSUITE/spool/db/retry.lockfile
locking TESTSUITE/spool/db/wait-t1.lockfile
LOG: MAIN
=> ok@no.delay R=r1 T=t1 H=127.0.0.1 [127.0.0.1]* C="250 OK"
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0357 b/test/stderr/0357
index 9cc0a6bb5..522cf03c4 100644
--- a/test/stderr/0357
+++ b/test/stderr/0357
@@ -41,8 +41,8 @@ Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<userx@test.ex>: 451 Temporary error
end of retry processing
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -96,7 +96,7 @@ Writing retry data for R:userx@test.ex:<CALLER@test.ex>
end of retry processing
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -150,7 +150,7 @@ Writing retry data for R:userx@test.ex:<CALLER@test.ex>
end of retry processing
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -180,4 +180,4 @@ Deferred addresses:
end of retry processing
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0358 b/test/stderr/0358
index 6f75cf630..f4c629b09 100644
--- a/test/stderr/0358
+++ b/test/stderr/0358
@@ -57,8 +57,8 @@ Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<userx@test.ex>: 451 Temporary error
end of retry processing
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -141,4 +141,4 @@ Writing retry data for R:userx@test.ex:<CALLER@test.ex>
end of retry processing
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0360 b/test/stderr/0360
index 527e37893..0e1710160 100644
--- a/test/stderr/0360
+++ b/test/stderr/0360
@@ -150,8 +150,8 @@ After routing:
locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
*> unknown@recurse.test.ex.test.ex <cms@test.ex> R=r1 T=t1 H=recurse.test.ex.test.ex [V4NET.99.0.2] C="delivery bypassed by -N option"
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -251,4 +251,4 @@ After routing:
defer@test.ex
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0361 b/test/stderr/0361
index 4d3bb363b..8d2f9de6e 100644
--- a/test/stderr/0361
+++ b/test/stderr/0361
@@ -86,7 +86,7 @@ Delivery address list:
kilos@recurse.test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -123,7 +123,7 @@ rewrite_one_header: type=F:
re-routed to kilos@recurse.test.ex.test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -163,7 +163,7 @@ routed by r3 router
transport: <none>
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -212,7 +212,7 @@ search_tidyup called
--------> kilos@recurse.test.ex.test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -263,6 +263,6 @@ LOG: MAIN
end delivery of 10HmaY-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0362 b/test/stderr/0362
index 913901e15..b638ecd07 100644
--- a/test/stderr/0362
+++ b/test/stderr/0362
@@ -85,4 +85,4 @@ SMTP>> 221 the.local.host.name closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.0.0.0] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0364 b/test/stderr/0364
index d6a49bbf6..3fd65e473 100644
--- a/test/stderr/0364
+++ b/test/stderr/0364
@@ -214,4 +214,4 @@ routed by r2 router
envelope to: xxx@testsub.sub.test.ex
transport: t1
host testsub.sub.test.ex [V4NET.99.0.3]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0368 b/test/stderr/0368
index cdeaf2cb7..d631948e8 100644
--- a/test/stderr/0368
+++ b/test/stderr/0368
@@ -25,4 +25,4 @@ finding IP address for ten-2.test.ex
doing DNS lookup
fully qualified name = ten-2.test.ex
ten-2.test.ex V4NET.0.0.2 mx=-1 sort=xx
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0370 b/test/stderr/0370
index 1f00a3de1..c841f3734 100644
--- a/test/stderr/0370
+++ b/test/stderr/0370
@@ -33,5 +33,5 @@ changed uid/gid: post-delivery tidying
uid=EXIM_UID gid=EXIM_GID pid=pppp
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0371 b/test/stderr/0371
index c59988723..9ff930690 100644
--- a/test/stderr/0371
+++ b/test/stderr/0371
@@ -142,4 +142,4 @@ SMTP>> 221 mail.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from (something) [V4NET.0.0.0] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0374 b/test/stderr/0374
index c8163712a..ea6803720 100644
--- a/test/stderr/0374
+++ b/test/stderr/0374
@@ -454,7 +454,7 @@ LOG: MAIN
=> CALLER <CALLER@myhost.test.ex> R=real T=real
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0375 b/test/stderr/0375
index 8b59febdc..e0f314353 100644
--- a/test/stderr/0375
+++ b/test/stderr/0375
@@ -947,16 +947,16 @@ LOG: MAIN
locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
d3@myhost.test.ex <d3@myhost.test.ex>: error ignored
log writing disabled
LOG: MAIN
b1@myhost.test.ex <b1@myhost.test.ex>: error ignored
log writing disabled
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -1073,5 +1073,5 @@ log writing disabled
locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0376 b/test/stderr/0376
index abd462b01..0a2c4f63b 100644
--- a/test/stderr/0376
+++ b/test/stderr/0376
@@ -28,7 +28,7 @@ wrote callout cache domain record for localhost:
wrote positive callout cache address record for ok@localhost
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -45,7 +45,7 @@ callout cache: found address record for ok@localhost
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -69,7 +69,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -104,7 +104,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -125,7 +125,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -157,7 +157,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -177,7 +177,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -219,7 +219,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -239,7 +239,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -277,7 +277,7 @@ wrote callout cache domain record for otherhost2:
wrote positive callout cache address record for ok@otherhost2
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -295,7 +295,7 @@ callout cache: found address record for ok@otherhost2
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -325,7 +325,7 @@ wrote callout cache domain record for otherhost3:
result=1 postmaster=0 random=1
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -341,7 +341,7 @@ callout cache: found domain record for otherhost3
callout cache: domain accepts random addresses
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -371,7 +371,7 @@ wrote callout cache domain record for otherhost4:
result=1 postmaster=0 random=1
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -387,7 +387,7 @@ callout cache: found domain record for otherhost4
callout cache: domain accepts random addresses
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -431,7 +431,7 @@ wrote callout cache domain record for otherhost41:
wrote positive callout cache address record for ok@otherhost41
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -450,7 +450,7 @@ callout cache: found address record for ok@otherhost41
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -488,7 +488,7 @@ wrote callout cache domain record for otherhost21:
wrote positive callout cache address record for ok@otherhost21
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -520,7 +520,7 @@ wrote callout cache domain record for otherhost21:
wrote positive callout cache address record for ok2@otherhost21
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -557,7 +557,7 @@ wrote callout cache domain record for otherhost31:
wrote positive callout cache address record for ok@otherhost31
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -589,7 +589,7 @@ wrote callout cache domain record for otherhost31:
wrote positive callout cache address record for okok@otherhost31
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -626,7 +626,7 @@ wrote callout cache domain record for otherhost31:
wrote positive callout cache address record for okokok@otherhost31
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -658,7 +658,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.5] U=root F=<okok@otherhost51> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -696,7 +696,7 @@ wrote callout cache domain record for otherhost52:
wrote positive callout cache address record for okokok@otherhost52
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -730,7 +730,7 @@ LOG: MAIN
<= ok7@otherhost53 H=[V4NET.0.0.7] U=root P=smtp S=sss
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -761,7 +761,7 @@ LOG: MAIN
<= ok7@otherhost53 H=[V4NET.0.0.8] U=root P=smtp S=sss
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -801,7 +801,7 @@ wrote callout cache domain record for otherhost9:
wrote positive callout cache address record for ok@otherhost9
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -845,4 +845,4 @@ wrote callout cache domain record for test.ex:
wrote positive callout cache address record for z@test.ex/<postmaster@myhost.test.ex>
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0377 b/test/stderr/0377
index 848ee3367..5ca0ade9d 100644
--- a/test/stderr/0377
+++ b/test/stderr/0377
@@ -323,8 +323,8 @@ locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
=> cccc <cccc@myhost.test.ex> R=cccc_accept T=t1
locking TESTSUITE/spool/db/retry.lockfile
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -575,7 +575,7 @@ bbbb@myhost.test.ex was previously delivered (t1 transport): discarded
locking TESTSUITE/spool/db/retry.lockfile
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -826,4 +826,4 @@ bbbb@myhost.test.ex was previously delivered (t1 transport): discarded
locking TESTSUITE/spool/db/retry.lockfile
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0378 b/test/stderr/0378
index d82f049a7..e48232267 100644
--- a/test/stderr/0378
+++ b/test/stderr/0378
@@ -171,8 +171,8 @@ After routing:
Deferred addresses:
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> >CALLER@myhost.test.ex <aaaa@myhost.test.ex> R=aaaa T=t3
locking TESTSUITE/spool/db/retry.lockfile
@@ -183,8 +183,8 @@ locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
=> TESTSUITE/test-mail/file <aaaa@myhost.test.ex> R=aaaa T=t1
locking TESTSUITE/spool/db/retry.lockfile
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -329,4 +329,4 @@ After routing:
locking TESTSUITE/spool/db/retry.lockfile
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0379 b/test/stderr/0379
index 7f0c70020..ab4350626 100644
--- a/test/stderr/0379
+++ b/test/stderr/0379
@@ -137,8 +137,8 @@ locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
=> cccc <aaaa@myhost.test.ex> R=bc T=t1
locking TESTSUITE/spool/db/retry.lockfile
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -177,4 +177,4 @@ After routing:
locking TESTSUITE/spool/db/retry.lockfile
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0380 b/test/stderr/0380
index 4c31b577f..5e81f1c67 100644
--- a/test/stderr/0380
+++ b/test/stderr/0380
@@ -89,5 +89,5 @@ locking TESTSUITE/spool/db/retry.lockfile
LOG: MAIN
=> bbbb <bbbb@myhost.test.ex> R=r3 T=t1
locking TESTSUITE/spool/db/retry.lockfile
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0381 b/test/stderr/0381
index cd98205f2..fff2922f9 100644
--- a/test/stderr/0381
+++ b/test/stderr/0381
@@ -79,4 +79,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0382 b/test/stderr/0382
index 0001a8ae8..6fdaaa966 100644
--- a/test/stderr/0382
+++ b/test/stderr/0382
@@ -32,12 +32,12 @@ LOG: MAIN
** CALLER@test.ex: Unrouteable address
LOG: MAIN
Frozen (delivery error message)
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -49,4 +49,4 @@ LOG: MAIN
Completed
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0386 b/test/stderr/0386
index 5573a9964..c24b8725c 100644
--- a/test/stderr/0386
+++ b/test/stderr/0386
@@ -128,7 +128,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.9.8.7] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -252,7 +252,7 @@ Delivery address list:
2@b
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -290,7 +290,7 @@ search_tidyup called
--------> 2@b <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -346,7 +346,7 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
smtp_setup_msg entered
SMTP<< rset
SMTP>> 250 Reset OK
@@ -436,7 +436,7 @@ Delivery address list:
2@b
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -473,7 +473,7 @@ search_tidyup called
--------> 2@b <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -529,11 +529,11 @@ LOG: MAIN
end delivery of 10HmaY-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
smtp_setup_msg entered
SMTP<< quit
SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0387 b/test/stderr/0387
index f3f924463..0d0d319ce 100644
--- a/test/stderr/0387
+++ b/test/stderr/0387
@@ -434,4 +434,4 @@ cached data used for lookup of *.b.c
in TESTSUITE/aux-fixed/0387.1
lookup yielded: [*.b.c]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0388 b/test/stderr/0388
index 5a21445c9..96a2efede 100644
--- a/test/stderr/0388
+++ b/test/stderr/0388
@@ -9,7 +9,7 @@ set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -77,7 +77,7 @@ set_process_info: pppp delivering 10HmaX-0005vi-00 using smtp
checking status of 127.0.0.1
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -109,7 +109,7 @@ address match test: subject=*@127.0.0.1 pattern=*
checking status of V4NET.0.0.0
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -140,7 +140,7 @@ Deferred addresses:
x@y
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR
address match test: subject=x@y pattern=*
@@ -240,7 +240,7 @@ set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaY-0005vi-00
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -292,9 +292,9 @@ LOG: MAIN
Completed
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Writing spool header file: TESTSUITE/spool//input//hdr.pppp
Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
Size of headers = sss
@@ -302,4 +302,4 @@ LOG: MAIN
Completed
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0391 b/test/stderr/0391
index 783db01c5..1878f2f27 100644
--- a/test/stderr/0391
+++ b/test/stderr/0391
@@ -66,4 +66,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [1.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0393 b/test/stderr/0393
index 7fb82e35c..174f22bdb 100644
--- a/test/stderr/0393
+++ b/test/stderr/0393
@@ -43,8 +43,8 @@ LOG: MAIN
=> userx <userx@test.ex> R=r1 T=t1
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -80,8 +80,8 @@ LOG: MAIN
=> userx <userx@test.ex> R=r1 T=t1
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -119,5 +119,5 @@ LOG: MAIN
=> userx <userx@test.ex> R=r1 T=t1
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0396 b/test/stderr/0396
index 427b7b43a..61953ac15 100644
--- a/test/stderr/0396
+++ b/test/stderr/0396
@@ -33,4 +33,4 @@ SMTP>> 221 the.local.host.name closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0398 b/test/stderr/0398
index f61f37457..ff0aa766f 100644
--- a/test/stderr/0398
+++ b/test/stderr/0398
@@ -120,7 +120,7 @@ routed by r2 router
Attempting full verification using callout
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR
dbfn_read: key=remote
@@ -151,7 +151,7 @@ cmd buf flush ddd bytes
SMTP(close)>>
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags 0x42
+EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR|O_CREAT
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT
dbfn_write: key=remote
@@ -233,7 +233,7 @@ routed by r2 router
Attempting full verification using callout
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR
dbfn_read: key=remote
@@ -262,4 +262,4 @@ SMTP>> 221 mail.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0399 b/test/stderr/0399
index 2e7ccc757..dcfe3e608 100644
--- a/test/stderr/0399
+++ b/test/stderr/0399
@@ -43,4 +43,4 @@ parse_forward_list:
r3 router declined for x@y
failed to expand "more" in r3 router: unknown variable name "unknown_variable"
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0402 b/test/stderr/0402
index 8d62a2ef5..b5b2ed099 100644
--- a/test/stderr/0402
+++ b/test/stderr/0402
@@ -76,7 +76,7 @@ Data file written for message 10HmaX-0005vi-00
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -107,18 +107,6 @@ Data file written for message 10HmaX-0005vi-00
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -221,7 +209,7 @@ Delivery address list:
rd+usery@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -417,7 +405,7 @@ routed by r1 router
transport: t1
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -445,7 +433,7 @@ search_tidyup called
--------> TESTSUITE/test-mail/junk <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -505,7 +493,7 @@ LOG: MAIN
--------> TESTSUITE/test-mail/junk <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -562,7 +550,7 @@ LOG: MAIN
--------> CALLER@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -588,7 +576,7 @@ LOG: MAIN
--------> usery@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -617,7 +605,7 @@ LOG: MAIN
--------> userz@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -722,6 +710,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0403 b/test/stderr/0403
index a77d8cd98..e27f05a6b 100644
--- a/test/stderr/0403
+++ b/test/stderr/0403
@@ -74,7 +74,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -138,7 +138,7 @@ routed by r1 router
transport: <none>
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -158,7 +158,7 @@ search_tidyup called
--------> TESTSUITE/test-mail/junk <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -213,6 +213,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0404 b/test/stderr/0404
index 1718307be..5bdfcb6af 100644
--- a/test/stderr/0404
+++ b/test/stderr/0404
@@ -177,7 +177,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -221,7 +221,7 @@ routed by r2 router
transport: <none>
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -241,7 +241,7 @@ search_tidyup called
--------> >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ... <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -3378,7 +3378,7 @@ Delivery address list:
sender@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -17985,7 +17985,7 @@ sender@test.ex is a duplicate address: discarded
--------> sender@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -18043,9 +18043,9 @@ LOG: MAIN
end delivery of 10HmaY-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
t1 transport succeeded
search_tidyup called
journalling >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ...:userx@test.ex
@@ -18088,6 +18088,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0408 b/test/stderr/0408
index fddbe4a46..f222df518 100644
--- a/test/stderr/0408
+++ b/test/stderr/0408
@@ -74,7 +74,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -139,7 +139,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -195,6 +195,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0414 b/test/stderr/0414
index 06a9e7f4f..6ac19025a 100644
--- a/test/stderr/0414
+++ b/test/stderr/0414
@@ -134,4 +134,4 @@ routed by r3 router
envelope to: x@a.domain
transport: t1
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0419 b/test/stderr/0419
index 37bab88f2..3b5c51a17 100644
--- a/test/stderr/0419
+++ b/test/stderr/0419
@@ -49,4 +49,4 @@ routed by dnslookup router
transport: smtp
host other1.test.ex [V4NET.12.4.5] MX=4
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0426 b/test/stderr/0426
index 498ef1e70..52914f0a5 100644
--- a/test/stderr/0426
+++ b/test/stderr/0426
@@ -95,9 +95,9 @@ After routing:
Deferred addresses:
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0432 b/test/stderr/0432
index 79117e25a..ade8e0015 100644
--- a/test/stderr/0432
+++ b/test/stderr/0432
@@ -81,7 +81,7 @@ get[host|ipnode]byname[2] looked up these IP addresses:
Attempting full verification using callout
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR
dbfn_read: key=y
@@ -112,7 +112,7 @@ cmd buf flush ddd bytes
SMTP(close)>>
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags 0x42
+EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR|O_CREAT
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT
dbfn_write: key=y
@@ -132,7 +132,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [1.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -191,7 +191,7 @@ get[host|ipnode]byname[2] looked up these IP addresses:
Attempting full verification using callout
locking TESTSUITE/spool/db/callout.lockfile
locked TESTSUITE/spool/db/callout.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/callout> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR
dbfn_read: key=y
@@ -211,7 +211,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [1.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
diff --git a/test/stderr/0435 b/test/stderr/0435
index 5c1c228fc..1ec601657 100644
--- a/test/stderr/0435
+++ b/test/stderr/0435
@@ -22,4 +22,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0437 b/test/stderr/0437
index 8c0bfe8c6..1bee416cf 100644
--- a/test/stderr/0437
+++ b/test/stderr/0437
@@ -79,4 +79,4 @@ search_tidyup called
LOG: queue_run MAIN
End queue run: pid=pppp
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0450 b/test/stderr/0450
index 3259e19c8..c55829d7f 100644
--- a/test/stderr/0450
+++ b/test/stderr/0450
@@ -27,8 +27,8 @@ added to list for 127.0.0.1
Leaving t1 transport
LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (dd): Connection refused
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -57,4 +57,4 @@ LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (dd): Connection refused
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0462 b/test/stderr/0462
index 072503e91..9d2778de3 100644
--- a/test/stderr/0462
+++ b/test/stderr/0462
@@ -48,7 +48,7 @@ callout cache: found address record for Ok@localhost
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -83,7 +83,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.2] U=root F=<NOTok@elsewhere> rejected RCPT <nocheckpm@test.ex>: Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -116,4 +116,4 @@ LOG: MAIN REJECT
H=[V4NET.0.0.2] U=root F=<NOTok2@elsewhere> rejected RCPT <nocheckpm@test.ex>: Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0463 b/test/stderr/0463
index 2c6fc05da..c8c956dde 100644
--- a/test/stderr/0463
+++ b/test/stderr/0463
@@ -66,4 +66,4 @@ routed by all router
transport: smtp
host ten-1.test.ex [V4NET.0.0.1]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0464 b/test/stderr/0464
index f5615411a..b4c663691 100644
--- a/test/stderr/0464
+++ b/test/stderr/0464
@@ -175,4 +175,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0465 b/test/stderr/0465
index 92250956d..52dcbf3d5 100644
--- a/test/stderr/0465
+++ b/test/stderr/0465
@@ -29,7 +29,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
exim: bad -f address "abc@somewhere.": domain is malformed (trailing dot not allowed)
Exim version x.yz ....
changed uid/gid: forcing real = effective
@@ -103,7 +103,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -166,4 +166,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0469 b/test/stderr/0469
index eff873f3c..ef16753d1 100644
--- a/test/stderr/0469
+++ b/test/stderr/0469
@@ -31,4 +31,4 @@ host_find_bydns yield = HOST_FIND_FAILED (0); returned hosts:
r1 router declined for x@mxt1c.test.ex
no more routers
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0471 b/test/stderr/0471
index bb67be2d4..fb5c986dd 100644
--- a/test/stderr/0471
+++ b/test/stderr/0471
@@ -25388,4 +25388,4 @@ LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
created log directory TESTSUITE/spool/log
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0473 b/test/stderr/0473
index f1b03b8e2..65a39a9b7 100644
--- a/test/stderr/0473
+++ b/test/stderr/0473
@@ -27,7 +27,7 @@ LOG: MAIN REJECT
U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] : SMTP timeout after RCPT TO:<r11@two.test.ex>
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -49,4 +49,4 @@ LOG: MAIN REJECT
U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout: 127.0.0.1 [127.0.0.1] : SMTP timeout after initial connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0476 b/test/stderr/0476
index 675c6239c..5b2aff1c1 100644
--- a/test/stderr/0476
+++ b/test/stderr/0476
@@ -93,8 +93,8 @@ set_process_info: pppp delivering 10HmaZ-0005vi-00
LOG: MAIN
== CALLER@the.local.host.name R=r1 T=t1 defer (dd): Connection refused
set_process_info: pppp tidying up after delivering 10HmaZ-0005vi-00
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
set_process_info: pppp running queue: waiting for children of pppp
@@ -126,4 +126,4 @@ set_process_info: pppp running queue: waiting for children of pppp
set_process_info: pppp running queue
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0479 b/test/stderr/0479
index 9386dce11..da8a56aad 100644
--- a/test/stderr/0479
+++ b/test/stderr/0479
@@ -93,4 +93,4 @@ SMTP>> 221 the.local.host.name closing connection
LOG: smtp_connection MAIN
SMTP connection from ([1.2.3.4]) [1.2.3.4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0483 b/test/stderr/0483
index 280b971d9..a6e836e34 100644
--- a/test/stderr/0483
+++ b/test/stderr/0483
@@ -28,4 +28,4 @@ LOG: MAIN REJECT
U=CALLER F=<sender@domain1> rejected RCPT <other@domain2>
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0484 b/test/stderr/0484
index 6b4a9558e..dbf8f66bf 100644
--- a/test/stderr/0484
+++ b/test/stderr/0484
@@ -129,4 +129,4 @@ cached data used for lookup of root
in TESTSUITE/aux-fixed/0484.aliases
lookup yielded: userx
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0487 b/test/stderr/0487
index 56e21b60e..1dd562218 100644
--- a/test/stderr/0487
+++ b/test/stderr/0487
@@ -103,7 +103,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -141,7 +141,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -199,11 +199,11 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
smtp_setup_msg entered
SMTP<< quit
SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0489 b/test/stderr/0489
index d0caddc8e..e1b955b4f 100644
--- a/test/stderr/0489
+++ b/test/stderr/0489
@@ -31,7 +31,7 @@ Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
created log directory TESTSUITE/spool/log
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -64,7 +64,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -97,7 +97,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaZ-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -130,7 +130,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbA-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -163,7 +163,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbB-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -196,7 +196,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbC-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -229,7 +229,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbD-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -262,4 +262,4 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbE-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0499 b/test/stderr/0499
index 6435e8fc1..ba278cdac 100644
--- a/test/stderr/0499
+++ b/test/stderr/0499
@@ -47,4 +47,4 @@ routed by r1 router
envelope to: ph@mxt1.test.ex
transport: t1
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0512 b/test/stderr/0512
index 07025d5d7..0cbcfc227 100644
--- a/test/stderr/0512
+++ b/test/stderr/0512
@@ -75,13 +75,13 @@ LOG: MAIN
=> :blackhole: <CALLER@myhost.test.ex> R=r0
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -139,10 +139,10 @@ LOG: MAIN
=> :blackhole: <CALLER@myhost.test.ex> R=r0
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
Completed
LOG: queue_run MAIN
End queue run: pid=pppp -qf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0529 b/test/stderr/0529
index a308cc147..9d4156da4 100644
--- a/test/stderr/0529
+++ b/test/stderr/0529
@@ -44,8 +44,8 @@ Writing retry data for T:TESTSUITE/test-mail/rmbox:x@test.ex
errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox)
x@test.ex: no retry items
end of retry processing
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -84,4 +84,4 @@ Deferred addresses:
end of retry processing
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0543 b/test/stderr/0543
index 6a2b4ccd4..b886b8464 100644
--- a/test/stderr/0543
+++ b/test/stderr/0543
@@ -52,4 +52,4 @@ After routing:
usery@domain1
LOG: queue_run MAIN
End queue run: pid=pppp
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0544 b/test/stderr/0544
index f32cd8886..e45faa1e9 100644
--- a/test/stderr/0544
+++ b/test/stderr/0544
@@ -36,7 +36,7 @@ admin user
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -67,18 +67,6 @@ admin user
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -153,8 +141,8 @@ LOG: MAIN
└─────result: yes
├──expanding: ${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}}
└─────result: yes
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -188,4 +176,4 @@ LOG: smtp_connection MAIN
└─────result: domain=recipient.domain/sender_domain=sender.domain
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0545 b/test/stderr/0545
index 5baf95f09..99cf67821 100644
--- a/test/stderr/0545
+++ b/test/stderr/0545
@@ -67,7 +67,7 @@ routed by dns router
transport: smtp
host eximtesthost.test.ex [ip4.ip4.ip4.ip4]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -113,4 +113,4 @@ routed by dns router
transport: smtp
host eximtesthost.test.ex [ip4.ip4.ip4.ip4]
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0554 b/test/stderr/0554
index 460a2c22b..bbb76dbd4 100644
--- a/test/stderr/0554
+++ b/test/stderr/0554
@@ -34,7 +34,7 @@ Writing retry data for R:x@y:<CALLER@myhost.test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<x@y>: 451 Temporary error
end of retry processing
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -88,4 +88,4 @@ Deferred addresses:
end of retry processing
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0563 b/test/stderr/0563
index fc4933c5a..21e7a13e5 100644
--- a/test/stderr/0563
+++ b/test/stderr/0563
@@ -40,4 +40,4 @@ routed by router2 router
envelope to: joe-real@testexim.test.ex
transport: local_delivery
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0575 b/test/stderr/0575
index 210f868ad..73467881a 100644
--- a/test/stderr/0575
+++ b/test/stderr/0575
@@ -59,4 +59,4 @@ SMTP>> 221 mail.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [V4NET.0.0.0] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0578 b/test/stderr/0578
index 9f634c8c4..7826507ac 100644
--- a/test/stderr/0578
+++ b/test/stderr/0578
@@ -30,7 +30,7 @@ wrote callout cache domain record for localhost:
wrote positive callout cache address record for ok@localhost
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -47,7 +47,7 @@ callout cache: found address record for ok@localhost
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -71,7 +71,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -108,7 +108,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -129,7 +129,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -165,7 +165,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -185,7 +185,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -229,7 +229,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -249,7 +249,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -289,7 +289,7 @@ wrote callout cache domain record for otherhost2:
wrote positive callout cache address record for ok@otherhost2
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -307,7 +307,7 @@ callout cache: found address record for ok@otherhost2
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -339,7 +339,7 @@ wrote callout cache domain record for otherhost3:
result=1 postmaster=0 random=1
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -355,7 +355,7 @@ callout cache: found domain record for otherhost3
callout cache: domain accepts random addresses
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -387,7 +387,7 @@ wrote callout cache domain record for otherhost4:
result=1 postmaster=0 random=1
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -403,7 +403,7 @@ callout cache: found domain record for otherhost4
callout cache: domain accepts random addresses
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -449,7 +449,7 @@ wrote callout cache domain record for otherhost41:
wrote positive callout cache address record for ok@otherhost41
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -468,7 +468,7 @@ callout cache: found address record for ok@otherhost41
callout cache: address record is positive
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -508,7 +508,7 @@ wrote callout cache domain record for otherhost21:
wrote positive callout cache address record for ok@otherhost21
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -542,7 +542,7 @@ wrote callout cache domain record for otherhost21:
wrote positive callout cache address record for ok2@otherhost21
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -581,7 +581,7 @@ wrote callout cache domain record for otherhost31:
wrote positive callout cache address record for ok@otherhost31
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -615,7 +615,7 @@ wrote callout cache domain record for otherhost31:
wrote positive callout cache address record for okok@otherhost31
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -654,7 +654,7 @@ wrote callout cache domain record for otherhost31:
wrote positive callout cache address record for okokok@otherhost31
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -688,7 +688,7 @@ LOG: MAIN REJECT
H=[V4NET.0.0.5] U=root F=<okok@otherhost51> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -728,7 +728,7 @@ wrote callout cache domain record for otherhost52:
wrote positive callout cache address record for okokok@otherhost52
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -764,7 +764,7 @@ LOG: MAIN
<= ok7@otherhost53 H=[V4NET.0.0.7] U=root P=smtp S=sss
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -797,7 +797,7 @@ LOG: MAIN
<= ok7@otherhost53 H=[V4NET.0.0.8] U=root P=smtp S=sss
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -839,7 +839,7 @@ wrote callout cache domain record for otherhost9:
wrote positive callout cache address record for ok@otherhost9
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -885,4 +885,4 @@ wrote callout cache domain record for test.ex:
wrote positive callout cache address record for z@test.ex/<postmaster@myhost.test.ex>
LOG: smtp_connection MAIN
SMTP connection from root closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/1006 b/test/stderr/1006
index 09421f9a8..8714aa159 100644
--- a/test/stderr/1006
+++ b/test/stderr/1006
@@ -16,7 +16,7 @@ DNS lookup of v6.test.ex (AAAA) succeeded
DNS lookup of v6.test.ex (A) using fakens
DNS lookup of v6.test.ex (A) gave NO_DATA
returning DNS_NODATA
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -32,6 +32,6 @@ returning DNS_NODATA
DNS lookup of v6.test.ex (A) using fakens
DNS lookup of v6.test.ex (A) gave NO_DATA
returning DNS_NODATA
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/2013 b/test/stderr/2013
index dc42978c7..9f96c99eb 100644
--- a/test/stderr/2013
+++ b/test/stderr/2013
@@ -52,7 +52,7 @@ LOG: MAIN
=> userz@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmbB-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -68,15 +68,15 @@ cmd buf flush ddd bytes
SMTP>> QUIT
cmd buf flush ddd bytes
SMTP(close)>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> usery@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmbC-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (TLS proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=pppp -qqf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -131,7 +131,7 @@ LOG: MAIN
=> userc@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmbH-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -147,14 +147,14 @@ cmd buf flush ddd bytes
SMTP>> QUIT
cmd buf flush ddd bytes
SMTP(close)>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userb@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmbI-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (TLS proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=pppp -qqf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/2035 b/test/stderr/2035
index dedf4ad48..80c2476d8 100644
--- a/test/stderr/2035
+++ b/test/stderr/2035
@@ -35,7 +35,9 @@ LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-smtp S=sss
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
+proxy-proc inter-pid pppp
+proxy-proc final-pid pppp
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -64,11 +66,11 @@ ok=1 send_quit=1 send_rset=0 continue_more=0 yield=0 first_address is NULL
cmd buf flush ddd bytes
SMTP(close)>>
Leaving t1 transport
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userb@test.ex R=client T=t1 H=127.0.0.1 [127.0.0.1]:1225 X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmaY-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (TLS proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/2113 b/test/stderr/2113
index 35cdabe47..fcb7691fb 100644
--- a/test/stderr/2113
+++ b/test/stderr/2113
@@ -52,7 +52,7 @@ LOG: MAIN
=> userz@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmbB-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -68,15 +68,15 @@ cmd buf flush ddd bytes
SMTP>> QUIT
cmd buf flush ddd bytes
SMTP(close)>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> usery@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmbC-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (TLS proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=pppp -qqf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -131,7 +131,7 @@ LOG: MAIN
=> userc@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmbH-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -147,14 +147,14 @@ cmd buf flush ddd bytes
SMTP>> QUIT
cmd buf flush ddd bytes
SMTP(close)>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userb@test.ex R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmbI-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (TLS proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=pppp -qqf
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/2135 b/test/stderr/2135
index ac524d2af..e7e1c3f65 100644
--- a/test/stderr/2135
+++ b/test/stderr/2135
@@ -35,7 +35,9 @@ LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local-smtp S=sss
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
+proxy-proc inter-pid pppp
+proxy-proc final-pid pppp
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -64,11 +66,11 @@ ok=1 send_quit=1 send_rset=0 continue_more=0 yield=0 first_address is NULL
cmd buf flush ddd bytes
SMTP(close)>>
Leaving t1 transport
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userb@test.ex R=client T=t1 H=127.0.0.1 [127.0.0.1]:1225 X=TLSv1:AES256-SHA:256 CV=no C="250 OK id=10HmaY-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (TLS proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/2200 b/test/stderr/2200
index 4fec895ea..72aad3d26 100644
--- a/test/stderr/2200
+++ b/test/stderr/2200
@@ -20,7 +20,7 @@ internal_search_find: file="NULL"
cached data used for lookup of a=localhost.test.ex
lookup yielded: 127.0.0.1
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -49,4 +49,4 @@ LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
created log directory TESTSUITE/spool/log
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/2201 b/test/stderr/2201
index 8dd7b2fb8..037d80d28 100644
--- a/test/stderr/2201
+++ b/test/stderr/2201
@@ -144,7 +144,7 @@ routed by r2 router
envelope to: unknown@test.ex
transport: local_delivery
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
trusted user
@@ -183,7 +183,7 @@ LOG: MAIN
<= a@shorthost.test.ex U=CALLER P=local S=sss
created log directory TESTSUITE/spool/log
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
Exim version x.yz ....
diff --git a/test/stderr/2202 b/test/stderr/2202
index 45b039a59..69c7914db 100644
--- a/test/stderr/2202
+++ b/test/stderr/2202
@@ -78,4 +78,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from the.local.host.name [ip4.ip4.ip4.ip4] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/2600 b/test/stderr/2600
index ffdad152f..1ea06926f 100644
--- a/test/stderr/2600
+++ b/test/stderr/2600
@@ -103,7 +103,7 @@ file lookup required for select * from them where name='it''s';
in TESTSUITE/aux-fixed/sqlitedb
lookup yielded: name=it's id=its
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -199,7 +199,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [10.0.0.0] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -285,7 +285,7 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from [10.10.10.10] closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -362,7 +362,7 @@ Delivery address list:
userx@myhost.test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -410,7 +410,7 @@ search_tidyup called
--------> userx@myhost.test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -475,9 +475,9 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -491,4 +491,4 @@ file lookup required for select name from them where id='userx';
in TESTSUITE/aux-fixed/sqlitedb
lookup yielded: Ayen Other
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/3000 b/test/stderr/3000
index a1b9f08a5..17f48ab73 100644
--- a/test/stderr/3000
+++ b/test/stderr/3000
@@ -41,7 +41,7 @@ LOG: MAIN
log from Perl
├──expanding: ${perl{log_write}{log from Perl}}
└─────result: Wrote log
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: smtp_connection MAIN
SMTP connection from CALLER
LOG: MAIN
diff --git a/test/stderr/3201 b/test/stderr/3201
index 10fa6f937..23e33c840 100644
--- a/test/stderr/3201
+++ b/test/stderr/3201
@@ -39,7 +39,7 @@ SMTP>> 550 Administrative prohibition
LOG: connection_reject MAIN REJECT
H=[10.0.0.1] rejected connection in "connect" ACL
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -81,4 +81,4 @@ SMTP>> 550 Administrative prohibition
LOG: connection_reject MAIN REJECT
H=[10.0.0.2] rejected connection in "connect" ACL
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/3210 b/test/stderr/3210
index 75a408470..b80a28738 100644
--- a/test/stderr/3210
+++ b/test/stderr/3210
@@ -32,4 +32,4 @@ test.ex in "+defer_lookup : test.ex"? list match deferred for +defer_lookup
test.ex in "! +local_domains"? list match deferred for ! +local_domains
domains check lookup or other defer
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/3212 b/test/stderr/3212
index ca3048328..31c81e3b2 100644
--- a/test/stderr/3212
+++ b/test/stderr/3212
@@ -133,4 +133,4 @@ cached data used for lookup of root
in TESTSUITE/aux-fixed/3212.aliases
lookup yielded: userx
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/3400 b/test/stderr/3400
index 78b0e158f..aca7f5f68 100644
--- a/test/stderr/3400
+++ b/test/stderr/3400
@@ -469,4 +469,4 @@ SMTP>> 221 myhost.test.ex closing connection
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/4520 b/test/stderr/4520
index d8d2d7a03..3d7957c03 100644
--- a/test/stderr/4520
+++ b/test/stderr/4520
@@ -53,7 +53,7 @@ LOG: MAIN
=> d@test.ex R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] C="250 OK id=10HmbE-0005vi-00"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/4802 b/test/stderr/4802
index 25b31a1a5..d2e93f15e 100644
--- a/test/stderr/4802
+++ b/test/stderr/4802
@@ -6,7 +6,7 @@ DNS lookup of mx-sec-a-aa.test.ex (MX) succeeded
DNS lookup of a-aa.test.ex (A) using fakens
DNS lookup of a-aa.test.ex (A) succeeded
DNS lookup of a-aa.test.ex (A/AAAA) requested AD, but got AA
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -15,4 +15,4 @@ DNS lookup of mx-aa-a-sec.test.ex (MX) succeeded
DNS lookup of mx-aa-a-sec.test.ex (MX) requested AD, but got AA
DNS lookup of a-sec.test.ex (A) using fakens
DNS lookup of a-sec.test.ex (A) succeeded
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/4803 b/test/stderr/4803
index 9a57c446e..7808dfab8 100644
--- a/test/stderr/4803
+++ b/test/stderr/4803
@@ -8,7 +8,7 @@ DNS lookup of a-aa.test.ex (A) succeeded
DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *))
DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *))
DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *))
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -19,4 +19,4 @@ DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *))
DNS faked the AD bit (got AA and matched with dns_trust_aa (test.ex in *))
DNS lookup of a-sec.test.ex (A) using fakens
DNS lookup of a-sec.test.ex (A) succeeded
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5000 b/test/stderr/5000
index 537b98cab..458705515 100644
--- a/test/stderr/5000
+++ b/test/stderr/5000
@@ -46,5 +46,5 @@ maildir_taggedX_appendfile transport returned DEFER for userx@myhost.test.ex
added retry item for T:userx@myhost.test.ex: errno=-22 more_errno=dd flags=0
LOG: MAIN
== userx@myhost.test.ex R=localuser T=maildir_taggedX_appendfile defer (-22): mailbox is full (MTA-imposed quota exceeded while writing to tmp/MAILDIR.myhost.test.ex)
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5004 b/test/stderr/5004
index 08b4c9784..5d1d0d31c 100644
--- a/test/stderr/5004
+++ b/test/stderr/5004
@@ -78,7 +78,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -117,7 +117,7 @@ routed by r1 router
transport: <none>
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -137,7 +137,7 @@ search_tidyup called
--------> TESTSUITE/test-mail <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -204,6 +204,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5005 b/test/stderr/5005
index 7e6ea98b2..36d829192 100644
--- a/test/stderr/5005
+++ b/test/stderr/5005
@@ -74,7 +74,7 @@ Delivery address list:
nofile@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -112,7 +112,7 @@ search_tidyup called
--------> nofile@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -187,9 +187,9 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -265,7 +265,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -302,7 +302,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -379,9 +379,9 @@ LOG: MAIN
end delivery of 10HmaY-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -457,7 +457,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -494,7 +494,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -553,7 +553,7 @@ Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR
address match test: subject=userx@test.ex pattern=*
@@ -580,9 +580,9 @@ Size of headers = sss
end delivery of 10HmaZ-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
changed uid/gid: forcing real = effective
uid=uuuu gid=CALLER_GID pid=pppp
@@ -658,7 +658,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -699,7 +699,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY
dbfn_read: key=T:userx@test.ex
@@ -749,7 +749,7 @@ Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x2
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDWR
returned from EXIM_DBOPEN: 0xAAAAAAAA
opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR
address match test: subject=userx@test.ex pattern=*
@@ -776,6 +776,6 @@ Size of headers = sss
end delivery of 10HmbA-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5006 b/test/stderr/5006
index e494f83b5..2b2b37761 100644
--- a/test/stderr/5006
+++ b/test/stderr/5006
@@ -74,7 +74,7 @@ Delivery address list:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
@@ -112,7 +112,7 @@ search_tidyup called
--------> userx@test.ex <--------
locking TESTSUITE/spool/db/retry.lockfile
locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags 0x0
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
returned from EXIM_DBOPEN: (nil)
failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
no retry data available
@@ -185,6 +185,6 @@ LOG: MAIN
end delivery of 10HmaX-0005vi-00
search_tidyup called
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5008 b/test/stderr/5008
index b3bf8f785..6d0dd7390 100644
--- a/test/stderr/5008
+++ b/test/stderr/5008
@@ -35,8 +35,8 @@ LOG: MAIN
=> userx <userx@test.ex> R=r1 T=t1
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -75,5 +75,5 @@ LOG: MAIN
=> userx <userx@test.ex> R=r1 T=t1
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5204 b/test/stderr/5204
index 32754009b..4d169591f 100644
--- a/test/stderr/5204
+++ b/test/stderr/5204
@@ -23,7 +23,7 @@ command wrote: DECLINE cannot route this one (DECLINE)
q router declined for "DECLINE cannot route this one (DECLINE)"@some.host
"more" is false: skipping remaining routers
no more routers
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -45,7 +45,7 @@ q router called for "FAIL cannot route this one (FAIL)"@some.host: domain = some
requires uid=EXIM_UID gid=EXIM_GID current_directory=/
command wrote: FAIL cannot route this one (FAIL)
q router forced address failure
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=2 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=2 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -70,7 +70,7 @@ LOG: PANIC
q router: bad command yield: ERROR cannot route this one (ERROR)
q router: defer for "ERROR cannot route this one (ERROR)"@some.host
message: bad command yield: ERROR cannot route this one (ERROR)
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -93,7 +93,7 @@ requires uid=EXIM_UID gid=EXIM_GID current_directory=/
command wrote: DEFER cannot route this one (DEFER)
q router: defer for "DEFER cannot route this one (DEFER)"@some.host
message: cannot route this one (DEFER)
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -124,7 +124,7 @@ routed by q router
envelope to: "ACCEPT transport = other_smtp hosts=ten-1.test.ex"@some.host
transport: other_smtp
host ten-1.test.ex [V4NET.0.0.1]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -167,7 +167,7 @@ routed by s router
envelope to: PASS@some.host
transport: smtp
host 127.0.0.1 [127.0.0.1]
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -190,7 +190,7 @@ requires uid=EXIM_UID gid=EXIM_GID current_directory=/
command wrote: FREEZE cannot route this one (FREEZE)
q router: defer for "FREEZE cannot route this one (FREEZE)"@some.host
message: cannot route this one (FREEZE)
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=1 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=1 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -248,7 +248,7 @@ domain = test.ex
routed by pm router
envelope to: postmaster@test.ex
transport: null
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -299,4 +299,4 @@ LOG: MAIN REJECT
H=(some.name) [V4NET.2.3.4] F=<x@y> rejected RCPT <"FAIL cannot route this one (FAIL)"@some.host>: cannot route this one (FAIL)
LOG: smtp_connection MAIN
SMTP connection from (some.name) [V4NET.2.3.4] closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5410 b/test/stderr/5410
index b4db690ab..515d05334 100644
--- a/test/stderr/5410
+++ b/test/stderr/5410
@@ -166,7 +166,7 @@ end of inline ACL: ACCEPT
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -197,18 +197,6 @@ end of inline ACL: ACCEPT
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local-esmtp
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -256,7 +244,7 @@ LOG: MAIN
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -392,7 +380,7 @@ end of inline ACL: ACCEPT
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -423,18 +411,6 @@ end of inline ACL: ACCEPT
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local-esmtp
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -482,7 +458,7 @@ LOG: MAIN
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -618,7 +594,7 @@ end of inline ACL: ACCEPT
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -649,18 +625,6 @@ end of inline ACL: ACCEPT
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local-esmtp
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -708,6 +672,6 @@ LOG: MAIN
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stderr/5420 b/test/stderr/5420
index b34440046..430a82dd9 100644
--- a/test/stderr/5420
+++ b/test/stderr/5420
@@ -165,7 +165,7 @@ end of inline ACL: ACCEPT
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -196,18 +196,6 @@ end of inline ACL: ACCEPT
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local-esmtp
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -255,7 +243,7 @@ LOG: MAIN
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -391,7 +379,7 @@ end of inline ACL: ACCEPT
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -422,18 +410,6 @@ end of inline ACL: ACCEPT
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local-esmtp
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -481,7 +457,7 @@ LOG: MAIN
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
configuration file is TESTSUITE/test-config
admin user
@@ -617,7 +593,7 @@ end of inline ACL: ACCEPT
}}id $message_exim_id${if def:received_for {
for $received_for}}
╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
- â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol â•Ž}} (Exim $version_number)
+ â•Ž }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
â•Ž ${if def:sender_address {(envelope-from <$sender_address>)
â•Ž }}id $message_exim_id${if def:received_for {
â•Ž for $received_for}}
@@ -648,18 +624,6 @@ end of inline ACL: ACCEPT
for $received_for}}
├──expanding: with $received_protocol
└─────result: with local-esmtp
- ├──condition: def:tls_cipher
- ├─────result: false
- ┌───scanning: ($tls_cipher)
- }}(Exim $version_number)
- ${if def:sender_address {(envelope-from <$sender_address>)
- }}id $message_exim_id${if def:received_for {
- for $received_for}}
- ├──expanding: ($tls_cipher)
-
- ├─────result: ()
-
- └───skipping: result is not used
├──condition: def:sender_address
├─────result: true
┌considering: (envelope-from <$sender_address>)
@@ -707,6 +671,6 @@ LOG: MAIN
Completed
LOG: smtp_connection MAIN
SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********
diff --git a/test/stdout/0002 b/test/stdout/0002
index 5593f06cc..1422289a7 100644
--- a/test/stdout/0002
+++ b/test/stdout/0002
@@ -123,6 +123,7 @@
> addresses: local-part@dom.ain+xyz@abc
> addresses: local-part@dom.ain:xyz@abc:p@q:r@s
> addresses:
+> Failed: output separator missing in expanding ${addresses:>}
>
> escape: B7\267F2\362
> excape8bit: undisturbed text tab
diff --git a/test/stdout/0572 b/test/stdout/0572
index 8b7a17a78..96ab5611b 100644
--- a/test/stdout/0572
+++ b/test/stdout/0572
@@ -53,7 +53,6 @@ hosts_avoid_esmtp =
hosts_avoid_pipelining =
hosts_max_try = 5
hosts_max_try_hardlimit = 50
-hosts_noproxy_tls = *
no_hosts_override
no_hosts_randomize
hosts_require_auth =
diff --git a/test/stdout/0901 b/test/stdout/0901
index a982ac8b6..c4020ae5f 100644
--- a/test/stdout/0901
+++ b/test/stdout/0901
@@ -330,11 +330,7 @@ Connecting to 127.0.0.1 port 1225 ... connected
>>> RCPT TO:CALLER@test.ex
??? 250
<<< 250 Accepted
->>> BDAT 1\r\nTBDAT 87 last
->>> o: Susan@random.com
->>> From: Sam@random.com
->>> Subject: This is a bodyless test message
->>>
+>>> BDAT 1\r\nTBDAT 87 last\r\no: Susan@random.com\r\nFrom: Sam@random.com\r\nSubject: This is a bodyless test message\r\n\r\n
??? 554 SMTP synchronization error
<<< 554 SMTP synchronization error
End of script
diff --git a/test/stdout/2102 b/test/stdout/2102
index 0d96d1279..2df808595 100644
--- a/test/stdout/2102
+++ b/test/stdout/2102
@@ -93,11 +93,15 @@ Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
??? 250
<<< 250 HELP
>>> starttls
-??? 220
+??? 220 TLS go ahead
<<< 220 TLS go ahead
Attempting to start TLS
pppp:error:dddddddd:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:[...]:SSL alert number 40
Failed to start TLS
++++ 1
+>>> help
+??? 554
+<<< 554 Security failure
End of script
Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
Certificate file = TESTSUITE/aux-fixed/exim-ca/example.com/server2.example.com/server2.example.com.pem
diff --git a/test/stdout/2132 b/test/stdout/2132
index 322237463..64915c1fb 100644
--- a/test/stdout/2132
+++ b/test/stdout/2132
@@ -98,6 +98,10 @@ Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
Attempting to start TLS
pppp:error:dddddddd:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:[...]:SSL alert number 40
Failed to start TLS
++++ 1
+>>> help
+??? 554
+<<< 554 Security failure
End of script
Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
Certificate file = TESTSUITE/aux-fixed/exim-ca/example.com/server1.example.com/server1.example.com.pem
diff --git a/test/stdout/3000 b/test/stdout/3000
index ca7b094e6..50be468c2 100644
--- a/test/stdout/3000
+++ b/test/stdout/3000
@@ -17,7 +17,7 @@
> 42
> 30
> 3
-> X/X
+> X
>
> Tue, 2 Mar 1999 09:44:33 +0000 // Changed locale // Tue, 2 Mar 1999 09:44:33 +0000
>
diff --git a/test/stdout/4012 b/test/stdout/4012
new file mode 100644
index 000000000..fa6770563
--- /dev/null
+++ b/test/stdout/4012
@@ -0,0 +1,35 @@
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250-myhost.test.ex Hello CALLER at test.ex
+250-SIZE 52428800
+250-8BITMIME
+250-PIPELINING
+250 HELP
+250 OK
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+250 OK id=10HmaY-0005vi-00
+221 myhost.test.ex closing connection
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250-myhost.test.ex Hello CALLER at test.ex
+250-SIZE 52428800
+250-8BITMIME
+250-PIPELINING
+250 HELP
+250 OK
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+550 Administrative prohibition
+221 myhost.test.ex closing connection
+
+******** SERVER ********
+Listening on port 1224 ...
+Connection request from [IP_LOOPBACK_ADDR]
+TESTSUITE/spool/scan/10HmaY-0005vi-00/10HmaY-0005vi-00.eml
+>LF>RESULT: OK
+End of script
+Listening on port 1224 ...
+Connection request from [IP_LOOPBACK_ADDR]
+TESTSUITE/spool/scan/10HmaX-0005vi-00/10HmaX-0005vi-00.eml
+>LF>RESULT: BAD
+>LF>NAME: wibble
+End of script