X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/059ec3d9952740285fb1ebf47961b8aca2eb1b4a..2ac0e484077ee1b4e45fe8b45d57cd2bcf050c11:/src/src/deliver.c diff --git a/src/src/deliver.c b/src/src/deliver.c index 741d7b79c..b2e9ea58c 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/deliver.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */ +/* $Cambridge: exim/src/src/deliver.c,v 1.3 2004/11/24 14:38:13 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -1046,12 +1046,15 @@ else setflag(addr, af_ignore_error); /* Freeze the message if requested, or if this is a bounce message (or other - message with null sender). However, don't freeze if errors are being ignored. - The actual code to ignore occurs later, instead of sending a message. Logging - of freezing occurs later, just before writing the -H file. */ + message with null sender) and this address does not have its own errors + address. However, don't freeze if errors are being ignored. The actual code + to ignore occurs later, instead of sending a message. Logging of freezing + occurs later, just before writing the -H file. */ if (!testflag(addr, af_ignore_error) && - (addr->special_action == SPECIAL_FREEZE || sender_address[0] == 0)) + (addr->special_action == SPECIAL_FREEZE || + (sender_address[0] == 0 && addr->p.errors_address == NULL) + )) { frozen_info = (addr->special_action == SPECIAL_FREEZE)? US"" : (sender_local && !local_error_message)? @@ -6312,14 +6315,21 @@ if (addr_defer == NULL) } /* Remove the two message files. */ - + sprintf(CS spoolname, "%s/input/%s/%s-D", spool_directory, message_subdir, id); if (Uunlink(spoolname) < 0) log_write(0, LOG_MAIN|LOG_PANIC_DIE, "failed to unlink %s", spoolname); sprintf(CS spoolname, "%s/input/%s/%s-H", spool_directory, message_subdir, id); if (Uunlink(spoolname) < 0) log_write(0, LOG_MAIN|LOG_PANIC_DIE, "failed to unlink %s", spoolname); - log_write(0, LOG_MAIN, "Completed"); + + /* Log the end of this message, with queue time if requested. */ + + if ((log_extra_selector & LX_queue_time_overall) != 0) + log_write(0, LOG_MAIN, "Completed QT=%s", + readconf_printtime(time(NULL) - received_time)); + else + log_write(0, LOG_MAIN, "Completed"); } /* If there are deferred addresses, we are keeping this message because it is