From: Philip Hazel Date: Tue, 13 Mar 2007 16:37:57 +0000 (+0000) Subject: Previous exigrep patch was rubbish. Re-fix. X-Git-Tag: exim-4_67~17 X-Git-Url: https://git.exim.org/users/jgh/exim.git/commitdiff_plain/3ce625884681ded8f7e08565dc76ea42a19e3652?ds=sidebyside Previous exigrep patch was rubbish. Re-fix. --- diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 9695d2d61..2ed229741 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.493 2007/03/13 15:32:47 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.494 2007/03/13 16:37:57 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -158,10 +158,10 @@ PH/36 Applied John Jetmore's patch to add -v functionality to exigrep. PH/37 If a message is not accepted after it has had an id assigned (e.g. because it turns out to be too big or there is a timeout) there is no - "Completed" line in the log. When such a message was selected by exigrep, - it was listed as "not completed". Such messages can be identified by the - lack of a "<=" line in the log, and they are now listed as "not - accepted". + "Completed" line in the log. When some messages of this type were + selected by exigrep, they were listed as "not completed". Others were + picked up by some special patterns. I have improved the selection + criteria to be more general. PH/38 The host_find_failed option in the manualroute router can now be set to "ignore", to completely ignore a host whose IP address cannot be diff --git a/src/src/exigrep.src b/src/src/exigrep.src index 6024b425f..0f9fc6908 100644 --- a/src/src/exigrep.src +++ b/src/src/exigrep.src @@ -1,5 +1,5 @@ #! PERL_COMMAND -w -# $Cambridge: exim/src/src/exigrep.src,v 1.8 2007/03/13 11:26:49 ph10 Exp $ +# $Cambridge: exim/src/src/exigrep.src,v 1.9 2007/03/13 16:37:57 ph10 Exp $ use strict; @@ -99,23 +99,19 @@ if (defined $id) # print it, but in any event, throw away what was saved. if (index($_, 'Completed') != -1 || - (index($_, 'rejected') != -1 && - /rejected (?:by local_scan|by non-SMTP ACL|after DATA)/o)) + index($_, 'SMTP data timeout') != -1 || + (index($_, 'rejected') != -1 && + /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d (?:[+-]\d{4} )?)(?:\[\d+\] )?\w{6}\-\w{6}\-\w{2} rejected/o)) { if ($queue_time != -1 && $saved{$id} =~ /^(\d{4}-\d\d-\d\d \d\d:\d\d:\d\d ([+-]\d{4} )?)/o) { my $old_sec = &seconds($1); my $sec = &seconds($date); - delete $id_list{$id} if $id_list{$id} && $sec - $old_sec <= $queue_time; - } - - if ($id_list{$id}) - { - delete $id_list{$id}; - print "$saved{$id}\n"; + $id_list{$id} = 0 if $id_list{$id} && $sec - $old_sec <= $queue_time; } + print "$saved{$id}\n" if ($id_list{$id}); delete $id_list{$id}; delete $saved{$id}; } @@ -172,16 +168,11 @@ if (@ARGV) else { do_line() while (); } -# At the end of processing all the input, print any uncompleted messages. If -# there is no <= line, we are dealing with a message that was rejected or -# abandoned. +# At the end of processing all the input, print any uncompleted messages. for (keys %id_list) { - if ($saved{$_} =~ /\s<=\s/) - { print "+++ $_ has not completed +++\n$saved{$_}\n"; } - else - { print "+++ $_ was not accepted +++\n$saved{$_}\n"; } + print "+++ $_ has not completed +++\n$saved{$_}\n"; } # End of exigrep