Fix: multiple pattern files
authorhs@schlittermann.de
Wed, 08 Jul 2015 13:55:36 +0200
changeset 6 4f955ca8e44f
parent 5 fe95803ba72d
child 7 4bf506005c14
Fix: multiple pattern files
CheckDisclaimer.pm
README
--- a/CheckDisclaimer.pm	Wed Jul 08 07:38:26 2015 +0200
+++ b/CheckDisclaimer.pm	Wed Jul 08 13:55:36 2015 +0200
@@ -9,7 +9,12 @@
 use base 'Exporter';
 our @EXPORT  = qw(check_disclaimer);
 our $Verbose = 0;
+
+my $OFFSET = -10240;
+
 my $pattern;
+my $last_pattern_file;
+
 
 # Lets search for the disclaimer.
 # Usage: ${perl{check_disclaimer}{<disclaimer>}}
@@ -25,16 +30,17 @@
     my $file = shift // Exim::expand_string(
         '$spool_directory/scan/$message_exim_id/$message_exim_id.eml');
 
-    if (not defined $pattern) {
+    if (not defined $last_pattern_file or $last_pattern_file ne $pattern_file) {
         open(my $fh, $pattern_file) or die "Can't open $pattern_file: $!\n";
         $_ = join '', <$fh>;
         $pattern = qr/$_/;
+        $last_pattern_file = $pattern_file;
     }
 
     open(my $fh, $file) or die "Can't open $file: $!\n";
-    seek($fh, -1024, SEEK_END)
-      or die "Can't seek to -1024: $!\n"
-      if -s $fh > 1024;
+    seek($fh, $OFFSET, SEEK_END)
+      or die "Can't seek to $OFFSET: $!\n"
+      if -s $fh > -1 * $OFFSET;
 
     $_ = join '', <$fh>;
 
--- a/README	Wed Jul 08 07:38:26 2015 +0200
+++ b/README	Wed Jul 08 13:55:36 2015 +0200
@@ -1,4 +1,4 @@
 For detailed information see the Exim/Plugin/CheckDisclaimer.pm
 file. You may run
   
-  perldoc Exim/Plugin/CheckDisclaimer.pm
+  perldoc CheckDisclaimer.pm