]> Sergey Matveev's repositories - public-inbox.git/commitdiff
www: do not double-clean Message-IDs from internal DBs
authorEric Wong <e@80x24.org>
Sun, 14 Aug 2016 10:21:10 +0000 (10:21 +0000)
committerEric Wong <e@80x24.org>
Sun, 14 Aug 2016 11:04:46 +0000 (11:04 +0000)
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
lib/PublicInbox/Hval.pm
lib/PublicInbox/View.pm

index 232a91c097f16c78ebc7fdb66e7a5bf03493887e..25fec10a0ea3095f5b81bce84cd220f3deddfa26 100644 (file)
@@ -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}. '/';
 
index 72496065d59fc49dba282428fee6885b1438dc2d..77acecda0dc39aa7ca3bedf675b6ce32078009f8 100644 (file)
@@ -31,7 +31,6 @@ sub new {
 
 sub new_msgid {
        my ($class, $msgid) = @_;
-       $msgid = mid_clean($msgid);
        $class->new($msgid, mid_escape($msgid));
 }
 
index 34f97c7696ebbd0110ed6be75aa2210c0e63f615..6f79f601d777d2c9e9f895acc48b6c365f47d904 100644 (file)
@@ -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);