Call notquite ACL for synprot-error limit. Bug 3092
authorJeremy Harris <jgh146exb@wizmail.org>
Thu, 12 Dec 2024 16:16:28 +0000 (16:16 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Thu, 12 Dec 2024 16:16:28 +0000 (16:16 +0000)
38 files changed:
doc/doc-txt/ChangeLog
src/src/daemon.c
src/src/functions.h
src/src/globals.c
src/src/globals.h
src/src/receive.c
src/src/smtp_in.c
src/src/structs.h
src/src/tls-gnu.c
src/src/tls-openssl.c
test/log/0901
test/stderr/0022
test/stderr/0044
test/stderr/0275
test/stderr/0278
test/stderr/0294
test/stderr/0303
test/stderr/0317
test/stderr/0361
test/stderr/0371
test/stderr/0386
test/stderr/0402
test/stderr/0403
test/stderr/0408
test/stderr/0465
test/stderr/0471
test/stderr/0487
test/stderr/0489
test/stderr/0575
test/stderr/0628
test/stderr/2202
test/stderr/2600
test/stderr/2610
test/stderr/2620
test/stderr/4155
test/stderr/5004
test/stderr/5005
test/stderr/5006

index 395ed4ada43c1130c33de831d315fd96f8b9585d..d3820946e895cd3c919a5834bf35cc2199088408 100644 (file)
@@ -93,6 +93,9 @@ JH/17 Bug 3126: Fix build error in the ibase lookup.  Find & fix by
 JH/18 Bug 3102: The dmarc_tld_file and dmarc_history_file options are now
       expanded before use.
 
+JH/19 Bug 3092: Call acl_smtp_notquit for drops associated with the
+      smtp_max_synprot_errors limit.
+
 Exim version 4.98
 -----------------
 
index e68d4dba13aa6b0c6d35b5387ec8248b3b47ab45..8d2dfa7e20c6f122476a3d08563377e988b4fd04 100644 (file)
@@ -554,25 +554,13 @@ if (pid == 0)
 
     /* Smtp_setup_msg() returns 0 on QUIT or if the call is from an
     unacceptable host or if an ACL "drop" command was triggered, -1 on
-    connection lost, and +1 on validly reaching DATA. Receive_msg() almost
-    always returns TRUE when smtp_input is true; just retry if no message was
-    accepted (can happen for invalid message parameters). However, it can yield
-    FALSE if the connection was forcibly dropped by the DATA ACL. */
+    connection lost or synprot-error, and +1 on validly reaching DATA.
+    Receive_msg() almost always returns TRUE when smtp_input is true; just retry
+    if no message was accepted (can happen for invalid message parameters).
+    However, it can yield FALSE if the connection was forcibly dropped by the
+    DATA ACL. */
 
-    if ((rc = smtp_setup_msg()) > 0)
-      {
-      BOOL ok = receive_msg(FALSE);
-      search_tidyup();                    /* Close cached databases */
-      if (!ok)                            /* Connection was dropped */
-        {
-       cancel_cutthrough_connection(TRUE, US"receive dropped");
-        mac_smtp_fflush();
-        smtp_log_no_mail();               /* Log no mail if configured */
-        exim_underbar_exit(EXIT_SUCCESS);
-        }
-      if (!message_id[0]) continue;    /* No message was accepted */
-      }
-    else                               /* bad smtp_setup_msg() */
+    if ((rc = smtp_setup_msg()) <= 0)          /* bad smtp_setup_msg() */
       {
       if (smtp_out)
        {
@@ -594,6 +582,19 @@ if (pid == 0)
       exim_underbar_exit(rc ? EXIT_FAILURE : EXIT_SUCCESS);
       }
 
+     {
+      BOOL ok = receive_msg(FALSE);
+      search_tidyup();                    /* Close cached databases */
+      if (!ok)                            /* Connection was dropped */
+        {
+       cancel_cutthrough_connection(TRUE, US"receive dropped");
+        mac_smtp_fflush();
+        smtp_log_no_mail();               /* Log no mail if configured */
+        exim_underbar_exit(EXIT_SUCCESS);
+        }
+      if (!message_id[0]) continue;    /* No message was accepted */
+     }
+
     /* Show the recipients when debugging */
 
     DEBUG(D_receive)
index 74000b92f1697ed3da5dcbcca1e1e3e13753b9e1..ed33018b98c29b31c499c8f1c0c684c10d2c736b 100644 (file)
@@ -506,7 +506,7 @@ extern BOOL    smtp_hasc(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_notquit_exit(uschar *, uschar *, uschar *, ...);
+extern void    smtp_notquit_exit(const uschar *, uschar *, const uschar *, ...);
 extern void    smtp_port_for_connect(host_item *, int);
 extern void    smtp_proxy_tls(void *, uschar *, size_t, int *, int, const uschar *) NORETURN;
 extern BOOL    smtp_read_response(void *, uschar *, int, int, int);
index 8373c1e7d7cb4971f02a3ea38464d5d045aabe3c..ca2979d40724e3151b90c17c81ac8352f78cbe5e 100644 (file)
@@ -1440,7 +1440,7 @@ FILE   *smtp_out               = NULL;
 uschar *smtp_etrn_command      = NULL;
 int     smtp_max_synprot_errors= 3;
 int     smtp_max_unknown_commands = 3;
-uschar *smtp_notquit_reason    = NULL;
+const uschar *smtp_notquit_reason = NULL;
 unsigned smtp_peer_options     = 0;
 unsigned smtp_peer_options_wrap= 0;
 uschar *smtp_ratelimit_hosts   = NULL;
index 0487f69a7e978392b249fcb863c9806fd636dfd5..3f1ae259acc82788b6462ef1a5b66e4f077d789d 100644 (file)
@@ -989,7 +989,7 @@ extern int     smtp_mailcmd_max;       /* Limit for MAIL commands */
 extern int     smtp_max_synprot_errors;/* Max syntax/protocol errors */
 extern int     smtp_max_unknown_commands; /* As it says */
 extern uschar *smtp_names[];          /* decode for command codes */
-extern uschar *smtp_notquit_reason;    /* Global for disconnect reason */
+extern const uschar *smtp_notquit_reason; /* Global for disconnect reason */
 extern FILE   *smtp_out;               /* Incoming SMTP output file */
 extern uschar *smtp_ratelimit_hosts;   /* Rate limit these hosts */
 extern uschar *smtp_ratelimit_mail;    /* Parameters for MAIL limiting */
index 60051e36be3049bc6cb52a7079d582ba1c5222ff..02a1f96e250e835afe51a991d93742969b9c4904 100644 (file)
@@ -680,7 +680,7 @@ if (!f.dot_ends)
   int last_ch = '\n';
 
   for ( ;
-       log_close_chk(), (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF;
+       log_close_chk(), (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) >= 0;
        last_ch = ch)
     {
     if (ch == 0) body_zerocount++;
@@ -723,7 +723,7 @@ if (!f.dot_ends)
 
 ch_state = 1;
 
-while (log_close_chk(), (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF)
+while (log_close_chk(), (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) >= 0)
   {
   if (ch == 0) body_zerocount++;
   switch (ch_state)
@@ -847,7 +847,7 @@ enum { s_linestart, s_normal, s_had_cr, s_had_nl_dot, s_had_dot_cr } ch_state =
              s_linestart;
 int linelength = 0, ch;
 
-while ((ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF)
+while ((ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) >= 0)
   {
   if (ch == 0) body_zerocount++;
   switch (ch_state)
@@ -1829,7 +1829,7 @@ mime_part_count        = -1;
 #endif
 
 if (misc_mod_msg_init() != OK)
-  goto TIDYUP;
+  goto CONN_GONE;
 
 /* In SMTP sessions we may receive several messages in one connection. Before
 each subsequent one, we wait for the clock to tick at the level of message-id
@@ -1918,7 +1918,7 @@ for (;;)
       goto TIDYUP;                       /* Skip to end of function */
       }
     else if (ch == ERR)
-      goto TIDYUP;
+      goto CONN_GONE;
 
   /* See if we are at the current header's size limit - there must be at least
   four bytes left. This allows for the new character plus a zero, plus two for
@@ -1989,14 +1989,16 @@ for (;;)
   if (f.dot_ends && ptr == 0 && ch == '.')
     {
     /* leading dot while in headers-read mode */
-    ch = (receive_getc)(GETC_BUFFER_UNLIMITED);
+    if ((ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) < 0)
+      goto CONN_GONE;
     if (ch == '\n' && first_line_ended_crlf == TRUE /* and not TRUE_UNSET */ )
                /* dot, LF  but we are in CRLF mode.  Attack? */
       ch = ' ';        /* replace the LF with a space */
 
     else if (ch == '\r')
       {
-      ch = (receive_getc)(GETC_BUFFER_UNLIMITED);
+      if ((ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) < 0)
+       goto CONN_GONE;
       if (ch != '\n')
         {
        if (ch >= 0) receive_ungetc(ch);
@@ -2027,7 +2029,8 @@ for (;;)
 
   if (ch == '\r')
     {
-    ch = (receive_getc)(GETC_BUFFER_UNLIMITED);
+    if ((ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) < 0)
+      goto CONN_GONE;
     if (ch == '\n')
       {
       if (first_line_ended_crlf == TRUE_UNSET)
@@ -4287,12 +4290,10 @@ if (  smtp_input && sender_host_address && !f.sender_host_notsocket
   if (poll_one_fd(fileno(smtp_in), POLLIN, 0) != 0)
     {
     int c = (receive_getc)(GETC_BUFFER_UNLIMITED);
-    if (c != EOF) (receive_ungetc)(c);
+    if (c >= 0) (receive_ungetc)(c);
     else
       {
       smtp_notquit_exit(US"connection-lost", NULL, NULL);
-      smtp_reply = US"";    /* No attempt to send a response */
-      smtp_yield = FALSE;   /* Nothing more on this connection */
 
       /* Re-use the log line workspace */
 
@@ -4307,7 +4308,7 @@ if (  smtp_input && sender_host_address && !f.sender_host_notsocket
       Uunlink(spool_fname(US"input", message_subdir, message_id, US"-H"));
       Uunlink(spool_fname(US"msglog", message_subdir, message_id, US""));
 
-      goto TIDYUP;
+      goto CONN_GONE;
       }
     }
   }
@@ -4414,13 +4415,20 @@ Could we make this less likely by doing an fdatasync() just after the fflush()?
 That seems like a good thing on data-security grounds, but how much will it hit
 performance? */
 
-
 goto TIDYUP;
 
+
+CONN_GONE:
+  smtp_reply = US"";    /* No attempt to send a response */
+  smtp_yield = FALSE;   /* Nothing more on this connection */
+  goto TIDYUP;
+
 NOT_ACCEPTED:
-message_id[0] = 0;                             /* Indicate no message accepted */
+  message_id[0] = 0;                   /* Indicate no message accepted */
 
 TIDYUP:
+DEBUG(D_receive) debug_printf("%s: tidyup\n", __FUNCTION__);
+
 process_info[process_info_len] = 0;                    /* Remove message id */
 if (spool_data_file && cutthrough_done == NOT_TRIED)
   {
index b02d1a87d575f21ef9d814bc4a9f730259f4ad2f..81ef57ed085c1417b6080218e61012fe55ab681c 100644 (file)
@@ -156,14 +156,12 @@ static struct {
 #endif
   BOOL rcpt_smtp_response_same         :1;
   BOOL rcpt_in_progress                        :1;
-  BOOL smtp_exit_function_called       :1;
 #ifdef SUPPORT_I18N
   BOOL smtputf8_advertised             :1;
 #endif
 } fl = {
   .helo_verify_required = FALSE,
   .helo_verify = FALSE,
-  .smtp_exit_function_called = FALSE,
 };
 
 static auth_instance *authenticated_by;
@@ -325,6 +323,15 @@ static env_mail_type_t env_mail_type_list[] = {
     { US"NULL",   ENV_MAIL_OPT_NULL,   FALSE },
   };
 
+/* State names for debug of chunking */
+
+static const uschar * chunking_states[] = {
+  [CHUNKING_NOT_OFFERED] =     US"not-offered",
+  [CHUNKING_OFFERED] =         US"offered",
+  [CHUNKING_ACTIVE] =          US"active",
+  [CHUNKING_LAST] =            US"last" };
+
+
 /* When reading SMTP from a remote host, we have to use our own versions of the
 C input-reading functions, in order to be able to flush the SMTP output only
 when about to read more data from the socket. This is the only way to get
@@ -740,8 +747,8 @@ Returns:    the next character or ERR, EOD or EOF
 int
 bdat_getc(unsigned lim)
 {
-uschar * user_msg = NULL;
-uschar * log_msg;
+uschar * user_msg = NULL, * log_msg;
+int rc;
 
 #ifndef DISABLE_DKIM
 misc_module_info * dkim_info = misc_mod_findonly(US"dkim");
@@ -796,7 +803,8 @@ for(;;)
 
   smtp_printf("250 %u byte chunk received\r\n", SP_NO_MORE, chunking_datasize);
   chunking_state = CHUNKING_OFFERED;
-  DEBUG(D_receive) debug_printf("chunking state %d\n", (int)chunking_state);
+  DEBUG(D_receive)
+    debug_printf("chunking state '%s'\n", chunking_states[chunking_state]);
 
   /* Expect another BDAT cmd from input. RFC 3030 says nothing about
   QUIT, RSET or NOOP but handling them seems obvious */
@@ -809,14 +817,14 @@ next_cmd:
        US"only BDAT permissible after non-LAST BDAT");
 
   repeat_until_rset:
-      switch(smtp_read_command(TRUE, 1))
+      switch(rc = smtp_read_command(TRUE, 1))
        {
        case QUIT_CMD:  smtp_quit_handler(&user_msg, &log_msg); /*FALLTHROUGH */
        case EOF_CMD:   return EOF;
        case RSET_CMD:  smtp_rset_handler(); return ERR;
        default:        if (synprot_error(L_smtp_protocol_error, 503, NULL,
                                          US"only RSET accepted now") > 0)
-                         return EOF;
+                         return ERR;
                        goto repeat_until_rset;
        }
 
@@ -848,8 +856,8 @@ next_cmd:
       chunking_state = strcmpic(smtp_cmd_data+n, US"LAST") == 0
        ? CHUNKING_LAST : CHUNKING_ACTIVE;
       chunking_data_left = chunking_datasize;
-      DEBUG(D_receive) debug_printf("chunking state %d, %d bytes\n",
-                                   (int)chunking_state, chunking_data_left);
+      DEBUG(D_receive) debug_printf("chunking state '%s', %d bytes\n",
+                       chunking_states[chunking_state], chunking_data_left);
 
       if (chunking_datasize == 0)
        if (chunking_state == CHUNKING_LAST)
@@ -904,7 +912,8 @@ while (chunking_data_left)
 
 bdat_pop_receive_functions();
 chunking_state = CHUNKING_OFFERED;
-DEBUG(D_receive) debug_printf("chunking state %d\n", (int)chunking_state);
+DEBUG(D_receive)
+  debug_printf("chunking state '%s'\n", chunking_states[chunking_state]);
 }
 
 
@@ -1181,20 +1190,32 @@ Returns:       a code identifying the command (enumerated above)
 static int
 smtp_read_command(BOOL check_sync, unsigned buffer_lim)
 {
-int c;
-int ptr = 0;
+int ptr = 0, c, rc;
 BOOL hadnull = FALSE;
 
 had_command_timeout = 0;
 os_non_restarting_signal(SIGALRM, command_timeout_handler);
 
-while ((c = (receive_getc)(buffer_lim)) != '\n' && c != EOF)
+/* Read up to end of line */
+
+while ((c = (receive_getc)(buffer_lim)) != '\n')
   {
-  if (ptr >= SMTP_CMD_BUFFER_SIZE)
+  /* If hit end of file, return pseudo EOF command. Whether we have a
+  part-line already read doesn't matter, since this is an error state. */
+
+  if (c < 0 || ptr >= SMTP_CMD_BUFFER_SIZE)
     {
     os_non_restarting_signal(SIGALRM, sigalrm_handler);
-    return OTHER_CMD;
+    /* c could be EOF, ERR, or a good (positive) value overflowing the buffer */
+    DEBUG(D_receive)
+      if (c < 0)
+       debug_printf("SMTP(%s)<<\n", c == EOF ? "closed" : "error");
+      else
+       debug_printf("SMTP(overflow)<< '%.*s'\n",
+                     SMTP_CMD_BUFFER_SIZE, smtp_cmd_buffer);
+    return c == EOF ? EOF_CMD : OTHER_CMD;
     }
+
   if (c == 0)
     {
     hadnull = TRUE;
@@ -1206,11 +1227,6 @@ while ((c = (receive_getc)(buffer_lim)) != '\n' && c != EOF)
 receive_linecount++;    /* For BSMTP errors */
 os_non_restarting_signal(SIGALRM, sigalrm_handler);
 
-/* If hit end of file, return pseudo EOF command. Whether we have a
-part-line already read doesn't matter, since this is an error state. */
-
-if (c == EOF) return EOF_CMD;
-
 /* Remove any CR and white space at the end of the line, and terminate the
 string. */
 
@@ -1278,9 +1294,9 @@ for (smtp_cmd_list * p = cmd_list; p < cmd_list + nelem(cmd_list); p++)
       }
 
     /* If there is data for a command that does not expect it, generate the
-    error here. */
+    error here. Otherwise, return the command code. */
 
-    return (p->has_arg || *smtp_cmd_data == 0)? p->cmd : BADARG_CMD;
+    return p->has_arg || *smtp_cmd_data == 0 ? p->cmd : BADARG_CMD;
     }
   }
 
@@ -1965,6 +1981,7 @@ while (done <= 0)
 
     case QUIT_CMD:
       f.smtp_in_quit = TRUE;
+    case OTHER_CMD:
     case EOF_CMD:
       done = 2;
       break;
@@ -2248,7 +2265,7 @@ fl.auth_advertised = FALSE;
 f.smtp_in_pipelining_advertised = f.smtp_in_pipelining_used = FALSE;
 f.pipelining_enable = TRUE;
 sync_cmd_limit = NON_SYNC_CMD_NON_PIPELINING;
-fl.smtp_exit_function_called = FALSE;    /* For avoiding loop in not-quit exit */
+smtp_notquit_reason = NULL;            /* For avoiding loop in not-quit exit */
 
 /* If receiving by -bs from a trusted user, or testing with -bh, we allow
 authentication settings from -oMaa to remain in force. */
@@ -2810,6 +2827,7 @@ log_write(type, LOG_MAIN, "SMTP %s error in \"%s\" %s %s",
   type == L_smtp_syntax_error ? "syntax" : "protocol",
   string_printing(smtp_cmd_buffer), host_and_ident(TRUE), errmess);
 
+GET_OPTION("smtp_max_synprot_errors");
 if (++synprot_error_count > smtp_max_synprot_errors)
   {
   yield = 1;
@@ -2822,10 +2840,20 @@ if (++synprot_error_count > smtp_max_synprot_errors)
 
 if (code > 0)
   {
-  smtp_printf("%d%c%s%s%s\r\n", SP_NO_MORE, code, yield == 1 ? '-' : ' ',
+  BOOL more = yield == 1;
+  smtp_printf("%d%c%s%s%s\r\n", more, code, more ? '-' : ' ',
     data ? data : US"", data ? US": " : US"", errmess);
-  if (yield == 1)
-    smtp_printf("%d Too many syntax or protocol errors\r\n", SP_NO_MORE, code);
+  if (more)
+    {
+    smtp_notquit_exit(US"bad-command-synprot", string_sprintf("%d", code),
+                     US"Too many syntax or protocol errors");
+    DEBUG(D_any) debug_printf_indent("SMTP(close)>>\n");
+#ifndef DISABLE_TLS
+    tls_close(NULL, TLS_SHUTDOWN_WAIT);
+#endif
+    (void) fclose(smtp_in);
+    (void) fclose(smtp_out);
+    }
   }
 
 return yield;
@@ -3187,7 +3215,7 @@ smtp_notquit_exit(US"acl-drop", NULL, NULL);
 in the TCP conn staying open, and retrying, despite this process exiting. A
 malicious client could possibly do the same, tying up server netowrking
 resources. Close the socket explicitly to try to avoid that (there's a note in
-the Linux socket(7) manpage, SO_LINGER para, to the effect that exim() without
+the Linux socket(7) manpage, SO_LINGER para, to the effect that exit() without
 close() results in the socket always lingering). */
 
 (void) poll_one_fd(fileno(smtp_in), POLLIN, 200);
@@ -3227,37 +3255,41 @@ Returns:          Nothing
 */
 
 void
-smtp_notquit_exit(uschar *reason, uschar *code, uschar *defaultrespond, ...)
+smtp_notquit_exit(const uschar * reason, uschar * code,
+  const uschar * defaultrespond, ...)
 {
 int rc;
 uschar *user_msg = NULL;
 uschar *log_msg = NULL;
 
-/* Check for recursive call */
+/* When a bad-command-excess is seen in the CHUNKING sub-handler, it only
+reports as EOF to the toplevel command loop - which handles EOF for the
+traditional DATA mode and calls here because the line dropped. Maybe we
+should complexify that reporting value?  For now just ignore the second call
+we get when the line goes on to drop when CHUNKING. */
 
-if (fl.smtp_exit_function_called)
+if (smtp_notquit_reason)
   {
-  log_write(0, LOG_PANIC, "smtp_notquit_exit() called more than once (%s)",
-    reason);
+#ifdef notdef
+  log_write(0, LOG_PANIC,
+    "smtp_notquit_exit() called more than once (%s, prev: %s)",
+    reason, smtp_notquit_reason);
+#endif
   return;
   }
-fl.smtp_exit_function_called = TRUE;
+smtp_notquit_reason = reason;
 
 /* Call the not-QUIT ACL, if there is one, unless no reason is given. */
 
 GET_OPTION("acl_smtp_notquit");
 if (acl_smtp_notquit && reason)
   {
-  smtp_notquit_reason = reason;
   if ((rc = acl_check(ACL_WHERE_NOTQUIT, NULL, acl_smtp_notquit, &user_msg,
                      &log_msg)) == ERROR)
     log_write(0, LOG_MAIN|LOG_PANIC, "ACL for not-QUIT returned ERROR: %s",
       log_msg);
   }
 
-/* If the connection was dropped, we certainly are no longer talking TLS */
-tls_in.active.sock = -1;
-
 /* Write an SMTP response if we are expected to give one. As the default
 responses are all internal, they should be reasonable size. */
 
@@ -3271,7 +3303,7 @@ if (code && defaultrespond)
     va_list ap;
 
     va_start(ap, defaultrespond);
-    g = string_vformat(NULL, SVFMT_EXTEND|SVFMT_REBUFFER, CS defaultrespond, ap);
+    g = string_vformat(NULL, SVFMT_EXTEND|SVFMT_REBUFFER, CCS defaultrespond, ap);
     va_end(ap);
     smtp_printf("%s %Y\r\n", SP_NO_MORE, code, g);
     }
@@ -3695,7 +3727,7 @@ Argument: none
 
 Returns:  > 0 message successfully started (reached DATA)
           = 0 QUIT read or end of file reached or call refused
-          < 0 lost connection
+          < 0 lost connection, or synprot error
 */
 
 int
@@ -5179,8 +5211,8 @@ while (done <= 0)
       chunking_state = strcmpic(smtp_cmd_data+n, US"LAST") == 0
        ? CHUNKING_LAST : CHUNKING_ACTIVE;
       chunking_data_left = chunking_datasize;
-      DEBUG(D_receive) debug_printf("chunking state %d, %d bytes\n",
-                                   (int)chunking_state, chunking_data_left);
+      DEBUG(D_receive) debug_printf("chunking state '%s', %d bytes\n",
+                       chunking_states[chunking_state], chunking_data_left);
 
       f.bdat_readers_wanted = TRUE; /* FIXME: redundant vs chunking_state? */
       f.dot_ends = FALSE;
index a32c55675d0bf9308904eaaad854695009e6b9e3..4c74608b3151089a554c38f8b58f87f5fbdfc3e7 100644 (file)
@@ -64,7 +64,7 @@ typedef struct ugid_block {
   BOOL    initgroups;
 } ugid_block;
 
-typedef enum { CHUNKING_NOT_OFFERED = -1,
+typedef enum { CHUNKING_NOT_OFFERED = 0,
                CHUNKING_OFFERED,
                CHUNKING_ACTIVE,
                CHUNKING_LAST} chunking_state_t;
index 8cddcc0338125c2da5cffba7a1d1c0a454f3b80c..7c6296786e3e7d14ee54cc0c48ab8fc43a0cc5bb 100644 (file)
@@ -550,6 +550,12 @@ record_io_error(exim_gnutls_state_st *state, int rc, uschar *when, uschar *text)
 const uschar * msg;
 uschar * errstr;
 
+if (rc == GNUTLS_E_INVALID_SESSION && errno == 0)
+  {
+  DEBUG(D_tls) debug_printf("- INVALID_SESSION with zero errno\n");
+  return;
+  }
+
 msg = rc == GNUTLS_E_FATAL_ALERT_RECEIVED
   ? string_sprintf("A TLS fatal alert has been received: %s",
       US gnutls_alert_get_name(gnutls_alert_get(state->session)))
index 02823909515832036059e8ba040f04cd2d4de470..8539d587666e46c8aafb73c8d0c6a7e3659ce2c9 100644 (file)
@@ -4778,7 +4778,9 @@ for (int left = len; left > 0;)
       return -1;
 
     case SSL_ERROR_SYSCALL:
-      if (ct_ctx || errno != ECONNRESET || !f.smtp_in_quit)
+      if (errno == 0)
+       { DEBUG(D_tls) debug_printf("- SSL_ERROR_SYSCALL with zero errno\n"); }
+      else if (ct_ctx || errno != ECONNRESET || !f.smtp_in_quit)
        log_write(0, LOG_MAIN, "SSL_write: (from %s) syscall: %s",
          sender_fullhost ? sender_fullhost : US"<unknown>",
          strerror(errno));
index 7d4a715b5334e9afff7003776dba13ce7f24deeb..364b3b94212a54614dfb9f4073e78ab4ed5dbb7e 100644 (file)
@@ -12,4 +12,3 @@
 1999-03-02 09:44:33 10HmbF-000000005vi-0000 <= 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\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",  C=EHLO,MAIL,RCPT,BDAT)
-1999-03-02 09:44:33 SMTP connection from (tester) [127.0.0.1] lost while reading message data (header)
index 7be2959df8672eb0405d50154e6c295e043118f5..495b2c1110cec8c70d87d05434d7722797c06586 100644 (file)
@@ -71,6 +71,7 @@ P Received: from [V4NET.9.8.7] (helo=test)
        Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= x@y H=(test) [V4NET.9.8.7] P=smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmbF-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
@@ -155,6 +156,7 @@ P Received: from [V4NET.9.8.7] (helo=test)
        Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= x@y H=(test) [V4NET.9.8.7] P=smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmbG-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
@@ -240,6 +242,7 @@ P Received: from [V4NET.9.8.7] (helo=test)
 >>
 LOG: MAIN
   <= x@y H=(test) [V4NET.9.8.7] P=smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmbH-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
index e044102cd9271eb3e52c9484ceabbaca03e17bb5..e4113bfd027646a0d2b37d6adeedc53d24e83bad 100644 (file)
@@ -167,6 +167,7 @@ P Received: from [V4NET.11.12.13] (helo=exim.test.ex)
        Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= postmaster@exim.test.ex H=(exim.test.ex) [V4NET.11.12.13] P=esmtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
@@ -336,6 +337,7 @@ SMTP>> 550-Unrouteable address
 SMTP>> 550 Sender verify failed
 LOG: MAIN REJECT
   H=(exim.test.ex) [V4NET.99.99.99] F=<postmaster@exim.test.ex> rejected RCPT list@exim.test.ex: Sender verify failed
+SMTP(closed)<<
 SMTP>> 421 the.local.host.name lost input connection
 LOG: lost_incoming_connection MAIN
   unexpected disconnection while reading SMTP command from (exim.test.ex) [V4NET.99.99.99] D=qqs
index d8ee843aede3e782d0785dc102b544357c2002be..1a98284a90f49f758d1ca7fddc09950a106596cc 100644 (file)
@@ -233,6 +233,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index 08709b25750f82cd9353308b4fd9d7c46cd882e8..1d5929dffe947c2fd43b77a1ce1ca8ee5b1e7b00 100644 (file)
@@ -138,6 +138,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index 47af581ab3aee79012df0a7484b9bbe194fc8c9b..4891c216758da067ce91930aef478d85be95e6ae 100644 (file)
@@ -57,6 +57,7 @@ Size of headers = sss
 LOG: MAIN
   <= x@y U=CALLER P=local-smtp S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< mail from:<x@y>
@@ -90,6 +91,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= x@y U=CALLER P=local-smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaY-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< mail from:<x@y>
index ea3f63024d4185e8a7979f39dd5149fce45a3394..427a66a2ede7e0b64d740146262c496121be7b2c 100644 (file)
@@ -137,6 +137,7 @@ P Received: from [V4NET.2.3.4]
        Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= <> H=([V4NET.2.3.4]) [V4NET.2.3.4] P=esmtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
@@ -221,6 +222,7 @@ P Received: from host.name.tld ([V4NET.2.3.4])
        Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= <> H=host.name.tld [V4NET.2.3.4] P=esmtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaY-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
index 395120669ac03a2e47a92832a1091a4881857fdb..ac90467d0792ac005748c54701a3ec44e8131303 100644 (file)
@@ -33,6 +33,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -74,4 +75,5 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
index 171d925e6ba7a9a574421a968ed010dfcad7ee88..afd7dbcf4e0989ebd3af135ca5b99e391ee2d500 100644 (file)
@@ -51,6 +51,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -N -odi -Mc 10HmaY-000000005vi-0000
 Exim version x.yz ....
index f607c1668d2191c76c09e5283d1242fe2dbfd223..035c73cf381ed740be888d65497e4610262915e5 100644 (file)
@@ -110,6 +110,7 @@ accept: condition test succeeded in ACL data
 end of ACL data: ACCEPT
 LOG: MAIN
   <= x@y H=(something) [V4NET.0.0.0] P=esmtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< vrfy x@y
index 592ca2c53fdbdd51116338a74fd10542ec6fa13b..fedf1e3d32a7ca12152e5a9d8748168013fa5fcc 100644 (file)
@@ -280,6 +280,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaX-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= x@y H=(test) [V4NET.11.12.13] U=CALLER P=smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
@@ -470,6 +471,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= x@y H=(test) [V4NET.11.12.13] U=CALLER P=smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaY-000000005vi-0000
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000
index d0906810d0ac62eb205ec265f3c67af7ce180801..2009b5509e89287a50048878624ac9acd596bcc1 100644 (file)
@@ -409,6 +409,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715dfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index 449b63a6d190f9792bd09c4ff2d2d5690cc610a8..cdca19eb7b8a4c2ee8cc4b7163883285f8d819ea 100644 (file)
@@ -45,6 +45,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -N -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
@@ -275,6 +276,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -N -odi -Mc 10HmaY-000000005vi-0000
 Exim version x.yz ....
index 38c34876511d7545dc151e98f2a2058374374efa..e4575e4892ffbc7e3443eb4e8a4b0322377e74e3 100644 (file)
@@ -45,6 +45,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index 9518d278e698f753a1f019be1af3cc1ffd2fa79b..80baa9fbf22907e309bcc73bb98bf3251494287b 100644 (file)
@@ -101,6 +101,7 @@ Size of headers = sss
 LOG: MAIN
   <= <> U=CALLER P=local-smtp S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaY-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
@@ -174,6 +175,7 @@ end of ACL check_data: implicit DENY
 SMTP>> 550 Administrative prohibition
 LOG: MAIN REJECT
   U=CALLER F=<> rejected after DATA: domain missing or malformed: failing address in "To:" header is: abc@xyz.
+receive_msg: tidyup
 smtp_setup_msg entered
 SMTP<< quit
 SMTP>> 221 myhost.test.ex closing connection
index 8ebed01dec5f7cda0f1da0f7f6ab862af35f1114..90bc9dacf193e58668f8fdc034d42cae09bafeed 100644 (file)
@@ -26883,6 +26883,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
@@ -27080,6 +27081,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
@@ -27277,6 +27279,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaZ-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
@@ -27446,6 +27449,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbA-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
@@ -27610,6 +27614,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbB-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
@@ -27779,5 +27784,6 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbC-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
index 3cb2b26b262da62bf801073eaba4a8af82569c4d..7fa2284424bc75a63f927e78c2c08d6c38957959 100644 (file)
@@ -76,6 +76,7 @@ Size of headers = sss
 LOG: MAIN
   <= x@y U=CALLER P=local-esmtp S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
index 80e21ae5dd837ec0ace32a2f84eb78f59b82ebdc..40f6bb8ddcb20d5af4d5d7de3f76fee1683d598f 100644 (file)
@@ -31,6 +31,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -64,6 +65,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -97,6 +99,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaZ-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -130,6 +133,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbA-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -163,6 +167,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbB-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -196,6 +201,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbC-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1239 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -229,6 +235,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbD-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1240 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
 Exim version x.yz ....
 Hints DB:
@@ -262,4 +269,5 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbE-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 >>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
index ef23ff9431c3cbd4babfa1f883411f386b55227c..939242d9674e63c7ec8f00e02603bcc8dd436e4b 100644 (file)
@@ -63,6 +63,7 @@ P Received: from [V4NET.0.0.0] (helo=test)
        Tue, 2 Mar 1999 09:44:33 +0000
 LOG: MAIN
   <= x@y H=(test) [V4NET.0.0.0] P=smtp S=sss
+receive_msg: tidyup
 SMTP>> 250 OK id=10HmaX-000000005vi-0000
 smtp_setup_msg entered
 SMTP<< quit
index 7b1459f1b8bd76c86f83216984d6908972f8beb1..882f15669779b313184e7e8959d0b8b80db0c232 100644 (file)
@@ -11,6 +11,7 @@
 01:01:01 p1237  Size of headers = sss
 01:01:01 p1237  LOG: MAIN
 01:01:01 p1237    <= tester@test.ex H=(test.ex) [127.0.0.1] P=esmtp S=sss
+01:01:01 p1237  receive_msg: tidyup
 01:01:01 p1237  SMTP>> 250 OK id=10HmaX-000000005vi-0000
 01:01:01 p1237  search_tidyup called
 01:01:01 p1237  Sender: tester@test.ex
 01:01:01 p1240    <= tester2@test.ex H=(test.ex) [127.0.0.1] P=esmtp S=sss
 01:01:01 p1240  LOG: delay_delivery MAIN
 01:01:01 p1240    no immediate delivery: queued by ACL
+01:01:01 p1240  receive_msg: tidyup
 01:01:01 p1240  SMTP>> 250 OK id=10HmaY-000000005vi-0000
 01:01:01 p1240  search_tidyup called
 01:01:01 p1240  Sender: tester2@test.ex
index d6e38f3a86c3c0643bbeb7358d9380b5f3a24b65..ea2b79c082b1149e36052c5b59dda440660f71ff 100644 (file)
@@ -184,6 +184,7 @@ end of ACL vrfy: implicit DENY
 SMTP>> 252 Administrative prohibition
 LOG: MAIN REJECT
   H=[ip4.ip4.ip4.ip4] rejected VRFY a@test.again.dns
+SMTP(closed)<<
 SMTP>> 421 myhost.test.ex lost input connection
 LOG: smtp_connection MAIN
   SMTP connection from [ip4.ip4.ip4.ip4] lost D=qqs
index 592eb9711f0db8c96220dfe9b0d63b2f6271d4f4..ad9b921fe249fe41cb082871c840d64a313599cf 100644 (file)
@@ -559,6 +559,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DOPT=y -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index af6db6216e6752197b00e4606b18a75bd9794f4e..9517d8fc8f175ad38aa5a2816febf260ca751b2b 100644 (file)
@@ -811,6 +811,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index 05f2f445e933e6de0ae6eba4f7925608f2e4f2e4..3c4305f77d61a0ee9fca081bfe9c71203119c7da 100644 (file)
@@ -750,6 +750,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index e8cc4ac77caf93a221d5c7ee22e6da8cd3b293ba..6070650e65e4cfc68d845fab1e90efd4b8d688a6 100644 (file)
@@ -144,6 +144,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
@@ -903,6 +904,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= <> R=10HmaX-000000005vi-0000 U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000
 Exim version x.yz ....
index 3eba9a65bc569c364ae8fb4b00cd31b410a63c6f..41ac2b29e47d7a3c2870b9c4d2311c6fdb83b5b2 100644 (file)
@@ -47,6 +47,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
index 9f3d8c172bb524c474442942e02314a8518156a6..06da037dc94f07c2a80f75af2b9a866c2c9c532d 100644 (file)
@@ -45,6 +45,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....
@@ -229,6 +230,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaY-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaY-000000005vi-0000
 Exim version x.yz ....
@@ -415,6 +417,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmaZ-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaZ-000000005vi-0000
 Exim version x.yz ....
@@ -605,6 +608,7 @@ Renaming spool header file: TESTSUITE/spool//input//10HmbA-000000005vi-0000-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmbA-000000005vi-0000
 Exim version x.yz ....
index d9e4556ef82df26534ca4b1f184d06ffac2bbeff..a010cb023279794043ddeebde3f512e95d264cd2 100644 (file)
@@ -45,6 +45,7 @@ Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
+receive_msg: tidyup
 search_tidyup called
 exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000
 Exim version x.yz ....