about summary refs log tree commit homepage
path: root/lib/PublicInbox/MID.pm
diff options
context:
space:
mode:
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-04-01 23:23:44 +0000
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-04-01 23:25:13 +0000
commit1cb230c4d47c8ef5d03f0b8de2f8ad93c303d816 (patch)
tree20e1163ebdc39cb2e35fa32a4eedf0e8ae0b6632 /lib/PublicInbox/MID.pm
parent537eb7ec8c0f8ebd6fa39807a08515ccd3c4be66 (diff)
downloadpublic-inbox-1cb230c4d47c8ef5d03f0b8de2f8ad93c303d816.tar.gz
We need to stop ghost messages from generating longer
Message-IDs than Xapian can handle with terms.
Diffstat (limited to 'lib/PublicInbox/MID.pm')
-rw-r--r--lib/PublicInbox/MID.pm18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/PublicInbox/MID.pm b/lib/PublicInbox/MID.pm
index 117d3c42..c82e8401 100644
--- a/lib/PublicInbox/MID.pm
+++ b/lib/PublicInbox/MID.pm
@@ -65,12 +65,6 @@ sub mids ($) {
                         push(@mids, $v);
                 }
         }
-        foreach my $i (0..$#mids) {
-                next if length($mids[$i]) <= MAX_MID_SIZE;
-                warn "Message-ID: <$mids[$i]> too long, truncating\n";
-                $mids[$i] = substr($mids[$i], 0, MAX_MID_SIZE);
-        }
-
         uniq_mids(\@mids);
 }
 
@@ -92,10 +86,14 @@ sub uniq_mids ($) {
         my ($mids) = @_;
         my @ret;
         my %seen;
-        foreach (@$mids) {
-                next if $seen{$_};
-                push @ret, $_;
-                $seen{$_} = 1;
+        foreach my $mid (@$mids) {
+                if (length($mid) > MAX_MID_SIZE) {
+                        warn "Message-ID: <$mid> too long, truncating\n";
+                        $mid = substr($mid, 0, MAX_MID_SIZE);
+                }
+                next if $seen{$mid};
+                push @ret, $mid;
+                $seen{$mid} = 1;
         }
         \@ret;
 }