[exim-cvs] Fix continued-transport with LIMITS

Páxina inicial
Borrar esta mensaxe
Responder a esta mensaxe
Autor: Exim Git Commits Mailing List
Data:  
Para: exim-cvs
Asunto: [exim-cvs] Fix continued-transport with LIMITS
Gitweb: https://git.exim.org/exim.git/commitdiff/b9ecb570888756a645781505fbcd1b70c93216a5
Commit:     b9ecb570888756a645781505fbcd1b70c93216a5
Parent:     fbc48a247f1014e8c6a0c9772082dbd7e00c6a55
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Tue Jun 18 09:16:37 2024 +0100
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Tue Jun 18 19:05:17 2024 +0100


    Fix continued-transport with LIMITS


    Broken-by: be5901583f97
---
 src/src/deliver.c                   |  3 ++
 src/src/queue.c                     | 13 +++---
 src/src/transport.c                 |  2 +-
 src/src/transports/smtp.c           | 13 +++---
 test/log/4714                       |  4 ++
 test/scripts/1100-Basic-TLS/1157    |  2 +-
 test/scripts/4710-esmtp-limits/4714 | 29 +++++++++++--
 test/stderr/0218                    | 16 ++++----
 test/stderr/1157                    | 81 +++++++++++++------------------------
 test/stdout/4714                    | 36 ++++++++++++++++-
 10 files changed, 121 insertions(+), 78 deletions(-)


diff --git a/src/src/deliver.c b/src/src/deliver.c
index d35c20260..005175c8b 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -3707,7 +3707,10 @@ while (!done)
       break;
     case '1':
       if (continue_hostname)
+        {
         Ustrncpy(continue_next_id, ptr, MESSAGE_ID_LENGTH);
+        continue_sequence++;
+        }
       DEBUG(D_deliver) debug_printf("continue_next_id: %s%s\n",
         continue_next_id, continue_hostname ? "" : " (ignored)");
       break;
