]>
Commit | Line | Data |
---|---|---|
6fe6940e AM |
1 | *** exim-4.66/src/deliver.c Mon Jan 8 14:25:36 2007 |
2 | --- exim/src/deliver.c Tue Feb 6 14:19:00 2007 | |
3 | *************** | |
4 | *** 5639,5650 **** | |
5 | string_sprintf("R:%s", addr->domain), 0); | |
6 | ||
7 | /* Otherwise, if there is an existing retry record in the database, add | |
8 | ! retry items to delete both forms. Since the domain might have been | |
9 | ! rewritten (expanded to fully qualified) as a result of routing, ensure | |
10 | ! that the rewritten form is also deleted. */ | |
11 | ||
12 | else if (testflag(addr, af_dr_retry_exists)) | |
13 | { | |
14 | retry_add_item(addr, addr->address_retry_key, rf_delete); | |
15 | retry_add_item(addr, addr->domain_retry_key, rf_delete); | |
16 | if (Ustrcmp(addr->domain, old_domain) != 0) | |
17 | --- 5637,5652 ---- | |
18 | string_sprintf("R:%s", addr->domain), 0); | |
19 | ||
20 | /* Otherwise, if there is an existing retry record in the database, add | |
21 | ! retry items to delete both forms. We must also allow for the possibility | |
22 | ! of a routing retry that includes the sender address. Since the domain might | |
23 | ! have been rewritten (expanded to fully qualified) as a result of routing, | |
24 | ! ensure that the rewritten form is also deleted. */ | |
25 | ||
26 | else if (testflag(addr, af_dr_retry_exists)) | |
27 | { | |
28 | + uschar *altkey = string_sprintf("%s:<%s>", addr->address_retry_key, | |
29 | + sender_address); | |
30 | + retry_add_item(addr, altkey, rf_delete); | |
31 | retry_add_item(addr, addr->address_retry_key, rf_delete); | |
32 | retry_add_item(addr, addr->domain_retry_key, rf_delete); | |
33 | if (Ustrcmp(addr->domain, old_domain) != 0) | |
34 | wmf_text = next_emf(wmf, US"header"); | |
35 | *** exim-4.66/src/transports/smtp.c Mon Jan 8 14:25:37 2007 | |
36 | --- exim/src/transports/smtp.c Tue Feb 6 14:19:00 2007 | |
37 | *************** | |
38 | *** 643,652 **** | |
39 | addr->transport_return = PENDING_OK; | |
40 | ||
41 | /* If af_dr_retry_exists is set, there was a routing delay on this address; | |
42 | ! ensure that any address-specific retry record is expunged. */ | |
43 | ||
44 | if (testflag(addr, af_dr_retry_exists)) | |
45 | retry_add_item(addr, addr->address_retry_key, rf_delete); | |
46 | } | |
47 | ||
48 | /* Timeout while reading the response */ | |
49 | --- 654,669 ---- | |
50 | addr->transport_return = PENDING_OK; | |
51 | ||
52 | /* If af_dr_retry_exists is set, there was a routing delay on this address; | |
53 | ! ensure that any address-specific retry record is expunged. We do this both | |
54 | ! for the basic key and for the version that also includes the sender. */ | |
55 | ||
56 | if (testflag(addr, af_dr_retry_exists)) | |
57 | + { | |
58 | + uschar *altkey = string_sprintf("%s:<%s>", addr->address_retry_key, | |
59 | + sender_address); | |
60 | + retry_add_item(addr, altkey, rf_delete); | |
61 | retry_add_item(addr, addr->address_retry_key, rf_delete); | |
62 | + } | |
63 | } | |
64 | ||
65 | /* Timeout while reading the response */ |