X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fdeliver.c;h=c209e12f2863f44dbb951ea79f25b573b9fdce7b;hb=48ed62d9a68c4e44c9fbaa6e300f88401bb32d65;hp=be588dd7cb17c2018bce2dc41c623fd8271fa1de;hpb=0e22dfd114ef5e5db5913a5792a6d3a8df3b187b;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/deliver.c b/src/src/deliver.c index be588dd7c..c209e12f2 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/deliver.c,v 1.43 2007/02/06 11:11:40 ph10 Exp $ */ +/* $Cambridge: exim/src/src/deliver.c,v 1.45 2007/08/22 14:20:28 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -944,7 +944,8 @@ if (result == OK) s = string_append(s, &size, &ptr, 2, US" CV=", testflag(addr, af_cert_verified)? "yes":"no"); if ((log_extra_selector & LX_tls_peerdn) != 0 && addr->peerdn != NULL) - s = string_append(s, &size, &ptr, 3, US" DN=\"", addr->peerdn, US"\""); + s = string_append(s, &size, &ptr, 3, US" DN=\"", + string_printing(addr->peerdn), US"\""); #endif if ((log_extra_selector & LX_smtp_confirmation) != 0 && @@ -5478,7 +5479,7 @@ while (addr_new != NULL) /* Loop until all addresses dealt with */ if (address_retry_record == NULL) { - uschar * altkey = string_sprintf("%s:<%s>", addr->address_retry_key, + 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 && @@ -5637,12 +5638,16 @@ while (addr_new != NULL) /* Loop until all addresses dealt with */ string_sprintf("R:%s", addr->domain), 0); /* Otherwise, if there is an existing retry record in the database, add - retry items to delete both forms. Since the domain might have been - rewritten (expanded to fully qualified) as a result of routing, ensure - that the rewritten form is also deleted. */ + retry items to delete both forms. We must also allow for the possibility + of a routing retry that includes the sender address. Since the domain might + have been rewritten (expanded to fully qualified) as a result of routing, + ensure that the rewritten form is also deleted. */ else if (testflag(addr, af_dr_retry_exists)) { + uschar *altkey = string_sprintf("%s:<%s>", addr->address_retry_key, + sender_address); + retry_add_item(addr, altkey, rf_delete); retry_add_item(addr, addr->address_retry_key, rf_delete); retry_add_item(addr, addr->domain_retry_key, rf_delete); if (Ustrcmp(addr->domain, old_domain) != 0)