about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-08-14 10:21:10 +0000
committerEric Wong <e@80x24.org>2016-08-14 11:04:46 +0000
commit5f83592e6ad3a6b7d1824e339a083db1e391145d (patch)
tree9bbcbeeeca9e4a92e90309e8520c43944480db55
parent9d1e5fadd7d18f4c96ab0509d673040e34225a04 (diff)
downloadpublic-inbox-5f83592e6ad3a6b7d1824e339a083db1e391145d.tar.gz
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 '>'.
-rw-r--r--lib/PublicInbox/Feed.pm3
-rw-r--r--lib/PublicInbox/Hval.pm1
-rw-r--r--lib/PublicInbox/View.pm2
3 files changed, 2 insertions, 4 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 232a91c0..25fec10a 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 72496065..77acecda 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 34f97c76..6f79f601 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);