ph10 2006/03/09 15:10:18 GMT
Modified files:
exim-doc/doc-misc WishList
exim-doc/doc-txt ChangeLog NewStuff
exim-src/src exim.c macros.h readconf.c retry.c
exim-src/src/transports lmtp.c smtp.c
exim-test/confs 0497 2010 2110 5100
exim-test/log 0217 0497 0498 1008 2010 2110 5100 5102
5103
exim-test/scripts/0000-Basic 0497
exim-test/scripts/2000-GnuTLS 2010
exim-test/scripts/2100-OpenSSL 2110
exim-test/scripts/5100-lmtp-transport 5100
exim-test/stderr 0217
exim-test/stdout 0497 0498 1008 5100
Added files:
exim-test/aux-fixed 5100.script.10
Log:
Add new errors mail_4xx, data_4xx, lost_connection, tls_required.
Revision Changes Path
1.65 +0 -34 exim/exim-doc/doc-misc/WishList
1.327 +3 -0 exim/exim-doc/doc-txt/ChangeLog
1.96 +18 -0 exim/exim-doc/doc-txt/NewStuff
1.37 +6 -4 exim/exim-src/src/exim.c
1.24 +2 -0 exim/exim-src/src/macros.h
1.22 +14 -6 exim/exim-src/src/readconf.c
1.9 +17 -6 exim/exim-src/src/retry.c
1.8 +25 -5 exim/exim-src/src/transports/lmtp.c
1.25 +107 -54 exim/exim-src/src/transports/smtp.c
1.1 +14 -0 exim/exim-test/aux-fixed/5100.script.10 (new)
1.2 +8 -0 exim/exim-test/confs/0497
1.2 +10 -1 exim/exim-test/confs/2010
1.2 +10 -1 exim/exim-test/confs/2110
1.2 +1 -0 exim/exim-test/confs/5100
1.2 +5 -5 exim/exim-test/log/0217
1.2 +60 -3 exim/exim-test/log/0497
1.2 +1 -1 exim/exim-test/log/0498
1.2 +1 -1 exim/exim-test/log/1008
1.2 +7 -0 exim/exim-test/log/2010
1.2 +7 -0 exim/exim-test/log/2110
1.2 +72 -44 exim/exim-test/log/5100
1.2 +1 -1 exim/exim-test/log/5102
1.2 +1 -1 exim/exim-test/log/5103
1.2 +142 -2 exim/exim-test/scripts/0000-Basic/0497
1.2 +2 -0 exim/exim-test/scripts/2000-GnuTLS/2010
1.2 +2 -0 exim/exim-test/scripts/2100-OpenSSL/2110
1.2 +4 -0 exim/exim-test/scripts/5100-lmtp-transport/5100
1.2 +1 -1 exim/exim-test/stderr/0217
1.2 +133 -2 exim/exim-test/stdout/0497
1.2 +1 -1 exim/exim-test/stdout/0498
1.2 +5 -5 exim/exim-test/stdout/1008
1.2 +1 -1 exim/exim-test/stdout/5100
Index: WishList
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-misc/WishList,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- WishList 8 Mar 2006 09:43:10 -0000 1.64
+++ WishList 9 Mar 2006 15:10:16 -0000 1.65
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-misc/WishList,v 1.64 2006/03/08 09:43:10 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-misc/WishList,v 1.65 2006/03/09 15:10:16 ph10 Exp $
EXIM 4 WISH LIST
----------------
@@ -295,16 +295,6 @@
So several warnings could be generated as the mailbox got bigger and bigger.
------------------------------------------------------------------------------
-(146) 15-May-2000 M Allow SMTP error codes in retry rules
-
-This would allow special handling of certain errors from certain hosts. In
-particular, it would allow failing of certain 4xx codes.
-
-This is now available for 4xx responses to RCPT commands. Is anything more
-needed? Apparently, yes; there's been a request for a similar feature for MAIL
-commands.
-------------------------------------------------------------------------------
-
(148) 15-May-2000 S Warn recipient if message rejected for quota excession.
Heinz Ekker
@@ -1255,11 +1245,6 @@
that it can be used as a safety-net while testing configurations. Instead of a
local bounce, the message stays on the queue; instead of 5xx SMTP responses,
4xx ones are given.
-
-The ability to do the opposite - turn 4xx into 5xx under certain circumstances
-might also be useful (e.g. after a certain time). This might best be done by
-extending the retry logic to recognize 4xx as a special error. (This is now
-done.)
------------------------------------------------------------------------------
(202) 10-Oct-03 S -bvsomething to do a callout after the verify
@@ -1297,7 +1282,6 @@
------------------------------------------------------------------------------
(209) 31-Oct-03 S a way of making crashes in pipe commands temporary errors
-
------------------------------------------------------------------------------
(210) 31-Oct-03 S runtime option to change the daemon name used for tcprwappers
@@ -1330,13 +1314,6 @@
changed.)
------------------------------------------------------------------------------
-(216) 27-Nov-03 S Option to bounce if required TLS doesn't happen
-
-This is for the smtp transport with hosts_require_tls set. Currently, it
-defers. Possibly the best approach is to make the error one that can be seen by
-the retry logic.
-------------------------------------------------------------------------------
-
(217) 27-Nov-03 M A function to pass back variables from Perl
This is a function that can be called from Perl, to take a name and a value and
@@ -1602,12 +1579,6 @@
both of them.
------------------------------------------------------------------------------
-(286) 21-Jul-04 M Distinguishing a larger number of errors
-
-For instance, detecting "connection reset by peer" (ENETRESET or ECONNRESET)
-might be useful.
-------------------------------------------------------------------------------
-
(288) 10-Aug-04 M Option for verify to require MX
e.g. verify=sender/require_mx
@@ -2017,11 +1988,6 @@
variables that are included in the data. This has to be done inside the lookup
code, because of caching. Probably means we have to invent ewildlsearch and
enwildlsearch.
-------------------------------------------------------------------------------
-
-(350) 28-Feb-06 S Additional errors for retry rules
-
-(i) Unexpected connection close; (ii) mail_4xx.
------------------------------------------------------------------------------
--- HWM 350 ------------------------------------------------------------------
---------------------------- End of WishList ---------------------------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.326
retrieving revision 1.327
diff -u -r1.326 -r1.327
--- ChangeLog 8 Mar 2006 11:13:07 -0000 1.326
+++ ChangeLog 9 Mar 2006 15:10:16 -0000 1.327
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.326 2006/03/08 11:13:07 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.327 2006/03/09 15:10:16 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -299,6 +299,9 @@
PH/58 Allow for the insertion of a newline as well as a space when a string
is turned into more than one encoded-word during RFC 2047 encoding. The
Sieve code now uses this.
+
+PH/59 Added the following errors that can be detected in retry rules: mail_4xx,
+ data_4xx, lost_connection, tls_required.
Exim version 4.60
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- NewStuff 6 Mar 2006 16:05:12 -0000 1.95
+++ NewStuff 9 Mar 2006 15:10:16 -0000 1.96
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.95 2006/03/06 16:05:12 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.96 2006/03/09 15:10:16 ph10 Exp $
New Features in Exim
--------------------
@@ -164,6 +164,24 @@
The facility for specifying where the new header is to be inserted, as
described for WARN with "message" in section 39.19 of the 4.60 manual, is
supported.
+
+PH/19 The following errors can now be detected in retry rules:
+
+ mail_4xx This is like rcpt_4xx, but applies to MAIL commands
+
+ data_4xx This is like rcpt_4xx, but applies to DATA commands and the
+ response code after the end of the data
+
+ lost_connection This error occurs when the server unexpectedly closes
+ the SMTP connection. There may, of course, legitmate reasons
+ for this (host died, network died), but if it repeats a lot
+ for the same host, it indicates something odd.
+
+ tls_required The server was required to use TLS (hosts_require_tls),
+ but either did not offer it, or responded with 4xx to
+ STARTTLS, or there was a problem setting up the TLS connection
+
+ Note that a 5xx response to STARTTLS is a permanent error.
Index: exim.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/exim.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- exim.c 23 Feb 2006 10:25:01 -0000 1.36
+++ exim.c 9 Mar 2006 15:10:16 -0000 1.37
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/exim.c,v 1.36 2006/02/23 10:25:01 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/exim.c,v 1.37 2006/03/09 15:10:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -3725,11 +3725,13 @@
return EXIT_FAILURE;
}
- /* For the rcpt_4xx errors, a value of 255 means "any", and a code > 100 as
- an error is for matching codes to the decade. Turn them into a real error
- code, off the decade. */
-
- if (basic_errno == ERRNO_RCPT4XX)
+ /* For the {MAIL,RCPT,DATA}_4xx errors, a value of 255 means "any", and a
+ code > 100 as an error is for matching codes to the decade. Turn them into
+ a real error code, off the decade. */
+
+ if (basic_errno == ERRNO_MAIL4XX ||
+ basic_errno == ERRNO_RCPT4XX ||
+ basic_errno == ERRNO_DATA4XX)
{
int code = (more_errno >> 8) & 255;
if (code == 255)
Index: macros.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/macros.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- macros.h 14 Feb 2006 14:55:37 -0000 1.23
+++ macros.h 9 Mar 2006 15:10:16 -0000 1.24
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/macros.h,v 1.23 2006/02/14 14:55:37 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/macros.h,v 1.24 2006/03/09 15:10:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -452,6 +452,8 @@
#define ERRNO_AUTHFAIL (-42) /* When required by client */
#define ERRNO_CONNECTTIMEOUT (-43) /* Used internally in smtp transport */
#define ERRNO_RCPT4XX (-44) /* RCPT gave 4xx error */
+#define ERRNO_MAIL4XX (-45) /* MAIL gave 4xx error */
+#define ERRNO_DATA4XX (-46) /* DATA gave 4xx error */
/* These must be last, so all retry deferments can easily be identified */
Index: readconf.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- readconf.c 22 Feb 2006 15:08:20 -0000 1.21
+++ readconf.c 9 Mar 2006 15:10:16 -0000 1.22
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/readconf.c,v 1.21 2006/02/22 15:08:20 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/readconf.c,v 1.22 2006/03/09 15:10:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -3421,7 +3421,9 @@
}
}
-else if (strncmpic(pp, US"rcpt_4", 6) == 0)
+else if (strncmpic(pp, US"mail_4", 6) == 0 ||
+ strncmpic(pp, US"rcpt_4", 6) == 0 ||
+ strncmpic(pp, US"data_4", 6) == 0)
{
BOOL bad = FALSE;
int x = 255; /* means "any 4xx code" */
@@ -3438,18 +3440,24 @@
else if (a != 'x' || b != 'x') bad = TRUE;
}
- if (bad) return US"rcpt_4 must be followed by xx, dx, or dd, where "
- "x is literal and d is any digit";
+ if (bad)
+ return string_sprintf("%.4s_4 must be followed by xx, dx, or dd, where "
+ "x is literal and d is any digit", pp);
- *basic_errno = ERRNO_RCPT4XX;
+ *basic_errno = (*pp == 'm')? ERRNO_MAIL4XX :
+ (*pp == 'r')? ERRNO_RCPT4XX : ERRNO_DATA4XX;
*more_errno = x << 8;
}
else if (len == 4 && strncmpic(pp, US"auth", len) == 0 &&
strncmpic(q+1, US"failed", p-q-1) == 0)
- {
*basic_errno = ERRNO_AUTHFAIL;
- }
+
+else if (strcmpic(pp, US"lost_connection") == 0)
+ *basic_errno = ERRNO_SMTPCLOSED;
+
+else if (strcmpic(pp, US"tls_required") == 0)
+ *basic_errno = ERRNO_TLSREQUIRED;
else if (len != 1 || Ustrncmp(pp, "*", 1) != 0)
return string_sprintf("unknown or malformed retry error \"%.*s\"", p-pp, pp);
Index: retry.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/retry.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- retry.c 16 Feb 2006 16:37:57 -0000 1.8
+++ retry.c 9 Mar 2006 15:10:16 -0000 1.9
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/retry.c,v 1.8 2006/02/16 16:37:57 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/retry.c,v 1.9 2006/03/09 15:10:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -414,20 +414,31 @@
continue;
}
- /* Handle 4xx responses to RCPT. The code that was received is in the 2nd
- least significant byte of more_errno (with 400 subtracted). The required
- value is coded in the 2nd least significant byte of the yield->more_errno
- field as follows:
+ /* The TLSREQUIRED error also covers TLSFAILURE. These are subtly different
+ errors, but not worth separating at this level. */
+
+ else if (yield->basic_errno == ERRNO_TLSREQUIRED)
+ {
+ if (basic_errno != ERRNO_TLSREQUIRED && basic_errno != ERRNO_TLSFAILURE)
+ continue;
+ }
+
+ /* Handle 4xx responses to MAIL, RCPT, or DATA. The code that was received
+ is in the 2nd least significant byte of more_errno (with 400 subtracted).
+ The required value is coded in the 2nd least significant byte of the
+ yield->more_errno field as follows:
255 => any 4xx code
>= 100 => the decade must match the value less 100
< 100 => the exact value must match
*/
- else if (yield->basic_errno == ERRNO_RCPT4XX)
+ else if (yield->basic_errno == ERRNO_MAIL4XX ||
+ yield->basic_errno == ERRNO_RCPT4XX ||
+ yield->basic_errno == ERRNO_DATA4XX)
{
int wanted;
- if (basic_errno != ERRNO_RCPT4XX) continue;
+ if (basic_errno != yield->basic_errno) continue;
wanted = (yield->more_errno >> 8) & 255;
if (wanted != 255)
{
Index: lmtp.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/transports/lmtp.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- lmtp.c 7 Feb 2006 11:19:03 -0000 1.7
+++ lmtp.c 9 Mar 2006 15:10:16 -0000 1.8
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/transports/lmtp.c,v 1.7 2006/02/07 11:19:03 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/transports/lmtp.c,v 1.8 2006/03/09 15:10:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -578,7 +578,14 @@
goto WRITE_FAILED;
if (!lmtp_read_response(out, buffer, sizeof(buffer), '2', timeout))
+ {
+ if (errno == 0 && buffer[0] == '4')
+ {
+ errno = ERRNO_MAIL4XX;
+ addrlist->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
goto RESPONSE_FAILED;
+ }
/* Next, we hand over all the recipients. Some may be permanently or
temporarily rejected; others may be accepted, for now. */
@@ -601,9 +608,8 @@
string_printing(buffer));
if (buffer[0] == '5') addr->transport_return = FAIL; else
{
- int bincode = (buffer[1] - '0')*10 + buffer[2] - '0';
addr->basic_errno = ERRNO_RCPT4XX;
- addr->more_errno |= bincode << 8;
+ addr->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
}
}
}
@@ -616,7 +622,14 @@
if (!lmtp_write_command(fd_in, "DATA\r\n")) goto WRITE_FAILED;
if (!lmtp_read_response(out, buffer, sizeof(buffer), '3', timeout))
+ {
+ if (errno == 0 && buffer[0] == '4')
+ {
+ errno = ERRNO_DATA4XX;
+ addrlist->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
goto RESPONSE_FAILED;
+ }
sigalrm_seen = FALSE;
transport_write_timeout = timeout;
@@ -676,6 +689,11 @@
else
{
+ if (buffer[0] == '4')
+ {
+ addr->basic_errno = ERRNO_DATA4XX;
+ addr->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
addr->message = string_sprintf("LMTP error after %s: %s", big_buffer,
string_printing(buffer));
addr->transport_return = (buffer[0] == '5')? FAIL : DEFER;
@@ -696,13 +714,15 @@
/* Come here if any call to read_response, other than a response after the data
phase, failed. Put the error in the top address - this will be replicated
-because the yield is still FALSE. Analyse the error, and if if isn't too bad,
-send a QUIT command. Wait for the response with a short timeout, so we don't
-wind up this process before the far end has had time to read the QUIT. */
+because the yield is still FALSE. (But omit ETIMEDOUT, as there will already be
+a suitable message.) Analyse the error, and if if isn't too bad, send a QUIT
+command. Wait for the response with a short timeout, so we don't wind up this
+process before the far end has had time to read the QUIT. */
RESPONSE_FAILED:
save_errno = errno;
+if (errno != ETIMEDOUT && errno != 0) addrlist->basic_errno = errno;
addrlist->message = NULL;
if (check_response(&save_errno, addrlist->more_errno,
Index: smtp.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/transports/smtp.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- smtp.c 1 Mar 2006 16:07:16 -0000 1.24
+++ smtp.c 9 Mar 2006 15:10:16 -0000 1.25
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/transports/smtp.c,v 1.24 2006/03/01 16:07:16 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/transports/smtp.c,v 1.25 2006/03/09 15:10:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -598,6 +598,12 @@
if (errno == 0 && buffer[0] != 0)
{
uschar flushbuffer[4096];
+ int save_errno = 0;
+ if (buffer[0] == '4')
+ {
+ save_errno = ERRNO_MAIL4XX;
+ addr->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
while (count-- > 0)
{
if (!smtp_read_response(inblock, flushbuffer, sizeof(flushbuffer),
@@ -605,6 +611,7 @@
&& (errno != 0 || flushbuffer[0] == 0))
break;
}
+ errno = save_errno;
}
return -3;
}
@@ -683,11 +690,9 @@
else
{
- int bincode = (buffer[1] - '0')*10 + buffer[2] - '0';
-
addr->transport_return = DEFER;
addr->basic_errno = ERRNO_RCPT4XX;
- addr->more_errno |= bincode << 8;
+ addr->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
/* Log temporary errors if there are more hosts to be tried. */
@@ -720,7 +725,15 @@
int code;
uschar *msg;
BOOL pass_message;
- if (pending_DATA > 0 || (yield & 1) != 0) return -3;
+ if (pending_DATA > 0 || (yield & 1) != 0)
+ {
+ if (errno == 0 && buffer[0] == '4')
+ {
+ errno = ERRNO_DATA4XX;
+ addrlist->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
+ return -3;
+ }
(void)check_response(host, &errno, 0, buffer, &code, &msg, &pass_message);
DEBUG(D_transport) debug_printf("%s\nerror for DATA ignored: pipelining "
"is in use and there were no good recipients\n", msg);
@@ -1340,7 +1353,15 @@
case +1: /* Block was sent */
if (!smtp_read_response(&inblock, buffer, sizeof(buffer), '2',
- ob->command_timeout)) goto RESPONSE_FAILED;
+ ob->command_timeout))
+ {
+ if (errno == 0 && buffer[0] == '4')
+ {
+ errno = ERRNO_MAIL4XX;
+ addrlist->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
+ goto RESPONSE_FAILED;
+ }
pending_MAIL = FALSE;
break;
}
@@ -1521,8 +1542,16 @@
/* For SMTP, we now read a single response that applies to the whole message.
If it is OK, then all the addresses have been delivered. */
- if (!lmtp) ok = smtp_read_response(&inblock, buffer, sizeof(buffer), '2',
- ob->final_timeout);
+ if (!lmtp)
+ {
+ ok = smtp_read_response(&inblock, buffer, sizeof(buffer), '2',
+ ob->final_timeout);
+ if (!ok && errno == 0 && buffer[0] == '4')
+ {
+ errno = ERRNO_DATA4XX;
+ addrlist->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
+ }
+ }
/* For LMTP, we get back a response for every RCPT command that we sent;
some may be accepted and some rejected. For those that get a response, their
@@ -1590,6 +1619,8 @@
addr->transport_return = FAIL;
else
{
+ errno = ERRNO_DATA4XX;
+ addr->more_errno |= ((buffer[1] - '0')*10 + buffer[2] - '0') << 8;
addr->transport_return = DEFER;
retry_add_item(addr, addr->address_retry_key, 0);
}
@@ -1694,61 +1725,83 @@
}
}
- /* If there was an I/O error or timeout or other transportation error,
- indicated by errno being non-zero, defer all addresses and yield DEFER,
- except for the case of failed add_headers expansion, or a transport filter
- failure, when the yield should be ERROR, to stop it trying other hosts.
-
- However, handle timeouts after MAIL FROM or "." and loss of connection after
+ /* We want to handle timeouts after MAIL or "." and loss of connection after
"." specially. They can indicate a problem with the sender address or with
- the contents of the message rather than a real error on the connection.
- Therefore, treat these cases in the same way as a 4xx response.
-
- The following condition tests for NOT these special cases. */
-
- else if (save_errno != 0 &&
- (save_errno != ETIMEDOUT ||
- (Ustrncmp(smtp_command,"MAIL",4) != 0 &&
- Ustrncmp(smtp_command,"end ",4) != 0)) &&
- (save_errno != ERRNO_SMTPCLOSED ||
- Ustrncmp(smtp_command,"end ",4) != 0))
- {
- yield = (save_errno == ERRNO_CHHEADER_FAIL ||
- save_errno == ERRNO_FILTER_FAIL)? ERROR : DEFER;
- set_errno(addrlist, save_errno, message, DEFER, pass_message);
- }
-
- /* Otherwise we have a message-specific error response from the remote
- host. This is one of
- (a) negative response or timeout after "mail from"
- (b) negative response after "data"
- (c) negative response or timeout or dropped connection after "."
- It won't be a negative response or timeout after "rcpt to", as that is dealt
- with separately above. The action in all cases is to set an appropriate
- error code for all the addresses, but to leave yield set to OK because
- the host itself has not failed. [It might in practice have failed for a
- timeout after MAIL FROM, or "." but if so, we'll discover that at the next
- delivery attempt.] For a temporary error, set the message_defer flag, and
- write to the logs for information if this is not the last host. The error for
- the last host will be logged as part of the address's log line. */
+ the contents of the message rather than a real error on the connection. These
+ cases are treated in the same way as a 4xx response. This next bit of code
+ does the classification. */
else
{
- if (mua_wrapper) code = '5'; /* Force hard failure in wrapper mode */
+ BOOL message_error;
+
+ switch(save_errno)
+ {
+ case 0:
+ case ERRNO_MAIL4XX:
+ case ERRNO_DATA4XX:
+ message_error = TRUE;
+ break;
+
+ case ETIMEDOUT:
+ message_error = Ustrncmp(smtp_command,"MAIL",4) == 0 ||
+ Ustrncmp(smtp_command,"end ",4) == 0;
+ break;
+
+ case ERRNO_SMTPCLOSED:
+ message_error = Ustrncmp(smtp_command,"end ",4) == 0;
+ break;
+
+ default:
+ message_error = FALSE;
+ break;
+ }
- set_errno(addrlist, save_errno, message, (code == '5')? FAIL : DEFER,
- pass_message);
+ /* Handle the cases that are treated as message errors. These are:
- /* If there's an errno, the message contains just the identity of
- the host. */
+ (a) negative response or timeout after MAIL
+ (b) negative response after DATA
+ (c) negative response or timeout or dropped connection after "."
+
+ It won't be a negative response or timeout after RCPT, as that is dealt
+ with separately above. The action in all cases is to set an appropriate
+ error code for all the addresses, but to leave yield set to OK because the
+ host itself has not failed. Of course, it might in practice have failed
+ when we've had a timeout, but if so, we'll discover that at the next
+ delivery attempt. For a temporary error, set the message_defer flag, and
+ write to the logs for information if this is not the last host. The error
+ for the last host will be logged as part of the address's log line. */
- if (code != '5') /* Anything other than 5 is treated as temporary */
+ if (message_error)
{
- if (save_errno > 0)
- message = US string_sprintf("%s: %s", message, strerror(save_errno));
- if (host->next != NULL) log_write(0, LOG_MAIN, "%s", message);
- deliver_msglog("%s %s\n", tod_stamp(tod_log), message);
- *message_defer = TRUE;
+ if (mua_wrapper) code = '5'; /* Force hard failure in wrapper mode */
+ set_errno(addrlist, save_errno, message, (code == '5')? FAIL : DEFER,
+ pass_message);
+
+ /* If there's an errno, the message contains just the identity of
+ the host. */
+
+ if (code != '5') /* Anything other than 5 is treated as temporary */
+ {
+ if (save_errno > 0)
+ message = US string_sprintf("%s: %s", message, strerror(save_errno));
+ if (host->next != NULL) log_write(0, LOG_MAIN, "%s", message);
+ deliver_msglog("%s %s\n", tod_stamp(tod_log), message);
+ *message_defer = TRUE;
+ }
+ }
+
+ /* Otherwise, we have an I/O error or a timeout other than after MAIL or
+ ".", or some other transportation error. We defer all addresses and yield
+ DEFER, except for the case of failed add_headers expansion, or a transport
+ filter failure, when the yield should be ERROR, to stop it trying other
+ hosts. */
+
+ else
+ {
+ yield = (save_errno == ERRNO_CHHEADER_FAIL ||
+ save_errno == ERRNO_FILTER_FAIL)? ERROR : DEFER;
+ set_errno(addrlist, save_errno, message, DEFER, pass_message);
}
}
}
Index: 5100.script.10
====================================================================
220 Welcome to this LMTP simulation
LHLO
250-Hello there
250 SIZE
MAIL FROM
250 OK
RCPT TO
250 OK
RCPT TO
250 OK
DATA
450 Temporary error
QUIT
220 OK
Index: 0497
===================================================================
RCS file: /home/cvs/exim/exim-test/confs/0497,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0497 7 Feb 2006 10:34:26 -0000 1.1
+++ 0497 9 Mar 2006 15:10:17 -0000 1.2
@@ -17,6 +17,11 @@
begin routers
+r0:
+ driver = redirect
+ senders = :
+ data = :blackhole: discard bounces
+
r1:
driver = accept
transport = t1
@@ -37,7 +42,10 @@
begin retry
+* lost_connection
+* mail_4xx
* rcpt_4xx
+* data_4xx
* * F,1d,15m
Index: 2010
===================================================================
RCS file: /home/cvs/exim/exim-test/confs/2010,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 2010 7 Feb 2006 10:34:26 -0000 1.1
+++ 2010 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,6 +1,7 @@
# Exim test configuration 2010
SERVER =
+HOSTS = 127.0.0.1 : HOSTIPV4
exim_path = EXIM_PATH
host_lookup_order = bydns
@@ -44,8 +45,16 @@
send_to_server:
driver = smtp
allow_localhost
- hosts = 127.0.0.1 : HOSTIPV4
+ hosts = HOSTS
hosts_require_tls = *
port = PORT_D
+
+
+# ----- Retry -----
+
+begin retry
+
+* tls_required
+* * F,1d,5m
# End
Index: 2110
===================================================================
RCS file: /home/cvs/exim/exim-test/confs/2110,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 2110 7 Feb 2006 10:34:26 -0000 1.1
+++ 2110 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,6 +1,7 @@
# Exim test configuration 2110
SERVER =
+HOSTS = 127.0.0.1 : HOSTIPV4
exim_path = EXIM_PATH
host_lookup_order = bydns
@@ -44,8 +45,16 @@
send_to_server:
driver = smtp
allow_localhost
- hosts = 127.0.0.1 : HOSTIPV4
+ hosts = HOSTS
hosts_require_tls = *
port = PORT_D
+
+
+# ----- Retry -----
+
+begin retry
+
+* tls_required
+* * F,1d,5m
# End
Index: 5100
===================================================================
RCS file: /home/cvs/exim/exim-test/confs/5100,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 5100 7 Feb 2006 10:34:26 -0000 1.1
+++ 5100 9 Mar 2006 15:10:17 -0000 1.2
@@ -51,6 +51,7 @@
begin retry
+* mail_4xx
* rcpt_4xx F,1d,1m
* * F,5d,1d
Index: 0217
===================================================================
RCS file: /home/cvs/exim/exim-test/log/0217,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0217 7 Feb 2006 10:34:46 -0000 1.1
+++ 0217 9 Mar 2006 15:10:17 -0000 1.2
@@ -12,8 +12,8 @@
1999-03-02 09:44:33 10HmaZ-0005vi-00 == b@??? R=client T=send_to_server defer (dd): Connection timed out: SMTP timeout while connected to 127.0.0.1 [127.0.0.1] after RCPT TO:<b@???>
1999-03-02 09:44:33 10HmaZ-0005vi-00 == c@??? R=client T=send_to_server defer (dd): Connection timed out: SMTP timeout while connected to 127.0.0.1 [127.0.0.1] after RCPT TO:<b@???>
1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmbA-0005vi-00 == a@??? R=client T=send_to_server defer (0): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 451 Temp error
-1999-03-02 09:44:33 10HmbA-0005vi-00 == b@??? R=client T=send_to_server defer (0): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 451 Temp error
+1999-03-02 09:44:33 10HmbA-0005vi-00 == a@??? R=client T=send_to_server defer (-45): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 451 Temp error
+1999-03-02 09:44:33 10HmbA-0005vi-00 == b@??? R=client T=send_to_server defer (-45): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 451 Temp error
1999-03-02 09:44:33 10HmbB-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmbB-0005vi-00 ** a@??? R=client T=send_to_server: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 550 Perm error
1999-03-02 09:44:33 10HmbB-0005vi-00 ** b@??? R=client T=send_to_server: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 550 Perm error
@@ -49,10 +49,10 @@
1999-03-02 09:44:33 10HmbJ-0005vi-00 Completed
1999-03-02 09:44:33 10HmbI-0005vi-00 Completed
1999-03-02 09:44:33 10HmbK-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmbK-0005vi-00 == a@??? R=client T=send_to_server defer (0): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
-1999-03-02 09:44:33 10HmbK-0005vi-00 == b@??? R=client T=send_to_server defer (0): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
+1999-03-02 09:44:33 10HmbK-0005vi-00 == a@??? R=client T=send_to_server defer (-46): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
+1999-03-02 09:44:33 10HmbK-0005vi-00 == b@??? R=client T=send_to_server defer (-46): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
1999-03-02 09:44:33 10HmbL-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmbL-0005vi-00 == a@??? R=client T=send_to_server defer (0): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
+1999-03-02 09:44:33 10HmbL-0005vi-00 == a@??? R=client T=send_to_server defer (-46): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
1999-03-02 09:44:33 10HmbL-0005vi-00 ** b@??? R=client T=send_to_server: SMTP error from remote mail server after RCPT TO:<b@???>: host 127.0.0.1 [127.0.0.1]: 550 NO
1999-03-02 09:44:33 10HmbL-0005vi-00 ** c@??? R=client T=send_to_server: SMTP error from remote mail server after RCPT TO:<c@???>: host 127.0.0.1 [127.0.0.1]: 550 NO
1999-03-02 09:44:33 10HmbL-0005vi-00 ** d@??? R=client T=send_to_server: SMTP error from remote mail server after RCPT TO:<d@???>: host 127.0.0.1 [127.0.0.1]: 550 NO
Index: 0497
===================================================================
RCS file: /home/cvs/exim/exim-test/log/0497,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0497 7 Feb 2006 10:34:46 -0000 1.1
+++ 0497 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,7 +1,64 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (-45): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
1999-03-02 09:44:33 10HmaX-0005vi-00 ** userx@???: retry timeout exceeded
1999-03-02 09:44:33 10HmaY-0005vi-00 <= <> R=10HmaX-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 10HmaY-0005vi-00 127.0.0.1 [127.0.0.1] Connection refused
-1999-03-02 09:44:33 10HmaY-0005vi-00 == CALLER@??? R=r1 T=t1 defer (dd): Connection refused
+1999-03-02 09:44:33 10HmaY-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaZ-0005vi-00 == userx@??? R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmaZ-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbA-0005vi-00 <= <> R=10HmaZ-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbA-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbA-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbB-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbB-0005vi-00 == userx@??? R=r1 T=t1 defer (-46): SMTP error from remote mail server after DATA: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmbB-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbC-0005vi-00 <= <> R=10HmbB-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbC-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbC-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbB-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbD-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbD-0005vi-00 == userx@??? R=r1 T=t1 defer (-46): SMTP error from remote mail server after end of data: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmbD-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbE-0005vi-00 <= <> R=10HmbD-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbE-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbE-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbD-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbF-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbF-0005vi-00 == userx@??? R=r1 T=t1 defer (-45): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmbF-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbG-0005vi-00 <= <> R=10HmbF-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbG-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbG-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbF-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbH-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbH-0005vi-00 == userx@??? R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmbH-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbI-0005vi-00 <= <> R=10HmbH-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbI-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbI-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbH-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbJ-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbJ-0005vi-00 == userx@??? R=r1 T=t1 defer (-46): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmbJ-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbK-0005vi-00 <= <> R=10HmbJ-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbK-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbK-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbJ-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbL-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbL-0005vi-00 == userx@??? R=r1 T=t1 defer (-46): SMTP error from remote mail server after end of data: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+1999-03-02 09:44:33 10HmbL-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbM-0005vi-00 <= <> R=10HmbL-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbM-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbM-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbL-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbN-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbN-0005vi-00 Remote host 127.0.0.1 [127.0.0.1] closed connection in response to RCPT TO:<userx@???>
+1999-03-02 09:44:33 10HmbN-0005vi-00 == userx@??? R=r1 T=t1 defer (-18): Remote host 127.0.0.1 [127.0.0.1] closed connection in response to RCPT TO:<userx@???>
+1999-03-02 09:44:33 10HmbN-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbO-0005vi-00 <= <> R=10HmbN-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbO-0005vi-00 => :blackhole: <CALLER@???> R=r0
+1999-03-02 09:44:33 10HmbO-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbN-0005vi-00 Completed
Index: 0498
===================================================================
RCS file: /home/cvs/exim/exim-test/log/0498,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0498 7 Feb 2006 10:34:46 -0000 1.1
+++ 0498 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,5 +1,5 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (0): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 DELAY
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (-45): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 DELAY
1999-03-02 09:44:33 Start queue run: pid=pppp
1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (dd): Connection timed out: SMTP timeout while connected to 127.0.0.1 [127.0.0.1] after end of data (ddd bytes written)
1999-03-02 09:44:33 10HmaX-0005vi-00 ** userx@???: retry timeout exceeded
Index: 1008
===================================================================
RCS file: /home/cvs/exim/exim-test/log/1008,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 1008 7 Feb 2006 10:34:46 -0000 1.1
+++ 1008 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,3 +1,3 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmaX-0005vi-00 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 Temporary error
-1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (0): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (-45): SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
Index: 2010
===================================================================
RCS file: /home/cvs/exim/exim-test/log/2010,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 2010 7 Feb 2006 10:34:46 -0000 1.1
+++ 2010 9 Mar 2006 15:10:17 -0000 1.2
@@ -4,6 +4,13 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 => userx@??? R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLS-1.0:RSA_AES_256_CBC_SHA1:32
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
1999-03-02 09:44:33 End queue run: pid=pppp -qf
+1999-03-02 09:44:33 Start queue run: pid=pppp -qf
+1999-03-02 09:44:33 10HmaY-0005vi-00 a TLS session is required for 127.0.0.1 [127.0.0.1], but the server did not offer TLS support
+1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@??? R=client T=send_to_server defer (-38): a TLS session is required for 127.0.0.1 [127.0.0.1], but the server did not offer TLS support
+1999-03-02 09:44:33 10HmaY-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= <> R=10HmaY-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
+1999-03-02 09:44:33 End queue run: pid=pppp -qf
******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
Index: 2110
===================================================================
RCS file: /home/cvs/exim/exim-test/log/2110,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 2110 7 Feb 2006 10:34:46 -0000 1.1
+++ 2110 9 Mar 2006 15:10:17 -0000 1.2
@@ -4,6 +4,13 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 => userx@??? R=client T=send_to_server H=ip4.ip4.ip4.ip4 [ip4.ip4.ip4.ip4] X=TLSv1:AES256-SHA:256
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
1999-03-02 09:44:33 End queue run: pid=pppp -qf
+1999-03-02 09:44:33 Start queue run: pid=pppp -qf
+1999-03-02 09:44:33 10HmaY-0005vi-00 a TLS session is required for 127.0.0.1 [127.0.0.1], but the server did not offer TLS support
+1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@??? R=client T=send_to_server defer (-38): a TLS session is required for 127.0.0.1 [127.0.0.1], but the server did not offer TLS support
+1999-03-02 09:44:33 10HmaY-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= <> R=10HmaY-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
+1999-03-02 09:44:33 End queue run: pid=pppp -qf
******** SERVER ********
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
Index: 5100
===================================================================
RCS file: /home/cvs/exim/exim-test/log/5100,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 5100 7 Feb 2006 10:34:46 -0000 1.1
+++ 5100 9 Mar 2006 15:10:17 -0000 1.2
@@ -32,8 +32,13 @@
QUIT
<<< QUIT
250 OK
-1999-03-02 09:44:33 10HmbB-0005vi-00 == userx@??? R=smartuser T=lmtp defer (-1): LMTP error after MAIL FROM:<CALLER@???>: 450 Don't like that sender just at the moment
-1999-03-02 09:44:33 10HmbC-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbB-0005vi-00 == userx@??? R=smartuser T=lmtp defer (-45): LMTP error after MAIL FROM:<CALLER@???>: 450 Don't like that sender just at the moment
+1999-03-02 09:44:33 10HmbB-0005vi-00 ** userx@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmbC-0005vi-00 <= <> R=10HmbB-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbC-0005vi-00 => :blackhole: <CALLER@???> R=bounces
+1999-03-02 09:44:33 10HmbC-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbB-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbD-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
220 Welcome to this LMTP simulation
LHLO
<<< LHLO myhost.test.ex
@@ -66,9 +71,9 @@
.
<<< Received: from CALLER by myhost.test.ex with local (Exim x.yz)
<<< (envelope-from <CALLER@???>)
-<<< id 10HmbC-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
+<<< id 10HmbD-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
<<< script: 05
-<<< Message-Id: <E10HmbC-0005vi-00@???>
+<<< Message-Id: <E10HmbD-0005vi-00@???>
<<< From: CALLER_NAME <CALLER@???>
<<< Date: Tue, 2 Mar 1999 09:44:33 +0000
<<<
@@ -81,16 +86,16 @@
QUIT
<<< QUIT
250 OK
-1999-03-02 09:44:33 10HmbC-0005vi-00 => userx <userx@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbC-0005vi-00 == jack@??? R=smartuser T=lmtp defer (-1): LMTP error after end of data: 450 Number 2 is now delayed
-1999-03-02 09:44:33 10HmbC-0005vi-00 ** jill@??? R=smartuser T=lmtp: LMTP error after end of data: 550 Number 3 is now rejected
-1999-03-02 09:44:33 10HmbC-0005vi-00 == tom@??? R=smartuser T=lmtp defer (-44): LMTP error after RCPT TO:<tom@???>: 450 This one is delayed on RCPT
-1999-03-02 09:44:33 10HmbC-0005vi-00 ** dick@??? R=smartuser T=lmtp: LMTP error after RCPT TO:<dick@???>: 550 This one is unknown on RCPT
-1999-03-02 09:44:33 10HmbC-0005vi-00 -> harry <harry@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbD-0005vi-00 <= <> R=10HmbC-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 10HmbD-0005vi-00 => :blackhole: <CALLER@???> R=bounces
-1999-03-02 09:44:33 10HmbD-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbE-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbD-0005vi-00 => userx <userx@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbD-0005vi-00 == jack@??? R=smartuser T=lmtp defer (-46): LMTP error after end of data: 450 Number 2 is now delayed
+1999-03-02 09:44:33 10HmbD-0005vi-00 ** jill@??? R=smartuser T=lmtp: LMTP error after end of data: 550 Number 3 is now rejected
+1999-03-02 09:44:33 10HmbD-0005vi-00 == tom@??? R=smartuser T=lmtp defer (-44): LMTP error after RCPT TO:<tom@???>: 450 This one is delayed on RCPT
+1999-03-02 09:44:33 10HmbD-0005vi-00 ** dick@??? R=smartuser T=lmtp: LMTP error after RCPT TO:<dick@???>: 550 This one is unknown on RCPT
+1999-03-02 09:44:33 10HmbD-0005vi-00 -> harry <harry@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbE-0005vi-00 <= <> R=10HmbD-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbE-0005vi-00 => :blackhole: <CALLER@???> R=bounces
+1999-03-02 09:44:33 10HmbE-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbF-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
220 Welcome to this LMTP simulation
LHLO
<<< LHLO myhost.test.ex
@@ -123,25 +128,25 @@
.
<<< Received: from CALLER by myhost.test.ex with local (Exim x.yz)
<<< (envelope-from <CALLER@???>)
-<<< id 10HmbE-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
+<<< id 10HmbF-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
<<< script: 06
-<<< Message-Id: <E10HmbE-0005vi-00@???>
+<<< Message-Id: <E10HmbF-0005vi-00@???>
<<< From: CALLER_NAME <CALLER@???>
<<< Date: Tue, 2 Mar 1999 09:44:33 +0000
<<<
<<< This is a test message.
<<< .
250 Number 1 is OK
-1999-03-02 09:44:33 10HmbE-0005vi-00 => userx <userx@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbE-0005vi-00 == jack@??? R=smartuser T=lmtp defer (-1): LMTP timeout after end of data (ddd bytes written)
-1999-03-02 09:44:33 10HmbE-0005vi-00 == jill@??? R=smartuser T=lmtp defer (-1): LMTP timeout after end of data (ddd bytes written)
-1999-03-02 09:44:33 10HmbE-0005vi-00 == tom@??? R=smartuser T=lmtp defer (-44): LMTP error after RCPT TO:<tom@???>: 450 This one is delayed on RCPT
-1999-03-02 09:44:33 10HmbE-0005vi-00 ** dick@??? R=smartuser T=lmtp: LMTP error after RCPT TO:<dick@???>: 550 This one is unknown on RCPT
-1999-03-02 09:44:33 10HmbE-0005vi-00 == harry@??? R=smartuser T=lmtp defer (-1): LMTP timeout after end of data (ddd bytes written)
-1999-03-02 09:44:33 10HmbF-0005vi-00 <= <> R=10HmbE-0005vi-00 U=EXIMUSER P=local S=sss
-1999-03-02 09:44:33 10HmbF-0005vi-00 => :blackhole: <CALLER@???> R=bounces
-1999-03-02 09:44:33 10HmbF-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbG-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbF-0005vi-00 => userx <userx@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbF-0005vi-00 == jack@??? R=smartuser T=lmtp defer (-1): LMTP timeout after end of data (ddd bytes written)
+1999-03-02 09:44:33 10HmbF-0005vi-00 == jill@??? R=smartuser T=lmtp defer (-1): LMTP timeout after end of data (ddd bytes written)
+1999-03-02 09:44:33 10HmbF-0005vi-00 == tom@??? R=smartuser T=lmtp defer (-44): LMTP error after RCPT TO:<tom@???>: 450 This one is delayed on RCPT
+1999-03-02 09:44:33 10HmbF-0005vi-00 ** dick@??? R=smartuser T=lmtp: LMTP error after RCPT TO:<dick@???>: 550 This one is unknown on RCPT
+1999-03-02 09:44:33 10HmbF-0005vi-00 == harry@??? R=smartuser T=lmtp defer (-1): LMTP timeout after end of data (ddd bytes written)
+1999-03-02 09:44:33 10HmbG-0005vi-00 <= <> R=10HmbF-0005vi-00 U=EXIMUSER P=local S=sss
+1999-03-02 09:44:33 10HmbG-0005vi-00 => :blackhole: <CALLER@???> R=bounces
+1999-03-02 09:44:33 10HmbG-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbH-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
220 Welcome to this LMTP simulation
LHLO
<<< LHLO myhost.test.ex
@@ -169,13 +174,13 @@
<<< RCPT TO:<harry@???>
250 OK
DATA
-1999-03-02 09:44:33 10HmbG-0005vi-00 == userx@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
-1999-03-02 09:44:33 10HmbG-0005vi-00 == jack@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
-1999-03-02 09:44:33 10HmbG-0005vi-00 == jill@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
-1999-03-02 09:44:33 10HmbG-0005vi-00 == tom@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
-1999-03-02 09:44:33 10HmbG-0005vi-00 == dick@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
-1999-03-02 09:44:33 10HmbG-0005vi-00 == harry@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
-1999-03-02 09:44:33 10HmbH-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbH-0005vi-00 == userx@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
+1999-03-02 09:44:33 10HmbH-0005vi-00 == jack@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
+1999-03-02 09:44:33 10HmbH-0005vi-00 == jill@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
+1999-03-02 09:44:33 10HmbH-0005vi-00 == tom@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
+1999-03-02 09:44:33 10HmbH-0005vi-00 == dick@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
+1999-03-02 09:44:33 10HmbH-0005vi-00 == harry@??? R=smartuser T=lmtp defer (-1): LMTP timeout after DATA
+1999-03-02 09:44:33 10HmbI-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
220 Welcome to this LMTP simulation
LHLO
<<< LHLO myhost.test.ex
@@ -196,9 +201,9 @@
.
<<< Received: from CALLER by myhost.test.ex with local (Exim x.yz)
<<< (envelope-from <CALLER@???>)
-<<< id 10HmbH-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
+<<< id 10HmbI-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
<<< script: 08
-<<< Message-Id: <E10HmbH-0005vi-00@???>
+<<< Message-Id: <E10HmbI-0005vi-00@???>
<<< From: CALLER_NAME <CALLER@???>
<<< Date: Tue, 2 Mar 1999 09:44:33 +0000
<<<
@@ -209,10 +214,10 @@
QUIT
<<< QUIT
220 OK
-1999-03-02 09:44:33 10HmbH-0005vi-00 => jack <jack@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbH-0005vi-00 -> jill <jill@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbH-0005vi-00 Completed
-1999-03-02 09:44:33 10HmbI-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbI-0005vi-00 => jack <jack@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbI-0005vi-00 -> jill <jill@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbI-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbJ-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
220 Welcome to this LMTP simulation
LHLO
<<< LHLO myhost.test.ex
@@ -234,9 +239,9 @@
.
<<< Received: from CALLER by myhost.test.ex with local (Exim x.yz)
<<< (envelope-from <CALLER@???>)
-<<< id 10HmbI-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
+<<< id 10HmbJ-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
<<< script: 09
-<<< Message-Id: <E10HmbI-0005vi-00@???>
+<<< Message-Id: <E10HmbJ-0005vi-00@???>
<<< From: CALLER_NAME <CALLER@???>
<<< Date: Tue, 2 Mar 1999 09:44:33 +0000
<<<
@@ -247,6 +252,29 @@
QUIT
<<< QUIT
220 OK
-1999-03-02 09:44:33 10HmbI-0005vi-00 => jack <jack@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbI-0005vi-00 -> jill <jill@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbI-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbJ-0005vi-00 => jack <jack@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbJ-0005vi-00 -> jill <jill@???> R=smartuser T=lmtp
+1999-03-02 09:44:33 10HmbJ-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbK-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
+220 Welcome to this LMTP simulation
+LHLO
+<<< LHLO myhost.test.ex
+250-Hello there
+250 SIZE
+MAIL FROM
+<<< MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO
+<<< RCPT TO:<userx@???>
+250 OK
+RCPT TO
+<<< RCPT TO:<usery@???>
+250 OK
+DATA
+<<< DATA
+450 Temporary error
+QUIT
+<<< QUIT
+220 OK
+1999-03-02 09:44:33 10HmbK-0005vi-00 == userx@??? R=smartuser T=lmtp defer (-46): LMTP error after DATA: 450 Temporary error
+1999-03-02 09:44:33 10HmbK-0005vi-00 == usery@??? R=smartuser T=lmtp defer (-46): LMTP error after DATA: 450 Temporary error
Index: 5102
===================================================================
RCS file: /home/cvs/exim/exim-test/log/5102,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 5102 7 Feb 2006 10:34:46 -0000 1.1
+++ 5102 9 Mar 2006 15:10:17 -0000 1.2
@@ -15,7 +15,7 @@
1999-03-02 09:44:33 End queue run: pid=pppp -qf
1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmbA-0005vi-00 => lp1 <lp1@???> R=smartuser T=lmtp
-1999-03-02 09:44:33 10HmbA-0005vi-00 == lp2@??? R=smartuser T=lmtp defer (-1): LMTP error after end of data: 450 Number 2 is now delayed
+1999-03-02 09:44:33 10HmbA-0005vi-00 == lp2@??? R=smartuser T=lmtp defer (-46): LMTP error after end of data: 450 Number 2 is now delayed
1999-03-02 09:44:33 10HmbA-0005vi-00 ** lp3@??? R=smartuser T=lmtp: LMTP error after end of data: 550 Number 3 is now rejected
1999-03-02 09:44:33 10HmbA-0005vi-00 == lp4@??? R=smartuser T=lmtp defer (-44): LMTP error after RCPT TO:<lp4@???>: 450 This one is delayed on RCPT
1999-03-02 09:44:33 10HmbA-0005vi-00 ** lp5@??? R=smartuser T=lmtp: LMTP error after RCPT TO:<lp5@???>: 550 This one is unknown on RCPT
Index: 5103
===================================================================
RCS file: /home/cvs/exim/exim-test/log/5103,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 5103 7 Feb 2006 10:34:46 -0000 1.1
+++ 5103 9 Mar 2006 15:10:17 -0000 1.2
@@ -14,4 +14,4 @@
<<< DATA
354 Send it
.
-1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (-1): transport filter process failed (127): unable to execute command
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@??? R=r1 T=t1 defer (-24): transport filter process failed (127): unable to execute command
Index: 0497
===================================================================
RCS file: /home/cvs/exim/exim-test/scripts/0000-Basic/0497,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0497 7 Feb 2006 10:54:33 -0000 1.1
+++ 0497 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,5 +1,22 @@
-# rcpt_4xx from server with no retry
+# mail_4xx, rcpt_4xx, data_4xx, lost_connection
need_ipv4
+# MAIL, no pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250 OK
+MAIL FROM
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+dump retry
+sudo rm DIR/spool/db/*
+# RCPT, no pipelining
#
server PORT_S
220 Server ready
@@ -16,4 +33,127 @@
exim -odi userx@???
****
dump retry
-no_message_check
+# DATA start, no pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+DATA
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+# DATA end, no pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+DATA
+352 GO AHEAD
+.
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+# MAIL, pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+# RCPT, pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+# DATA start, pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+DATA
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+# DATA end, pipelining
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+DATA
+352 GO AHEAD
+.
+452 temporary error
+QUIT
+250 OK
+****
+exim -odi userx@???
+****
+# lost connection
+#
+server PORT_S
+220 Server ready
+EHLO
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+****
+exim -odi userx@???
+****
Index: 2010
===================================================================
RCS file: /home/cvs/exim/exim-test/scripts/2000-GnuTLS/2010,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 2010 7 Feb 2006 10:54:47 -0000 1.1
+++ 2010 9 Mar 2006 15:10:17 -0000 1.2
@@ -7,5 +7,7 @@
****
exim -qf
****
+exim -DHOSTS=127.0.0.1 -qf
+****
killdaemon
no_msglog_check
Index: 2110
===================================================================
RCS file: /home/cvs/exim/exim-test/scripts/2100-OpenSSL/2110,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 2110 7 Feb 2006 10:54:47 -0000 1.1
+++ 2110 9 Mar 2006 15:10:17 -0000 1.2
@@ -6,5 +6,7 @@
****
exim -qf
****
+exim -DHOSTS=127.0.0.1 -qf
+****
killdaemon
no_msglog_check
Index: 5100
===================================================================
RCS file: /home/cvs/exim/exim-test/scripts/5100-lmtp-transport/5100,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 5100 7 Feb 2006 10:54:50 -0000 1.1
+++ 5100 9 Mar 2006 15:10:17 -0000 1.2
@@ -36,4 +36,8 @@
script: 09
This is a test message.
****
+exim -odi userx usery
+script: 10
+This is a test message.
+****
no_msglog_check
Index: 0217
===================================================================
RCS file: /home/cvs/exim/exim-test/stderr/0217,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0217 7 Feb 2006 10:47:31 -0000 1.1
+++ 0217 9 Mar 2006 15:10:17 -0000 1.2
@@ -116,7 +116,7 @@
SMTP<< 403 Sorry temp data error
SMTP>> QUIT
LOG: MAIN
- == a@??? R=client T=send_to_server defer (0): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
+ == a@??? R=client T=send_to_server defer (-46): SMTP error from remote mail server after pipelined DATA: host 127.0.0.1 [127.0.0.1]: 403 Sorry temp data error
LOG: MAIN
** b@??? R=client T=send_to_server: SMTP error from remote mail server after RCPT TO:<b@???>: host 127.0.0.1 [127.0.0.1]: 550 NO
LOG: MAIN
Index: 0497
===================================================================
RCS file: /home/cvs/exim/exim-test/stdout/0497,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0497 7 Feb 2006 10:47:37 -0000 1.1
+++ 0497 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,8 +1,9 @@
+++++++++++++++++++++++++++
+ T:127.0.0.1:127.0.0.1:1224:10HmaX-0005vi-00 -45 13377 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+first failed = time last try = time2 next try = time2 + 0 *
++++++++++++++++++++++++++++
R:userx@??? -44 13377 SMTP error from remote mail server after RCPT TO:<userx@???>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
first failed = time last try = time2 next try = time2 + 0 *
- T:127.0.0.1:127.0.0.1:1224 dd 65 Connection refused
-first failed = time last try = time2 next try = time2 + 900
******** SERVER ********
Listening on port 1224 ...
@@ -12,9 +13,139 @@
250-server id
250 OK
MAIL FROM:<CALLER@???>
+452 temporary error
+QUIT
+250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250 OK
+MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO:<userx@???>
+452 temporary error
+QUIT
+250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250 OK
+MAIL FROM:<CALLER@???>
250 OK
RCPT TO:<userx@???>
+250 OK
+DATA
452 temporary error
QUIT
250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250 OK
+MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO:<userx@???>
+250 OK
+DATA
+352 GO AHEAD
+Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+ (envelope-from <CALLER@???>)
+ id 10HmbD-0005vi-00
+ for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
+Message-Id: <E10HmbD-0005vi-00@???>
+From: CALLER_NAME <CALLER@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+.
+452 temporary error
+QUIT
+250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM:<CALLER@???>
+452 temporary error
+RCPT TO:<userx@???>
+Comparison failed - bailing out
+Expected: QUIT
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO:<userx@???>
+452 temporary error
+DATA
+Comparison failed - bailing out
+Expected: QUIT
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO:<userx@???>
+250 OK
+DATA
+452 temporary error
+QUIT
+250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO:<userx@???>
+250 OK
+DATA
+352 GO AHEAD
+Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+ (envelope-from <CALLER@???>)
+ id 10HmbL-0005vi-00
+ for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
+Message-Id: <E10HmbL-0005vi-00@???>
+From: CALLER_NAME <CALLER@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+.
+452 temporary error
+QUIT
+250 OK
+End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-server id
+250-PIPELINING
+250 OK
+MAIL FROM:<CALLER@???>
+250 OK
+RCPT TO:<userx@???>
End of script
Index: 0498
===================================================================
RCS file: /home/cvs/exim/exim-test/stdout/0498,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 0498 7 Feb 2006 10:47:37 -0000 1.1
+++ 0498 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,5 +1,5 @@
+++++++++++++++++++++++++++
- T:127.0.0.1:127.0.0.1:1224:10HmaX-0005vi-00 0 65 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 DELAY
+ T:127.0.0.1:127.0.0.1:1224:10HmaX-0005vi-00 -45 12865 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 DELAY
first failed = time last try = time2 next try = time2 + 10
******** SERVER ********
Index: 1008
===================================================================
RCS file: /home/cvs/exim/exim-test/stdout/1008,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 1008 7 Feb 2006 10:47:37 -0000 1.1
+++ 1008 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,18 +1,18 @@
+++++++++++++++++++++++++++
- T:127.0.0.1:127.0.0.1:1224:10HmaX-0005vi-00 0 65 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 Temporary error
+ T:127.0.0.1:127.0.0.1:1224:10HmaX-0005vi-00 -45 12865 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 Temporary error
first failed = time last try = time2 next try = time2 + 7200
- T:::1:::1:1224:10HmaX-0005vi-00 0 65 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
+ T:::1:::1:1224:10HmaX-0005vi-00 -45 12865 SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
first failed = time last try = time2 next try = time2 + 7200
-Transport: 127.0.0.1 [127.0.0.1]:1111 10HmaX-0005vi-00 error 0: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 Temporary error
+Transport: 127.0.0.1 [127.0.0.1]:1111 10HmaX-0005vi-00 error -45: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host 127.0.0.1 [127.0.0.1]: 450 Temporary error
first failed: 07-Mar-2000 12:21:52
last tried: 07-Mar-2000 12:21:52
next try at: 07-Mar-2000 12:21:52
-Transport: ::1 [::1]:1111 10HmaX-0005vi-00 error 0: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
+Transport: ::1 [::1]:1111 10HmaX-0005vi-00 error -45: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
first failed: 07-Mar-2000 12:21:52
last tried: 07-Mar-2000 12:21:52
next try at: 07-Mar-2000 12:21:52
exinext exit code = 0
-Transport: ::1 [::1]:1111 10HmaX-0005vi-00 error 0: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
+Transport: ::1 [::1]:1111 10HmaX-0005vi-00 error -45: SMTP error from remote mail server after MAIL FROM:<CALLER@???>: host ::1 [::1]: 450 Temporary error
first failed: 07-Mar-2000 12:21:52
last tried: 07-Mar-2000 12:21:52
next try at: 07-Mar-2000 12:21:52
Index: 5100
===================================================================
RCS file: /home/cvs/exim/exim-test/stdout/5100,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 5100 7 Feb 2006 10:47:37 -0000 1.1
+++ 5100 9 Mar 2006 15:10:17 -0000 1.2
@@ -1,5 +1,5 @@
+++++++++++++++++++++++++++
- T:jack@??? -1 0 LMTP error after end of data: 450 Number 2 is now delayed
+ T:jack@??? -46 12800 LMTP error after end of data: 450 Number 2 is now delayed
first failed = time last try = time2 next try = time2 + 0
T:tom@??? -44 12800 LMTP error after RCPT TO:<tom@???>: 450 This one is delayed on RCPT
first failed = time last try = time2 next try = time2 + 60