[packages/exim] - rel 3; add -M option (looks for related msgs, too) to exigrep

arekm arekm at pld-linux.org
Fri Sep 12 15:36:47 CEST 2014


commit 5d89b078e7ab525f65b16d1f2277577363937eaf
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Fri Sep 12 15:36:44 2014 +0200

    - rel 3; add -M option (looks for related msgs, too) to exigrep

 exim-exigrep.patch | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 exim.spec          |  4 ++-
 2 files changed, 80 insertions(+), 1 deletion(-)
---
diff --git a/exim.spec b/exim.spec
index dae4d9c..62f9e34 100644
--- a/exim.spec
+++ b/exim.spec
@@ -25,7 +25,7 @@ Summary(pl.UTF-8):	Agent Transferu Poczty Uniwersytetu w Cambridge
 Summary(pt_BR.UTF-8):	Servidor de correio eletrônico exim
 Name:		exim
 Version:	4.84
-Release:	2
+Release:	3
 Epoch:		2
 License:	GPL
 Group:		Networking/Daemons/SMTP
@@ -57,6 +57,7 @@ Patch3:		exim-defs.patch
 Patch4:		%{name}4-Makefile-Default.patch
 # http://marc.merlins.org/linux/exim/files/sa-exim-cvs/localscan_dlopen_exim_4.20_or_better.patch
 Patch5:		localscan_dlopen_%{name}_4.20_or_better.patch
+Patch6:		%{name}-exigrep.patch
 
 Patch8:		%{name}-spam-timeout.patch
 
@@ -175,6 +176,7 @@ Pliki nagłówkowe dla Exima.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p2
 
 %patch8 -p1
 
diff --git a/exim-exigrep.patch b/exim-exigrep.patch
new file mode 100644
index 0000000..ca42e4a
--- /dev/null
+++ b/exim-exigrep.patch
@@ -0,0 +1,77 @@
+commit 0eb51736637f6c93a2fd6cb65316f8ae11f0a0be
+Author: Todd Lyons <tlyons at exim.org>
+Date:   Fri Sep 12 06:22:24 2014 -0700
+
+    Bug 1216: Add -M (related) to exigrep.
+    
+    Thanks to Arkadiusz for pointing out that this was never merged.
+
+diff --git a/src/src/exigrep.src b/src/src/exigrep.src
+index 2d3b40c..419fcb5 100644
+--- a/src/src/exigrep.src
++++ b/src/src/exigrep.src
+@@ -60,6 +60,11 @@ return $seconds;
+ 
+ my (%saved, %id_list, $pattern, $queue_time, $insensitive, $invert);
+ 
++# If using "related" option, have to track extra message IDs
++my $related;
++my $related_re='';
++my @Mids = ();
++
+ sub do_line {
+ 
+ # Convert syslog lines to mainlog format, as in eximstats.
+@@ -90,8 +95,16 @@ if (defined $id)
+     }
+   else
+     {
+-    $id_list{$id} = 1 if defined $id_list{$id} ||
+-      ($insensitive && /$pattern/io) || /$pattern/o;
++    if (defined $id_list{$id} ||
++      ($insensitive && /$pattern/io) || /$pattern/o)
++      {
++      $id_list{$id} = 1;
++      get_related_ids($id) if $related;
++      }
++    elsif ($related && $related_re)
++      {
++      grep_for_related($_, $id);
++      }
+     }
+ 
+   # See if this is a completion for some message. If it is interesting,
+@@ -173,16 +186,30 @@ sub detect_compressor_capable
+   return $cmdline;
+   }
+ 
++sub grep_for_related {
++  my ($line,$id) = @_;
++  $id_list{$id} = 1 if $line =~ m/$related_re/;
++}
++
++sub get_related_ids {
++  my ($id) = @_;
++  push @Mids, $id unless grep /\b$id\b/, @Mids;
++  my $re = join '|', @Mids;
++  $related_re = qr/$re/;
++}
++
+ # The main program. Extract the pattern and make sure any relevant characters
+ # are quoted if the -l flag is given. The -t flag gives a time-on-queue value
+-# which is an additional condition.
++# which is an additional condition. The -M flag will also display "related"
++# loglines (msgid from matched lines is searched in following lines).
+ 
+-getopts('Ilvt:',\my %args);
++getopts('Ilvt:M',\my %args);
+ $queue_time  = $args{'t'}? $args{'t'} : -1;
+ $insensitive = $args{'I'}? 0 : 1;
+ $invert      = $args{'v'}? 1 : 0;
++$related     = $args{'M'}? 1 : 0;
+ 
+-die "usage: exigrep [-I] [-l] [-t <seconds>] [-v] <pattern> [<log file>]...\n"
++die "usage: exigrep [-I] [-l] [-M] [-t <seconds>] [-v] <pattern> [<log file>]...\n"
+   if ($#ARGV < 0);
+ 
+ $pattern = shift @ARGV;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/exim.git/commitdiff/5d89b078e7ab525f65b16d1f2277577363937eaf



More information about the pld-cvs-commit mailing list