about summary refs log tree commit homepage
path: root/lib/PublicInbox/NNTP.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-12-21 08:00:07 +0000
committerEric Wong <e@80x24.org>2019-12-22 03:56:18 +0000
commitc608ab025c4351c820c97e0ed907647274c662a2 (patch)
tree7c3b9b51fe194bd146207c575f53bbeb9f8cafdf /lib/PublicInbox/NNTP.pm
parent61550976b8ff52ba3e621caa5b9c450bf34801ff (diff)
downloadpublic-inbox-c608ab025c4351c820c97e0ed907647274c662a2.tar.gz
Introduce xover_i, which does the same thing as the anonymous
sub it replaces.
Diffstat (limited to 'lib/PublicInbox/NNTP.pm')
-rw-r--r--lib/PublicInbox/NNTP.pm26
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index fca632e2..6845e872 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -863,6 +863,19 @@ sub cmd_over ($;$) {
         }
 }
 
+sub xover_i {
+        my ($self, $beg, $end) = @_;
+        my $ng = $self->{ng};
+        my $msgs = $ng->over->query_xover($$beg, $end);
+        my $nr = scalar @$msgs or return;
+
+        # OVERVIEW.FMT
+        more($self, join("\r\n", map {
+                over_line($self, $ng, $_->{num}, $_);
+                } @$msgs));
+        $$beg = $msgs->[-1]->{num} + 1;
+}
+
 sub cmd_xover ($;$) {
         my ($self, $range) = @_;
         $range = $self->{article} unless defined $range;
@@ -870,18 +883,7 @@ sub cmd_xover ($;$) {
         return $r unless ref $r;
         my ($beg, $end) = @$r;
         more($self, "224 Overview information follows for $$beg to $end");
-        my $over = $self->{ng}->over;
-        my $cur = $$beg;
-        long_response($self, sub {
-                my $msgs = $over->query_xover($cur, $end);
-                my $nr = scalar @$msgs or return;
-
-                # OVERVIEW.FMT
-                more($self, join("\r\n", map {
-                        over_line($self, $self->{ng}, $_->{num}, $_);
-                        } @$msgs));
-                $cur = $msgs->[-1]->{num} + 1;
-        });
+        long_response($self, \&xover_i, @$r);
 }
 
 sub compressed { undef }