lib/PublicInbox/NNTP.pm | 19 +++++++++---------- diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 1f31b4a5baae9685653d9a9d67cdf0ecc1f4ce90..fca632e2d484c425a5b6f49af64b8f7f9b759d4c 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -646,6 +646,14 @@ long_step($self); # kick off! undef; } +sub hdr_msgid_range_i { + my ($self, $beg, $end) = @_; + my $r = $self->{ng}->mm->msg_range($beg, $end); + @$r or return; + more($self, join("\r\n", map { "$_->[0] <$_->[1]>" } @$r)); + 1; +} + sub hdr_message_id ($$$) { # optimize XHDR Message-ID [range] for slrnpull. my ($self, $xhdr, $range) = @_; @@ -657,17 +665,8 @@ } else { # numeric range $range = $self->{article} unless defined $range; my $r = get_range($self, $range); return $r unless ref $r; - my $mm = $self->{ng}->mm; - my ($beg, $end) = @$r; more($self, $xhdr ? r221 : r225); - long_response($self, sub { - my $r = $mm->msg_range($beg, $end); - @$r or return; - more($self, join("\r\n", map { - "$_->[0] <$_->[1]>" - } @$r)); - 1; - }); + long_response($self, \&hdr_msgid_range_i, @$r); } }