diff --git a/src/src/queue.c b/src/src/queue.c
index a4afdcc98..b811a53bd 100644
--- a/src/src/queue.c
+++ b/src/src/queue.c
@@ -358,9 +358,9 @@ queue_run(qrunner * q, const uschar * start_id, const uschar * stop_id, BOOL rec
 {
 BOOL force_delivery = q->queue_run_force
   || deliver_selectstring || deliver_selectstring_sender;
-const pcre2_code *selectstring_regex = NULL;
-const pcre2_code *selectstring_regex_sender = NULL;
-uschar *log_detail = NULL;
+const pcre2_code * selectstring_regex = NULL;
+const pcre2_code * selectstring_regex_sender = NULL;
+uschar * log_detail = NULL;
 int subcount = 0;
 uschar subdirs[64];
 pid_t qpid[4] = {0};    /* Parallelism factor for q2stage 1st phase */
@@ -672,13 +672,15 @@ for (int i = queue_run_in_order ? -1 : 0;
     name. The return of the process is zero if a delivery was attempted. */


     fq->text[Ustrlen(fq->text)-2] = 0;
-    set_process_info("running queue: %s", fq->text);
+    set_process_info("running queue%s: %s",
+      q->queue_2stage ? "(ph 1)" : "", fq->text);
 #ifdef MEASURE_TIMING
     report_time_since(&timestamp_startup, US"queue msg selected");
 #endif


 single_item_retry:
-    if ((pid = exim_fork(US"qrun-delivery")) == 0)
+    if ((pid = exim_fork(
+    q->queue_2stage ? US"qrun-p1-delivery" : US"qrun-delivery")) == 0)
       {
       int rc;
       (void)close(pfd[pipe_read]);
@@ -795,6 +797,7 @@ if (q->queue_2stage)
   report_time_since(&timestamp_startup, US"queue_run 1st phase done");
 #endif
   q->queue_2stage = f.queue_2stage = FALSE;
+  DEBUG(D_queue_run) debug_printf("queue_run phase 2 start\n");
   queue_run(q, start_id, stop_id, TRUE);
   }


diff --git a/src/src/transport.c b/src/src/transport.c
index 191f6d464..3245b2cae 100644
--- a/src/src/transport.c
+++ b/src/src/transport.c
@@ -1983,7 +1983,7 @@ if (smtp_peer_options & OPTION_TLS)
#endif

#ifndef DISABLE_ESMTP_LIMITS
-if (continue_limit_rcpt || continue_limit_rcptdom)
+if (continue_limit_mail || continue_limit_rcpt || continue_limit_rcptdom)
{
argv[i++] = US"-MCL";
argv[i++] = string_sprintf("%u", continue_limit_mail);
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 8e4480e12..30983984a 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -3430,7 +3430,7 @@ if (sx->peer_offered & OPTION_DSN && !(addr->dsn_flags & rf_dsnlasthop))

/* Send MAIL FROM and RCPT TO commands.
See sw_mrc_t definition for return codes.
- */
+*/

 sw_mrc_t
 smtp_write_mail_and_rcpt_cmds(smtp_context * sx, int * yield)
@@ -4692,6 +4692,11 @@ if (sx->completed_addr && sx->ok && sx->send_quit)
     {
     DEBUG(D_transport)
       debug_printf("reached limit %u for MAILs per conn\n", sx->max_mail);
+    /* We will close the smtp session and connection, and clear
+    continue_hostname.  Then if there are further addrs for the message we will
+    loop to the top of this function and make a fresh connection.  Any further
+    message found in the wait-tpt hintsdb would then do a transport_pass_socket
+    to get the connection fd back to the delivery process. */
     }
   else
 #endif
@@ -4869,8 +4874,7 @@ if (sx->completed_addr && sx->ok && sx->send_quit)
           sx->cctx.tls_ctx = NULL;
           (void)close(sx->cctx.sock);
           sx->cctx.sock = -1;
-          continue_transport = NULL;
-          continue_hostname = NULL;
+          continue_transport = continue_hostname = NULL;
           goto TIDYUP;
           }
         log_write(0, LOG_PANIC_DIE, "fork failed");
@@ -4982,7 +4986,6 @@ if (sx->send_quit || tcw_done && !tcw)
 HDEBUG(D_transport|D_acl|D_v) debug_printf_indent("  SMTP(close)>>\n");
 (void)close(sx->cctx.sock);
 sx->cctx.sock = -1;
-continue_transport = NULL;
 continue_hostname = NULL;
 smtp_debug_cmd_report();


@@ -5024,7 +5027,7 @@ if (mail_limit && sx->first_addr)
   continue_sequence = 1;            /* for consistency */
   clearflag(sx->first_addr, af_cont_conn);
   setflag(sx->first_addr, af_new_conn);        /* clear  * from logging */
-  goto REPEAT_CONN;
+  goto REPEAT_CONN;                /* open a fresh connection */
   }
 #endif


diff --git a/test/log/4714 b/test/log/4714
index d2c425113..aca77a7ab 100644
--- a/test/log/4714
+++ b/test/log/4714
@@ -1,6 +1,7 @@
1999-03-02 09:44:33 10HmaX-000000005vi-0000 <= CALLER@??? U=CALLER P=local S=sss for r1_1.test.ex r1_2.test.ex
1999-03-02 09:44:33 10HmaY-000000005vi-0000 <= CALLER@??? U=CALLER P=local S=sss for r2_1.test.ex r2_2.test.ex
1999-03-02 09:44:33 10HmaZ-000000005vi-0000 <= CALLER@??? U=CALLER P=local S=sss for r3_1.test.ex r3_2.test.ex
+1999-03-02 09:44:33 10HmbA-000000005vi-0000 <= CALLER@??? U=CALLER P=local S=sss for r4_1.test.ex r4_2.test.ex
1999-03-02 09:44:33 Start queue run: pid=p1234 -qq
1999-03-02 09:44:33 10HmaX-000000005vi-0000 => r1_1.test.ex@??? R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1] C="250 message 1 received"
1999-03-02 09:44:33 10HmaX-000000005vi-0000 => r1_2.test.ex@??? R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 2 received"
@@ -11,4 +12,7 @@
1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => r3_1.test.ex@??? R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 5 received"
1999-03-02 09:44:33 10HmaZ-000000005vi-0000 => r3_2.test.ex@??? R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1] C="250 message 6 received"
1999-03-02 09:44:33 10HmaZ-000000005vi-0000 Completed
+1999-03-02 09:44:33 10HmbA-000000005vi-0000 => r4_1.test.ex@??? R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 7 received"
+1999-03-02 09:44:33 10HmbA-000000005vi-0000 => r4_2.test.ex@??? R=send_to_server T=to_server H=127.0.0.1 [127.0.0.1]* C="250 message 8 received"
+1999-03-02 09:44:33 10HmbA-000000005vi-0000 Completed
1999-03-02 09:44:33 End queue run: pid=p1234 -qq
diff --git a/test/scripts/1100-Basic-TLS/1157 b/test/scripts/1100-Basic-TLS/1157
index 1a271e2a2..22652da9b 100644
--- a/test/scripts/1100-Basic-TLS/1157
+++ b/test/scripts/1100-Basic-TLS/1157
@@ -28,7 +28,7 @@ Test message 2
exim userc@???
Test message 3
****
-exim -DEQUIRE -d-all+acl -qqf
+exim -DREQUIRE -d-all+acl -qqf
****
killdaemon
exim -DSERVER=server -DNOTDAEMON -qf
diff --git a/test/scripts/4710-esmtp-limits/4714 b/test/scripts/4710-esmtp-limits/4714
index f97d989e8..ff308c265 100644
--- a/test/scripts/4710-esmtp-limits/4714
+++ b/test/scripts/4710-esmtp-limits/4714
@@ -1,6 +1,6 @@
# ESMTP LIMITS extension, client continued-connection
#
-# queue up 3 messages each with 2 recipients
+# queue up 4 messages each with 2 recipients
exim -odq r1_1.test.ex r1_2.test.ex
Subject: message 1
****
@@ -11,10 +11,15 @@ exim -odq r3_1.test.ex r3_2.test.ex
Subject: message 3
****
#
+exim -odq r4_1.test.ex r4_2.test.ex
+Subject: message 4
+****
+#
# Handed limits of 5 MAIL, 1 RCPT, expect to use 5 transactions in a one connection
-# when the client does a 2-phase queue run, followed by one transaction in one connection
+# when the client does a 2-phase queue run, followed by three transactions in one connection
# from the same queue run.
-# The second pair and third initial should be from continued-connection trasports, flagged by the log lines.
+# The second pair and third initial, completing the first connecttion, should be from
+# continued-connection trasports, flagged by the log lines.
server PORT_D 2
220 Hi there
EHLO
@@ -66,7 +71,7 @@ QUIT
220 Hi there
EHLO
250-yeah mate
-250
+250 LIMITS MAILMAX=5 RCPTMAX=1
MAIL FROM
250 mail cmd 1 good
RCPT TO
@@ -75,6 +80,22 @@ DATA
352 go ahead
.
250 message 6 received
+MAIL FROM
+250 mail cmd 2 good
+RCPT TO
+250 rcpt cmd good
+DATA
+352 go ahead
+.
+250 message 7 received
+MAIL FROM
+250 mail cmd 3 good
+RCPT TO
+250 rcpt cmd good
+DATA
+352 go ahead
+.
+250 message 8 received
QUIT
221 bye
*eof
diff --git a/test/stderr/0218 b/test/stderr/0218
index f725b6d3a..74109282a 100644
--- a/test/stderr/0218
+++ b/test/stderr/0218
@@ -14,14 +14,15 @@ CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1237 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1238 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
delivering 10HmaY-000000005vi-0000 (queue run pid p1234)
test.ex in ""? no (end of list)
CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1239 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1240 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1240 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+queue_run phase 2 start
queue running combined directories
looking in TESTSUITE/spool//input
delivering 10HmaX-000000005vi-0000 (queue run pid p1234)
@@ -102,14 +103,15 @@ CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1245 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1246 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1246 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
delivering 10HmbA-000000005vi-0000 (queue run pid p1235)
test.ex in ""? no (end of list)
CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1247 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1248 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1248 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+queue_run phase 2 start
queue running combined directories
looking in TESTSUITE/spool//input
delivering 10HmaZ-000000005vi-0000 (queue run pid p1235)
@@ -177,7 +179,7 @@ CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1254 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1255 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1255 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
delivering 10HmbB-000000005vi-0000 (queue run pid p1236)
R: bounce (ACL)
LOG: MAIN
@@ -186,14 +188,14 @@ LOG: MAIN
CALLER@???: error ignored
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=p1256 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1256 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
delivering 10HmbC-000000005vi-0000 (queue run pid p1236)
test.ex in ""? no (end of list)
CALLER@??? in senders? no (end of list)
R: client (ACL)
T: send_to_server (ACL)
>>>>>>>>>>>>>>>> Exim pid=p1257 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1258 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1258 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
delivering 10HmbA-000000005vi-0000 (queue run pid p1236)
test.ex in ""? no (end of list)
CALLER@??? in senders? no (end of list)
diff --git a/test/stderr/1157 b/test/stderr/1157
index d292a33a0..c87a34c53 100644
--- a/test/stderr/1157
+++ b/test/stderr/1157
@@ -6,11 +6,11 @@ dropping to exim gid; retaining priv uid
LOG: queue_run MAIN
Start queue run: pid=p1234 -qqf
>>>>>>>>>>>>>>>> Exim pid=p1242 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1243 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1243 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1244 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1245 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1245 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1246 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1247 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1247 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -66,20 +66,11 @@ cmd buf flush ddd bytes
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> .
SMTP<< 250 OK id=10HmbB-000000005vi-0000
- SMTP(close)>>
-cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250'
>>>>>>>>>>>>>>>> Exim pid=p1251 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

