DEBUG: clarify multiline smtp responses
authorJeremy Harris <jgh146exb@wizmail.org>
Thu, 26 May 2022 11:10:27 +0000 (12:10 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Thu, 26 May 2022 14:43:03 +0000 (15:43 +0100)
src/src/smtp_in.c
test/stderr/0044
test/stderr/0303
test/stderr/0371
test/stderr/0487
test/stderr/3400

index 6de85a15fb805fcc63f6f738350c8e357911e645..7a4eaf99681da1e740d2b44b0bca132edf708d70 100644 (file)
@@ -956,15 +956,12 @@ that we'll never expand it. */
 yield = !! string_vformat(&gs, SVFMT_TAINT_NOCHK, format, ap);
 string_from_gstring(&gs);
 
-DEBUG(D_receive)
-  {
-  uschar *msg_copy, *cr, *end;
-  msg_copy = string_copy(gs.s);
-  end = msg_copy + gs.ptr;
-  while ((cr = Ustrchr(msg_copy, '\r')) != NULL)   /* lose CRs */
-    memmove(cr, cr + 1, (end--) - cr);
-  debug_printf("SMTP>> %s", msg_copy);
-  }
+DEBUG(D_receive) for (const uschar * t, * s = gs.s;
+                     s && (t = Ustrchr(s, '\r'));
+                     s = t + 2)                                /* \r\n */
+    debug_printf("%s %.*s\n",
+                 s == gs.s ? "SMTP>>" : "      ",
+                 (int)(t - s), s);
 
 if (!yield)
   {
@@ -4622,15 +4619,12 @@ while (done <= 0)
 #endif
        (void) fwrite(g->s, 1, g->ptr, smtp_out);
 
-      DEBUG(D_receive)
-       {
-       uschar *cr;
-
-       (void) string_from_gstring(g);
-       while ((cr = Ustrchr(g->s, '\r')) != NULL)   /* lose CRs */
-         memmove(cr, cr + 1, (g->ptr--) - (cr - g->s));
-       debug_printf("SMTP>> %s", g->s);
-       }
+      DEBUG(D_receive) for (const uschar * t, * s = string_from_gstring(g);
+                           s && (t = Ustrchr(s, '\r'));
+                           s = t + 2)                          /* \r\n */
+         debug_printf("%s %.*s\n",
+                       s == g->s ? "SMTP>>" : "      ",
+                       (int)(t - s), s);
       fl.helo_seen = TRUE;
 
       /* Reset the protocol and the state, abandoning any previous message. */
index 6d3354ecef3eda410763d444b6e7ea94c5101032..e8e4a384f3c0662bb348426c71c4ed83650921a5 100644 (file)
@@ -33,10 +33,10 @@ host in dsn_advertise_hosts? no (option unset)
 host in pipelining_advertise_hosts? yes (matched "*")
 host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-the.local.host.name Hello exim.test.ex [V4NET.11.12.13]
-250-SIZE 52428800
-250-8BITMIME
-250-PIPELINING
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-PIPELINING
+       250 HELP
 SMTP<< mail from:postmaster@exim.test.ex
 spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
@@ -211,10 +211,10 @@ host in dsn_advertise_hosts? no (option unset)
 host in pipelining_advertise_hosts? yes (matched "*")
 host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-the.local.host.name Hello exim.test.ex [V4NET.99.99.99]
-250-SIZE 52428800
-250-8BITMIME
-250-PIPELINING
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-PIPELINING
+       250 HELP
 SMTP<< mail from:postmaster@exim.test.ex
 spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
index d8c1e68daed7e84d51bff30e72fdafe0c3226de3..bf8f94662b5c249aab79190ab85b1c159607a375 100644 (file)
@@ -72,10 +72,10 @@ host in dsn_advertise_hosts? no (option unset)
 host in pipelining_advertise_hosts? yes (matched "*")
 host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-myhost.test.ex Hello [V4NET.2.3.4] [V4NET.2.3.4]
-250-SIZE 52428800
-250-8BITMIME
-250-PIPELINING
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-PIPELINING
+       250 HELP
 SMTP<< mail from:<>
 spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
@@ -149,10 +149,10 @@ host in dsn_advertise_hosts? no (option unset)
 host in pipelining_advertise_hosts? yes (matched "*")
 host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-myhost.test.ex Hello host.name.tld [V4NET.2.3.4]
-250-SIZE 52428800
-250-8BITMIME
-250-PIPELINING
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-PIPELINING
+       250 HELP
 SMTP<< mail from:<>
 spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
index 9a3402fe50fd05310f14f5a905d249870191f3d9..41ad3ff50a89e8d192607b690473addcdf477d2a 100644 (file)
@@ -39,11 +39,11 @@ host in dsn_advertise_hosts? no (option unset)
 host in pipelining_advertise_hosts? yes (matched "*")
 host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-mail.test.ex Hello something [V4NET.0.0.0]
-250-SIZE 52428800
-250-8BITMIME
-250-VRFY
-250-PIPELINING
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-VRFY
+       250-PIPELINING
+       250 HELP
 SMTP<< mail from:<x@y>
 spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
index 2056f53732803b8cee44437dfa172610a026bfa1..5b9855f4a67e43dc9a44fdc80a22e48afdcb4af2 100644 (file)
@@ -23,10 +23,10 @@ SMTP<< ehlo x.y
  in pipelining_advertise_hosts? yes (matched "*")
  in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-myhost.test.ex Hello CALLER at x.y
-250-SIZE 52428800
-250-8BITMIME
-250-PIPELINING
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-PIPELINING
+       250 HELP
 SMTP<< mail from:<x@y>
 spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
 log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
index bd048d486ca3c4bb4351dfa83c35b87e3871770d..bec165e5d8c274d7eb8b3e107c20522549b1be6d 100644 (file)
@@ -448,14 +448,14 @@ Evaluating advertise_condition for defer DEFER athenticator
 Evaluating advertise_condition for login LOGIN athenticator
 host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-myhost.test.ex Hello CALLER at testing.testing [10.0.0.5]
-250-SIZE 52428800
-250-8BITMIME
-250-ETRN
-250-VRFY
-250-EXPN
-250-PIPELINING
-250-AUTH MYLOGIN PLAIN EXPLAIN EXPANDED EXPANDFAIL DEFER LOGIN
-250 HELP
+       250-SIZE 52428800
+       250-8BITMIME
+       250-ETRN
+       250-VRFY
+       250-EXPN
+       250-PIPELINING
+       250-AUTH MYLOGIN PLAIN EXPLAIN EXPANDED EXPANDFAIL DEFER LOGIN
+       250 HELP
 SMTP<< auth mylogin dXNlcnggc2VjcmV0
 auth input decode: 'userx secret'
 mylogin authenticator server_condition: