Logging: show when input from truncated for logging "next input sent too soon"
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 8 Oct 2017 17:56:13 +0000 (18:56 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 8 Oct 2017 17:56:13 +0000 (18:56 +0100)
doc/doc-txt/ChangeLog
src/src/smtp_in.c
test/log/0901
test/rejectlog/0901
test/scripts/0000-Basic/0901
test/stdout/0901

index 8f1b6b7ad0ecac60956989bee15e1dc67d7ffedd..5266cefc4751858bcd01130df26fbf0106a6c709 100644 (file)
@@ -166,6 +166,9 @@ 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/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.
+
 
 Exim version 4.89
 -----------------
 
 Exim version 4.89
 -----------------
index 0f8d5599b6a9173411ff094e1a961ec2c665b626..9847c86c7d1895a08feaf5b5c1c31927801cb79b 100644 (file)
@@ -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): "
     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),
       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;
     }
 
     goto repeat_until_rset;
     }
 
index 0297a891559981e925597fc9e4d05813b406849a..0f876740f717fc20d26dee48b2087166b210c638 100644 (file)
@@ -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 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)
 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)
index f75d9d27040fe1806372e9dfe4e08f646a02ce41..a4185a966bc0f0c3db1f3c893b131e2cae1bb997 100644 (file)
@@ -1,6 +1,6 @@
 
 ******** SERVER ********
 
 ******** 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")
 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")
index 5e88c5ae99856aa228b7110d5caa61503bfafb8b..f5a6fff9a7205811566dc15d7055b19415df6604 100644 (file)
@@ -247,11 +247,7 @@ MAIL FROM:someone9@some.domain
 ??? 250
 RCPT TO:CALLER@test.ex
 ??? 250
 ??? 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
 ****
 #
 ??? 554 SMTP synchronization error
 ****
 #
index a982ac8b601c33be07e0e1e8026786f4bd887bd6..c4020ae5f8bdd29fd9dea7b55d545cc3c5f206e4 100644 (file)
@@ -330,11 +330,7 @@ Connecting to 127.0.0.1 port 1225 ... connected
 >>> RCPT TO:CALLER@test.ex
 ??? 250
 <<< 250 Accepted
 >>> 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
 ??? 554 SMTP synchronization error
 <<< 554 SMTP synchronization error
 End of script