Ensure we usually strip one level of '<>' from Message-IDs,
since our internal SQLite, Xapian, and SHA-1 storage all
assume that.

Realistically, we screw up if somebody has '<<' or '>>',
but those are screwed up mail clients and we can deal with
it another time.  Currently, this means some messages with
'>>' in References or Message-Id are not handled correctly,
yet, but we match the behavior of Mail::Thread in keeping
the extra '>'.
---
 lib/PublicInbox/Feed.pm | 3 +--
 lib/PublicInbox/Hval.pm | 1 -
 lib/PublicInbox/View.pm | 2 +-
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 232a91c..25fec10 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -266,8 +266,7 @@ sub feed_entry {
        my $midurl = $feed_opts->{midurl};
 
        my $header_obj = $mime->header_obj;
-       my $mid = $header_obj->header_raw('Message-ID');
-       defined $mid or return;
+       my $mid = mid_clean($header_obj->header_raw('Message-ID'));
        $mid = PublicInbox::Hval->new_msgid($mid);
        my $href = $midurl . $mid->{href}. '/';
 
diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm
index 7249606..77acecd 100644
--- a/lib/PublicInbox/Hval.pm
+++ b/lib/PublicInbox/Hval.pm
@@ -31,7 +31,6 @@ sub new {
 
 sub new_msgid {
        my ($class, $msgid) = @_;
-       $msgid = mid_clean($msgid);
        $class->new($msgid, mid_escape($msgid));
 }
 
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 34f97c7..6f79f60 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -491,7 +491,7 @@ sub _msg_html_prepare {
                $ctx->{-upfx} = '../';
        }
        my @title;
-       my $mid = $hdr->header_raw('Message-ID');
+       my $mid = mid_clean($hdr->header_raw('Message-ID'));
        $mid = PublicInbox::Hval->new_msgid($mid);
        foreach my $h (qw(From To Cc Subject Date)) {
                my $v = $hdr->header($h);
-- 
EW

--
unsubscribe: [email protected]
archive: https://public-inbox.org/meta/

Reply via email to