summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-txt/ChangeLog13
-rw-r--r--doc/doc-txt/NewStuff11
-rw-r--r--doc/doc-txt/OptionLists.txt3
-rw-r--r--src/src/deliver.c22
-rw-r--r--src/src/transports/smtp.c58
-rw-r--r--src/src/transports/smtp.h3
-rw-r--r--test/confs/02471
-rw-r--r--test/confs/03881
-rw-r--r--test/log/03573
-rw-r--r--test/scripts/0000-Basic/03572
-rw-r--r--test/stderr/035761
-rw-r--r--test/stderr/035840
-rw-r--r--test/stderr/03881
-rw-r--r--test/stderr/50051
-rw-r--r--test/stdout/03576
-rw-r--r--test/stdout/03588
-rw-r--r--test/stdout/04742
-rw-r--r--test/stdout/04972
18 files changed, 162 insertions, 76 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index c475c0877..99e28d07a 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.424 2006/11/06 11:27:54 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.425 2006/11/06 15:50:12 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -236,6 +236,17 @@ PH/35 The error "getsockname() failed: connection reset by peer" was being
removed the panic log writing for the ECONNRESET error when getsockname()
fails.
+PH/36 After a 4xx response to a RCPT error, that address was delayed (in queue
+ runs only) independently of the message's sender address. This meant
+ that, if the 4xx error was in fact related to the sender, a different
+ message to the same recipient with a different sender could confuse
+ things. In particualar, this can happen when sending to a greylisting
+ server, but other circumstances could also provoke similar problems.
+ I have changed the default so that the retry time for these errors is now
+ based a combination of the sender and recipient addresses. This change
+ can be overridden by setting address_retry_include_sender=false in the
+ smtp transport.
+
Exim version 4.63
-----------------
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 95a207516..695acce86 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.119 2006/10/24 12:56:06 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.120 2006/11/06 15:50:12 ph10 Exp $
New Features in Exim
--------------------
@@ -154,6 +154,15 @@ Version 4.64
line, because further arguments are taken as strings to expand (just like
-be).
+9. When an address is delayed because of a 4xx response to a RCPT command, it
+ is now the combination of sender and recipient that is delayed in subsequent
+ queue runs until its retry time is reached. You can revert to the previous
+ behavious, that is, delay the recipient independent of the sender, by
+ setting address_retry_include_sender=false in the smtp transport. However,
+ this can lead to problems with servers that regularly issue 4xx responses to
+ RCPT commands.
+
+
Version 4.63
------------
diff --git a/doc/doc-txt/OptionLists.txt b/doc/doc-txt/OptionLists.txt
index f0ef3c2f8..1b73b1e5e 100644
--- a/doc/doc-txt/OptionLists.txt
+++ b/doc/doc-txt/OptionLists.txt
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/OptionLists.txt,v 1.26 2006/10/24 12:56:06 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/OptionLists.txt,v 1.27 2006/11/06 15:50:12 ph10 Exp $
LISTS OF EXIM OPTIONS
---------------------
@@ -68,6 +68,7 @@ acl_smtp_rcpt string* unset main
acl_smtp_starttls string* unset main 4.11
acl_smtp_vrfy string* unset main 4.00
address_data string* unset routers 4.00
+address_retry_include_sender boolean true smtp 4.64
address_test boolean true routers 4.14
admin_groups string list unset main 3.02
allow_domain_literals boolean false main 4.00 replacing forbid_domain_literals
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 81df0e083..02552317a 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/deliver.c,v 1.37 2006/10/30 16:41:04 ph10 Exp $ */
+/* $Cambridge: exim/src/src/deliver.c,v 1.38 2006/11/06 15:50:12 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -5452,8 +5452,10 @@ while (addr_new != NULL) /* Loop until all addresses dealt with */
}
/* Get the routing retry status, saving the two retry keys (with and
- without the local part) for subsequent use. Ignore retry records that
- are too old. */
+ without the local part) for subsequent use. If there is no retry record for
+ the standard address routing retry key, we look for the same key with the
+ sender attached, because this form is used by the smtp transport after a
+ 4xx response to RCPT when address_retry_include_sender is true. */
addr->domain_retry_key = string_sprintf("R:%s", addr->domain);
addr->address_retry_key = string_sprintf("R:%s@%s", addr->local_part,
@@ -5466,12 +5468,22 @@ while (addr_new != NULL) /* Loop until all addresses dealt with */
domain_retry_record = dbfn_read(dbm_file, addr->domain_retry_key);
if (domain_retry_record != NULL &&
now - domain_retry_record->time_stamp > retry_data_expire)
- domain_retry_record = NULL;
+ domain_retry_record = NULL; /* Ignore if too old */
address_retry_record = dbfn_read(dbm_file, addr->address_retry_key);
if (address_retry_record != NULL &&
now - address_retry_record->time_stamp > retry_data_expire)
- address_retry_record = NULL;
+ address_retry_record = NULL; /* Ignore if too old */
+
+ if (address_retry_record == NULL)
+ {
+ uschar * altkey = string_sprintf("%s:<%s>", addr->address_retry_key,
+ sender_address);
+ address_retry_record = dbfn_read(dbm_file, altkey);
+ if (address_retry_record != NULL &&
+ now - address_retry_record->time_stamp > retry_data_expire)
+ address_retry_record = NULL; /* Ignore if too old */
+ }
}
DEBUG(D_deliver|D_retry)
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index ac013470b..f9e56c2e1 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/transports/smtp.c,v 1.28 2006/10/30 16:41:04 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transports/smtp.c,v 1.29 2006/11/06 15:50:12 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -21,6 +21,8 @@ before the lower case letters). Some live in the transport_instance block so as
to be publicly visible; these are flagged with opt_public. */
optionlist smtp_transport_options[] = {
+ { "address_retry_include_sender", opt_bool,
+ (void *)offsetof(smtp_transport_options_block, address_retry_include_sender) },
{ "allow_localhost", opt_bool,
(void *)offsetof(smtp_transport_options_block, allow_localhost) },
{ "authenticated_sender", opt_stringptr,
@@ -159,6 +161,7 @@ smtp_transport_options_block smtp_transport_option_defaults = {
1024, /* size_addition */
5, /* hosts_max_try */
50, /* hosts_max_try_hardlimit */
+ TRUE, /* address_retry_include_sender */
FALSE, /* allow_localhost */
FALSE, /* authenticated_sender_force */
FALSE, /* gethostbyname */
@@ -555,19 +558,21 @@ subsequent general error, it will get reset accordingly. If not, it will get
converted to OK at the end.
Arguments:
- addrlist the complete address list
- include_affixes TRUE if affixes include in RCPT
- sync_addr ptr to the ptr of the one to start scanning at (updated)
- host the host we are connected to
- count the number of responses to read
- pending_MAIL true if the first response is for MAIL
- pending_DATA 0 if last command sent was not DATA
- +1 if previously had a good recipient
- -1 if not previously had a good recipient
- inblock incoming SMTP block
- timeout timeout value
- buffer buffer for reading response
- buffsize size of buffer
+ addrlist the complete address list
+ include_affixes TRUE if affixes include in RCPT
+ sync_addr ptr to the ptr of the one to start scanning at (updated)
+ host the host we are connected to
+ count the number of responses to read
+ address_retry_
+ include_sender true if 4xx retry is to include the sender it its key
+ pending_MAIL true if the first response is for MAIL
+ pending_DATA 0 if last command sent was not DATA
+ +1 if previously had a good recipient
+ -1 if not previously had a good recipient
+ inblock incoming SMTP block
+ timeout timeout value
+ buffer buffer for reading response
+ buffsize size of buffer
Returns: 3 if at least one address had 2xx and one had 5xx
2 if at least one address had 5xx but none had 2xx
@@ -580,7 +585,8 @@ Returns: 3 if at least one address had 2xx and one had 5xx
static int
sync_responses(address_item *addrlist, BOOL include_affixes,
- address_item **sync_addr, host_item *host, int count, BOOL pending_MAIL,
+ address_item **sync_addr, host_item *host, int count,
+ BOOL address_retry_include_sender, BOOL pending_MAIL,
int pending_DATA, smtp_inblock *inblock, int timeout, uschar *buffer,
int buffsize)
{
@@ -705,10 +711,17 @@ while (count-- > 0)
update_waiting = FALSE;
- /* Add a retry item for the address so that it doesn't get tried
- again too soon. */
+ /* Add a retry item for the address so that it doesn't get tried again
+ too soon. If address_retry_include_sender is true, add the sender address
+ to the retry key. */
- retry_add_item(addr, addr->address_retry_key, 0);
+ if (address_retry_include_sender)
+ {
+ uschar *altkey = string_sprintf("%s:<%s>", addr->address_retry_key,
+ sender_address);
+ retry_add_item(addr, altkey, 0);
+ }
+ else retry_add_item(addr, addr->address_retry_key, 0);
}
}
} /* Loop for next RCPT response */
@@ -1404,8 +1417,9 @@ for (addr = first_addr;
if (count > 0)
{
switch(sync_responses(first_addr, tblock->rcpt_include_affixes,
- &sync_addr, host, count, pending_MAIL, 0, &inblock,
- ob->command_timeout, buffer, sizeof(buffer)))
+ &sync_addr, host, count, ob->address_retry_include_sender,
+ pending_MAIL, 0, &inblock, ob->command_timeout, buffer,
+ sizeof(buffer)))
{
case 3: ok = TRUE; /* 2xx & 5xx => OK & progress made */
case 2: completed_address = TRUE; /* 5xx (only) => progress made */
@@ -1453,8 +1467,8 @@ if (ok || (smtp_use_pipelining && !mua_wrapper))
int count = smtp_write_command(&outblock, FALSE, "DATA\r\n");
if (count < 0) goto SEND_FAILED;
switch(sync_responses(first_addr, tblock->rcpt_include_affixes, &sync_addr,
- host, count, pending_MAIL, ok? +1 : -1, &inblock,
- ob->command_timeout, buffer, sizeof(buffer)))
+ host, count, ob->address_retry_include_sender, pending_MAIL,
+ ok? +1 : -1, &inblock, ob->command_timeout, buffer, sizeof(buffer)))
{
case 3: ok = TRUE; /* 2xx & 5xx => OK & progress made */
case 2: completed_address = TRUE; /* 5xx (only) => progress made */
diff --git a/src/src/transports/smtp.h b/src/src/transports/smtp.h
index 05f02bc00..107b91853 100644
--- a/src/src/transports/smtp.h
+++ b/src/src/transports/smtp.h
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/transports/smtp.h,v 1.8 2006/02/28 12:42:47 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transports/smtp.h,v 1.9 2006/11/06 15:50:12 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -33,6 +33,7 @@ typedef struct {
int size_addition;
int hosts_max_try;
int hosts_max_try_hardlimit;
+ BOOL address_retry_include_sender;
BOOL allow_localhost;
BOOL authenticated_sender_force;
BOOL gethostbyname;
diff --git a/test/confs/0247 b/test/confs/0247
index 7de97edd1..eb11b0939 100644
--- a/test/confs/0247
+++ b/test/confs/0247
@@ -11,7 +11,6 @@ gecos_name = CALLER_NAME
# ----- Main settings -----
-
# ----- Routers -----
begin routers
diff --git a/test/confs/0388 b/test/confs/0388
index ec41efcaf..0252cbd9e 100644
--- a/test/confs/0388
+++ b/test/confs/0388
@@ -37,6 +37,7 @@ smtp:
hosts_max_try = 1
port = PORT_S
connect_timeout = 2s
+ address_retry_include_sender = false
# ----- Retry -----
diff --git a/test/log/0357 b/test/log/0357
index b89d3db34..0aa9fd787 100644
--- a/test/log/0357
+++ b/test/log/0357
@@ -6,3 +6,6 @@
1999-03-02 09:44:33 Start queue run: pid=pppp
1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@test.ex R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
1999-03-02 09:44:33 End queue run: pid=pppp
+1999-03-02 09:44:33 Start queue run: pid=pppp
+1999-03-02 09:44:33 10HmaX-0005vi-00 == userx@test.ex routing defer (-51): retry time not reached
+1999-03-02 09:44:33 End queue run: pid=pppp
diff --git a/test/scripts/0000-Basic/0357 b/test/scripts/0000-Basic/0357
index 1ca60b12d..ba1f5fa4a 100644
--- a/test/scripts/0000-Basic/0357
+++ b/test/scripts/0000-Basic/0357
@@ -46,4 +46,6 @@ QUIT
exim -q -d-all+retry
****
dump retry
+exim -q -d-all+retry
+****
no_msglog_check
diff --git a/test/stderr/0357 b/test/stderr/0357
index 7a6ee4d3b..cae10d04f 100644
--- a/test/stderr/0357
+++ b/test/stderr/0357
@@ -24,8 +24,8 @@ After routing:
checking status of 127.0.0.1
locking TESTSUITE/spool/db/retry.lockfile
no retry data available
-added retry item for R:userx@test.ex: errno=-44 more_errno=dd,A flags=0
-reading retry information for R:userx@test.ex from subprocess
+added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
@@ -35,9 +35,9 @@ Failed addresses:
Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
-retry for R:userx@test.ex = * 0 0
+retry for R:userx@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:userx@test.ex
+Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
end of retry processing
@@ -65,15 +65,15 @@ checking status of 127.0.0.1
locking TESTSUITE/spool/db/retry.lockfile
no host retry record
no message retry record
-added retry item for R:userx@test.ex: errno=-44 more_errno=dd,A flags=0
-reading retry information for R:userx@test.ex from subprocess
- existing delete item dropped
+added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
reading retry information for R:test.ex from subprocess
existing delete item dropped
added delete item
reading retry information for R:userx@test.ex from subprocess
- delete item not added: non-delete item exists
+ existing delete item dropped
+ added delete item
LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
Processing retry items
@@ -82,10 +82,11 @@ Failed addresses:
Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
+deleted retry information for R:userx@test.ex
deleted retry information for R:test.ex
-retry for R:userx@test.ex = * 0 0
+retry for R:userx@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:userx@test.ex
+Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
end of retry processing
@@ -114,15 +115,15 @@ checking status of 127.0.0.1
locking TESTSUITE/spool/db/retry.lockfile
no host retry record
no message retry record
-added retry item for R:userx@test.ex: errno=-44 more_errno=dd,A flags=0
-reading retry information for R:userx@test.ex from subprocess
- existing delete item dropped
+added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
reading retry information for R:test.ex from subprocess
existing delete item dropped
added delete item
reading retry information for R:userx@test.ex from subprocess
- delete item not added: non-delete item exists
+ existing delete item dropped
+ added delete item
LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
Processing retry items
@@ -131,13 +132,41 @@ Failed addresses:
Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
+deleted retry information for R:userx@test.ex
deleted retry information for R:test.ex
-retry for R:userx@test.ex = * 0 0
+retry for R:userx@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:userx@test.ex
+Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+2 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
end of retry processing
LOG: queue_run MAIN
End queue run: pid=pppp
>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+admin user
+LOG: queue_run MAIN
+ Start queue run: pid=pppp
+locking TESTSUITE/spool/db/retry.lockfile
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering: userx@test.ex
+no domain retry record
+LOG: retry_defer MAIN
+ == userx@test.ex routing defer (-51): retry time not reached
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+After routing:
+ Local deliveries:
+ Remote deliveries:
+ Failed addresses:
+ Deferred addresses:
+ userx@test.ex
+Processing retry items
+Succeeded addresses:
+Failed addresses:
+Deferred addresses:
+userx@test.ex: no retry items
+end of retry processing
+LOG: queue_run MAIN
+ End queue run: pid=pppp
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/0358 b/test/stderr/0358
index 40e38ca12..c48a96e4b 100644
--- a/test/stderr/0358
+++ b/test/stderr/0358
@@ -29,11 +29,11 @@ After routing:
checking status of 127.0.0.1
locking TESTSUITE/spool/db/retry.lockfile
no retry data available
-added retry item for R:userx@test.ex: errno=-44 more_errno=dd,A flags=0
-added retry item for R:usery@test.ex: errno=-44 more_errno=dd,A flags=0
-reading retry information for R:userx@test.ex from subprocess
+added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+added retry item for R:usery@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
-reading retry information for R:usery@test.ex from subprocess
+reading retry information for R:usery@test.ex:<CALLER@test.ex> from subprocess
added retry item
LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
@@ -45,15 +45,15 @@ Failed addresses:
Deferred addresses:
usery@test.ex
locking TESTSUITE/spool/db/retry.lockfile
-retry for R:usery@test.ex = * 0 0
+retry for R:usery@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:usery@test.ex
+Writing retry data for R:usery@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
userx@test.ex
-retry for R:userx@test.ex = * 0 0
+retry for R:userx@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:userx@test.ex
+Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
end of retry processing
@@ -87,24 +87,24 @@ checking status of 127.0.0.1
locking TESTSUITE/spool/db/retry.lockfile
no host retry record
no message retry record
-added retry item for R:userx@test.ex: errno=-44 more_errno=dd,A flags=0
-added retry item for R:usery@test.ex: errno=-44 more_errno=dd,A flags=0
-reading retry information for R:userx@test.ex from subprocess
- existing delete item dropped
+added retry item for R:userx@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+added retry item for R:usery@test.ex:<CALLER@test.ex>: errno=-44 more_errno=dd,A flags=0
+reading retry information for R:userx@test.ex:<CALLER@test.ex> from subprocess
added retry item
reading retry information for R:test.ex from subprocess
existing delete item dropped
added delete item
reading retry information for R:userx@test.ex from subprocess
- delete item not added: non-delete item exists
-reading retry information for R:usery@test.ex from subprocess
existing delete item dropped
+ added delete item
+reading retry information for R:usery@test.ex:<CALLER@test.ex> from subprocess
added retry item
reading retry information for R:test.ex from subprocess
existing delete item dropped
added delete item
reading retry information for R:usery@test.ex from subprocess
- delete item not added: non-delete item exists
+ existing delete item dropped
+ added delete item
LOG: MAIN
== userx@test.ex R=r1 T=t1 defer (-44): SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
LOG: MAIN
@@ -115,17 +115,19 @@ Failed addresses:
Deferred addresses:
usery@test.ex
locking TESTSUITE/spool/db/retry.lockfile
+deleted retry information for R:usery@test.ex
deleted retry information for R:test.ex
-retry for R:usery@test.ex = * 0 0
+retry for R:usery@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:usery@test.ex
+Writing retry data for R:usery@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+2 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
userx@test.ex
+deleted retry information for R:userx@test.ex
deleted retry information for R:test.ex
-retry for R:userx@test.ex = * 0 0
+retry for R:userx@test.ex:<CALLER@test.ex> = * 0 0
failing_interval=ttt message_age=ttt
-Writing retry data for R:userx@test.ex
+Writing retry data for R:userx@test.ex:<CALLER@test.ex>
first failed=dddd last try=dddd next try=+2 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
end of retry processing
diff --git a/test/stderr/0388 b/test/stderr/0388
index dc12b2781..e4b6b413c 100644
--- a/test/stderr/0388
+++ b/test/stderr/0388
@@ -224,6 +224,7 @@ Considering: CALLER@myhost.test.ex
unique = CALLER@myhost.test.ex
dbfn_read: key=R:myhost.test.ex
dbfn_read: key=R:CALLER@myhost.test.ex
+dbfn_read: key=R:CALLER@myhost.test.ex:<>
no domain retry record
no address retry record
CALLER@myhost.test.ex: queued for routing
diff --git a/test/stderr/5005 b/test/stderr/5005
index 4a28a686f..e27fbfaac 100644
--- a/test/stderr/5005
+++ b/test/stderr/5005
@@ -583,6 +583,7 @@ Considering: userx@test.ex
unique = userx@test.ex
dbfn_read: key=R:test.ex
dbfn_read: key=R:userx@test.ex
+dbfn_read: key=R:userx@test.ex:<CALLER@test.ex>
no domain retry record
no address retry record
userx@test.ex: queued for routing
diff --git a/test/stdout/0357 b/test/stdout/0357
index 51545f157..f7864bf4b 100644
--- a/test/stdout/0357
+++ b/test/stdout/0357
@@ -1,11 +1,11 @@
+++++++++++++++++++++++++++
- R:userx@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:userx@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 1
+++++++++++++++++++++++++++
- R:userx@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:userx@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 1
+++++++++++++++++++++++++++
- R:userx@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:userx@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 2
******** SERVER ********
diff --git a/test/stdout/0358 b/test/stdout/0358
index 314342dc6..ab77a784e 100644
--- a/test/stdout/0358
+++ b/test/stdout/0358
@@ -1,12 +1,12 @@
+++++++++++++++++++++++++++
- R:userx@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:userx@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 1
- R:usery@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:usery@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 1
+++++++++++++++++++++++++++
- R:userx@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:userx@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 2
- R:usery@test.ex -44 13121 SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
+ R:usery@test.ex:<CALLER@test.ex> -44 13121 SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
first failed = time last try = time2 next try = time2 + 2
******** SERVER ********
diff --git a/test/stdout/0474 b/test/stdout/0474
index cd9c9c281..ee42c1e32 100644
--- a/test/stdout/0474
+++ b/test/stdout/0474
@@ -5,7 +5,7 @@ first failed = time last try = time2 next try = time2 + 10
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@the.local.host.name>: host 127.0.0.1 [127.0.0.1]: 850 RUBBISH
first failed = time last try = time2 next try = time2 + 10
+++++++++++++++++++++++++++
- R:abcd@xyz -44 12865 SMTP error from remote mail server after RCPT TO:<abcd@xyz>: host 127.0.0.1 [127.0.0.1]: 850 RUBBISH
+ R:abcd@xyz:<CALLER@the.local.host.name> -44 12865 SMTP error from remote mail server after RCPT TO:<abcd@xyz>: host 127.0.0.1 [127.0.0.1]: 850 RUBBISH
first failed = time last try = time2 next try = time2 + 10
******** SERVER ********
diff --git a/test/stdout/0497 b/test/stdout/0497
index 6755d429e..3462fd1b3 100644
--- a/test/stdout/0497
+++ b/test/stdout/0497
@@ -2,7 +2,7 @@
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@myhost.test.ex>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
first failed = time last try = time2 next try = time2 + 0 *
+++++++++++++++++++++++++++
- R:userx@x.y -44 13377 SMTP error from remote mail server after RCPT TO:<userx@x.y>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
+ R:userx@x.y:<CALLER@myhost.test.ex> -44 13377 SMTP error from remote mail server after RCPT TO:<userx@x.y>: host 127.0.0.1 [127.0.0.1]: 452 temporary error
first failed = time last try = time2 next try = time2 + 0 *
******** SERVER ********