From b25ee445c9c66d8e41b889196668bf2b26a54d53 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 22 Sep 2015 10:09:47 +0000 Subject: nntp: XHDR fixes for Message-ID lookups We'll require some modifications for HDR support, though. --- lib/PublicInbox/NNTP.pm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 1286b706..c8ef01e2 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -546,9 +546,10 @@ sub xhdr_message_id ($$) { # optimize XHDR Message-ID [range] for slrnpull. my $mm = $self->{ng}->mm; if (defined $range && $range =~ /\A<(.+)>\z/) { # Message-ID - my $n = $mm->num_for($range); + my $n = $mm->num_for($1); + return '430 No article with that message-id' unless $n; more($self, '221 Header follows'); - more($self, "<$range> <$range>") if defined $n; + more($self, "$range $range"); '.'; } else { # numeric range $range = $self->{article} unless defined $range; @@ -575,9 +576,9 @@ sub xhdr_xref ($$) { # optimize XHDR Xref [range] for rtin my $ng = $self->{ng}; my $mm = $ng->mm; if (defined $range && $range =~ /\A<(.+)>\z/) { # Message-ID - my $n = $mm->num_for($range); + my $n = $mm->num_for($1); more($self, '221 Header follows'); - more($self, "<$range> ".xref($ng, $n)) if defined $n; + more($self, "$range ".xref($ng, $n)) if defined $n; '.'; } else { # numeric range $range = $self->{article} unless defined $range; @@ -655,12 +656,12 @@ sub cmd_xhdr ($$;$) { sub xhdr_slow ($$$) { my ($self, $header, $range) = @_; - if (defined $range && $range =~ /\A<(.+)>\z/) { # Message-ID + if (defined $range && $range =~ /\A<.+>\z/) { # Message-ID my $r = $self->art_lookup($range, 2); return $r unless ref $r; more($self, '221 Header follows'); if (defined($r = xhdr($r, $header))) { - more($self, "<$range> $r"); + more($self, "$range $r"); } '.'; } else { # numeric range -- cgit v1.2.3-24-ge0c7