diff options
author | Eric Wong <e@80x24.org> | 2015-09-03 03:00:28 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-09-03 03:06:00 +0000 |
commit | 43238d3688a51d98ce47151173aa7971e231a3bb (patch) | |
tree | b1fc31be8763eefcc2393d1fa44ad75581059fa1 /lib/PublicInbox/WWW.pm | |
parent | 793da75fbcb5a2c546b3d582f39761fff3d8292d (diff) | |
download | public-inbox-43238d3688a51d98ce47151173aa7971e231a3bb.tar.gz |
Provide a fallback for legacy SHA-1 messages, but do not advertise shorter URLs anymore for data portability concerns. This fixes a regression introduced in commit 81a9c1b476987d845b340ab9013d26cf4487cb9a ("search: disable Message-ID compression in Xapian") which ended up breaking thread-related endpoints for large Message-IDs, as lookups on the SHA-1 message no longer worked.
Diffstat (limited to 'lib/PublicInbox/WWW.pm')
-rw-r--r-- | lib/PublicInbox/WWW.pm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index 16fd16aa..11b54027 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -116,8 +116,18 @@ sub invalid_list { sub invalid_list_mid { my ($ctx, $listname, $mid) = @_; my $ret = invalid_list($ctx, $listname, $mid); - $ctx->{mid} = uri_unescape($mid) unless $ret; - $ret; + return $ret if $ret; + + $ctx->{mid} = $mid = uri_unescape($mid); + if ($mid =~ /\A[a-f0-9]{40}\z/) { + if ($mid = mid2blob($ctx)) { + require Email::Simple; + use PublicInbox::MID qw/mid_clean/; + $mid = Email::Simple->new($mid); + $ctx->{mid} = mid_clean($mid->header('Message-ID')); + } + } + undef; } # /$LISTNAME/new.atom -> Atom feed, includes replies |