X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FMID.pm;fp=lib%2FPublicInbox%2FMID.pm;h=2873901146c22d48853e937c232cdbf7594e0a14;hb=657695bf0b30ae8ddaef57739c4d24e5e38afdbf;hp=601f4c9b125847f478952a0fdf7764b97e9d8ff3;hpb=ee3c840f2f4169ebcf16753a10df5a10a08649de;p=public-inbox.git diff --git a/lib/PublicInbox/MID.pm b/lib/PublicInbox/MID.pm index 601f4c9b..28739011 100644 --- a/lib/PublicInbox/MID.pm +++ b/lib/PublicInbox/MID.pm @@ -7,7 +7,7 @@ use strict; use warnings; use base qw/Exporter/; our @EXPORT_OK = qw(mid_clean id_compress mid2path mid_escape MID_ESC - mids references mids_for_index $MID_EXTRACT); + mids references mids_for_index mids_in $MID_EXTRACT); use URI::Escape qw(uri_escape_utf8); use Digest::SHA qw/sha1_hex/; require PublicInbox::Address; @@ -73,14 +73,17 @@ sub mids ($) { uniq_mids(extract_mids(@mids)); } +# for Resent-Message-ID and maybe others +sub mids_in ($@) { + my ($eml, @headers) = @_; + uniq_mids(extract_mids(map { ($eml->header_raw($_)) } @headers)); +} + # we allow searching on X-Alt-Message-ID since PublicInbox::NNTP uses them # to placate some clients, and we want to ensure NNTP-only clients can # import and index without relying on HTTP endpoints sub mids_for_index ($) { - my ($hdr) = @_; - my @mids = $hdr->header_raw('Message-ID'); - my @alts = $hdr->header_raw('X-Alt-Message-ID'); - uniq_mids(extract_mids(@mids, @alts)); + mids_in($_[0], qw(Message-ID X-Alt-Message-ID)); } # last References should be IRT, but some mail clients do things