LOG: MAIN
=> usery@??? R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbB-000000005vi-0000"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=p1250 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
-Exim version x.yz ....
-Hints DB:
-configuration file is TESTSUITE/test-config
-trusted user
-admin user
-dropping to exim gid; retaining priv uid
SMTP|> MAIL FROM:<CALLER@???> SIZE=ssss
SMTP|> RCPT TO:<userz@???>
SMTP>> DATA
@@ -96,13 +87,13 @@ cmd buf flush ddd bytes (more expected)
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:QUIT+:250:221'
->>>>>>>>>>>>>>>> Exim pid=p1253 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1252 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userz@??? R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbC-000000005vi-0000"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=p1252 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1254 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1250 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1253 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=p1234 -qqf
>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -113,12 +104,12 @@ admin user
dropping to exim gid; retaining priv uid
LOG: queue_run MAIN
Start queue run: pid=p1235 -qqf
->>>>>>>>>>>>>>>> Exim pid=p1255 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1256 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1257 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1258 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1259 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1260 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1254 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1255 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1256 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1257 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1258 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1259 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
connected
SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -153,12 +144,12 @@ cmd buf flush ddd bytes
SMTP>> .
SMTP<< 250 OK id=10HmbG-000000005vi-0000
127.0.0.1 in hosts_noproxy_tls? no (end of list)
->>>>>>>>>>>>>>>> Exim pid=p1261 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1260 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> usera@??? R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbG-000000005vi-0000"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=p1262 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1261 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version x.yz ....
Hints DB:
configuration file is TESTSUITE/test-config
@@ -174,20 +165,11 @@ cmd buf flush ddd bytes
SMTP<< 354 Enter message, ending with "." on a line by itself
SMTP>> .
SMTP<< 250 OK id=10HmbH-000000005vi-0000
- SMTP(close)>>
-cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:250'
->>>>>>>>>>>>>>>> Exim pid=p1264 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1263 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userb@??? R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbH-000000005vi-0000"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=p1263 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
-Exim version x.yz ....
-Hints DB:
-configuration file is TESTSUITE/test-config
-trusted user
-admin user
-dropping to exim gid; retaining priv uid
SMTP|> MAIL FROM:<CALLER@???> SIZE=ssss
SMTP|> RCPT TO:<userc@???>
SMTP>> DATA
@@ -204,13 +186,13 @@ cmd buf flush ddd bytes (more expected)
SMTP<< 221 myhost.test.ex closing connection
SMTP(close)>>
cmdlog: 'MAIL|:RCPT|:DATA:250:250:354:.:QUIT+:250:221'
->>>>>>>>>>>>>>>> Exim pid=p1266 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1264 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: MAIN
=> userc@??? R=cl_override T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmbI-000000005vi-0000"
LOG: MAIN
Completed
->>>>>>>>>>>>>>>> Exim pid=p1265 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1267 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1262 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1265 (tls-proxy) terminating with rc=0 >>>>>>>>>>>>>>>>
LOG: queue_run MAIN
End queue run: pid=p1235 -qqf
>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

