From: Eric Wong (Contractor, The Linux Foundation) <e@80x24.org>
Date: Thu, 29 Mar 2018 09:57:46 +0000 (+0000)
Subject: lookup by Message-ID favors the "primary" one
X-Git-Tag: v1.1.0-pre1~113
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d8e714970bbdf130568e17c114e747b5c3464d19;p=public-inbox.git

lookup by Message-ID favors the "primary" one

The Message-ID mapped to an NNTP article number is stronger,
so we will favor that for attachment lookups.
---

diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm
index 47b86309..4c7305f9 100644
--- a/lib/PublicInbox/Inbox.pm
+++ b/lib/PublicInbox/Inbox.pm
@@ -298,9 +298,15 @@ sub msg_by_mid ($$;$) {
 	my $srch = search($self) or
 			return msg_by_path($self, mid2path($mid), $ref);
 	my $smsg;
-	$srch->retry_reopen(sub {
-		$smsg = $srch->lookup_skeleton($mid) and $smsg->load_expand;
-	});
+	# favor the Message-ID we used for the NNTP article number:
+	if (my $mm = mm($self)) {
+		my $num = $mm->num_for($mid);
+		$smsg = $srch->lookup_article($num);
+	} else {
+		$smsg = $srch->retry_reopen(sub {
+			$srch->lookup_skeleton($mid) and $smsg->load_expand;
+		});
+	}
 	$smsg ? msg_by_smsg($self, $smsg, $ref) : undef;
 }