From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id A5A9E1FFA7 for ; Thu, 31 Dec 2020 13:51:56 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 19/36] mid: hoist out mids_in sub Date: Thu, 31 Dec 2020 13:51:37 +0000 Message-Id: <20201231135154.6070-20-e@80x24.org> In-Reply-To: <20201231135154.6070-1-e@80x24.org> References: <20201231135154.6070-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We'll be using it for Resent-Message-ID with lei, and possibly other places. --- lib/PublicInbox/MID.pm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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