about summary refs log tree commit homepage
path: root/lib/PublicInbox/Filter
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Filter')
-rw-r--r--lib/PublicInbox/Filter/Base.pm5
-rw-r--r--lib/PublicInbox/Filter/RubyLang.pm4
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/PublicInbox/Filter/Base.pm b/lib/PublicInbox/Filter/Base.pm
index 5d070132..638b627a 100644
--- a/lib/PublicInbox/Filter/Base.pm
+++ b/lib/PublicInbox/Filter/Base.pm
@@ -66,9 +66,10 @@ sub reject ($$) {
 sub err ($) { $_[0]->{err} }
 
 # by default, scrub is a no-op, see PublicInbox::Filter::Vger::scrub
-# for an example of the override
+# for an example of the override.  The $for_remove arg is set to
+# disable altid setting for spam removal.
 sub scrub {
-        my ($self, $mime) = @_;
+        my ($self, $mime, $for_remove) = @_;
         $self->ACCEPT($mime);
 }
 
diff --git a/lib/PublicInbox/Filter/RubyLang.pm b/lib/PublicInbox/Filter/RubyLang.pm
index cb69e38a..a43d67a9 100644
--- a/lib/PublicInbox/Filter/RubyLang.pm
+++ b/lib/PublicInbox/Filter/RubyLang.pm
@@ -30,7 +30,7 @@ sub new {
 }
 
 sub scrub {
-        my ($self, $mime) = @_;
+        my ($self, $mime, $for_remove) = @_;
         # no msg_iter here, that is only for read-only access
         $mime->walk_parts(sub {
                 my ($part) = $_[0];
@@ -43,7 +43,7 @@ sub scrub {
                 }
         });
         my $altid = $self->{-altid};
-        if ($altid) {
+        if ($altid && !$for_remove) {
                 my $hdr = $mime->header_obj;
                 my $mids = mids($hdr);
                 return $self->REJECT('Message-ID missing') unless (@$mids);