@@ -221,12 +203,12 @@ admin user
dropping to exim gid; retaining priv uid
LOG: queue_run MAIN
Start queue run: pid=p1236 -qqf
+>>>>>>>>>>>>>>>> Exim pid=p1266 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1267 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1268 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1269 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1269 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Exim pid=p1270 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>

->>>>>>>>>>>>>>>> Exim pid=p1271 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1272 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
->>>>>>>>>>>>>>>> Exim pid=p1273 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1271 (qrun-p1-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
 Connecting to 127.0.0.1 [127.0.0.1]:PORT_D ...
 connected
   SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
@@ -271,12 +253,12 @@ cmd buf flush ddd bytes
          250 HELP
   SMTP(close)>>
 cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250:EHLO:250-'
->>>>>>>>>>>>>>>> Exim pid=p1274 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1272 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
 LOG: MAIN
   => user_p@??? R=client T=send_to_server H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbM-000000005vi-0000"
 LOG: MAIN
   Completed
->>>>>>>>>>>>>>>> Exim pid=p1275 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1273 (qrun-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
 configuration file is TESTSUITE/test-config
@@ -313,20 +295,11 @@ cmd buf flush ddd bytes
          250-PIPELINING
          250-STARTTLS
          250 HELP
-  SMTP(close)>>
-cmdlog: 'STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:250:EHLO:250-'
->>>>>>>>>>>>>>>> Exim pid=p1277 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1275 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
 LOG: MAIN
   => user_q@??? R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbN-000000005vi-0000"
 LOG: MAIN
   Completed
->>>>>>>>>>>>>>>> Exim pid=p1276 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
-Exim version x.yz ....
-Hints DB:
-configuration file is TESTSUITE/test-config
-trusted user
-admin user
-dropping to exim gid; retaining priv uid
   SMTP>> STARTTLS
 cmd buf flush ddd bytes
   SMTP<< 220 TLS go ahead
@@ -353,12 +326,12 @@ cmd buf flush ddd bytes
   SMTP<< 221 myhost.test.ex closing connection
   SMTP(close)>>
 cmdlog: 'STARTTLS:220:EHLO:250-:MAIL|:RCPT|:DATA:250:250:354:.:QUIT:250:221'
->>>>>>>>>>>>>>>> Exim pid=p1279 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1276 (transport) terminating with rc=0 >>>>>>>>>>>>>>>>
 LOG: MAIN
   => user_r@??? R=client T=send_to_server H=127.0.0.1 [127.0.0.1]* X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=yes C="250 OK id=10HmbO-000000005vi-0000"
 LOG: MAIN
   Completed
->>>>>>>>>>>>>>>> Exim pid=p1278 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1274 (continued-transport) terminating with rc=0 >>>>>>>>>>>>>>>>
 LOG: queue_run MAIN
   End queue run: pid=p1236 -qqf

>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>

diff --git a/test/stdout/4714 b/test/stdout/4714
index 8037405e7..c6016beda 100644
--- a/test/stdout/4714
+++ b/test/stdout/4714
@@ -99,7 +99,7 @@ Connection request from [127.0.0.1]
220 Hi there
EHLO the.local.host.name
250-yeah mate
-250
+250 LIMITS MAILMAX=5 RCPTMAX=1
MAIL FROM:<CALLER@???>
250 mail cmd 1 good
RCPT TO:<r3_2.test.ex@???>
@@ -117,6 +117,40 @@ Date: Tue, 2 Mar 1999 09:44:33 +0000

 .
 250 message 6 received
+MAIL FROM:<CALLER@???>
+250 mail cmd 2 good
+RCPT TO:<r4_1.test.ex@???>
+250 rcpt cmd good
+DATA
+352 go ahead
+Received: from CALLER by the.local.host.name with local (Exim x.yz)
+    (envelope-from <CALLER@???>)
+    id 10HmbA-000000005vi-0000;
+    Tue, 2 Mar 1999 09:44:33 +0000
+Subject: message 4
+Message-Id: <E10HmbA-000000005vi-0000@???>
+From: CALLER_NAME <CALLER@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+.
+250 message 7 received
+MAIL FROM:<CALLER@???>
+250 mail cmd 3 good
+RCPT TO:<r4_2.test.ex@???>
+250 rcpt cmd good
+DATA
+352 go ahead
+Received: from CALLER by the.local.host.name with local (Exim x.yz)
+    (envelope-from <CALLER@???>)
+    id 10HmbA-000000005vi-0000;
+    Tue, 2 Mar 1999 09:44:33 +0000
+Subject: message 4
+Message-Id: <E10HmbA-000000005vi-0000@???>
+From: CALLER_NAME <CALLER@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+.
+250 message 8 received
 QUIT
 221 bye
 Expected EOF read from client


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-cvs.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-cvs-unsubscribe@???
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/