r224 => '224 Overview information follows (multi-line)',
r225 => '225 Headers follow (multi-line)',
r430 => '430 No article with that message-id',
r224 => '224 Overview information follows (multi-line)',
r225 => '225 Headers follow (multi-line)',
r430 => '430 No article with that message-id',
my $OVERVIEW_FMT = join(":\r\n", @OVERVIEW, qw(Bytes Lines)) . ":\r\n";
my $LIST_HEADERS = join("\r\n", @OVERVIEW,
qw(:bytes :lines Xref To Cc)) . "\r\n";
my $OVERVIEW_FMT = join(":\r\n", @OVERVIEW, qw(Bytes Lines)) . ":\r\n";
my $LIST_HEADERS = join("\r\n", @OVERVIEW,
qw(:bytes :lines Xref To Cc)) . "\r\n";
sub xref ($$$$) {
my ($self, $ng, $n, $mid) = @_;
sub xref ($$$$) {
my ($self, $ng, $n, $mid) = @_;
# num_for is pretty cheap and sometimes we'll lookup the existence
# of an article without getting even the OVER info. In other words,
# num_for is pretty cheap and sometimes we'll lookup the existence
# of an article without getting even the OVER info. In other words,
}
} elsif ($more) { # $self->{write_buf_size}:
# no recursion, schedule another call ASAP
}
} elsif ($more) { # $self->{write_buf_size}:
# no recursion, schedule another call ASAP
# Only set article number column if it's the current group
my $self_ng = $self->{ng};
$n = 0 if (!$self_ng || $self_ng ne $ng);
# Only set article number column if it's the current group
my $self_ng = $self->{ng};
$n = 0 if (!$self_ng || $self_ng ne $ng);
- more($self, over_line($n, $smsg));
+ more($self, over_line($self, $ng, $n, $smsg));
# Do not watch for readability if we have data in the queue,
# instead re-enable watching for readability when we can
# Do not watch for readability if we have data in the queue,
# instead re-enable watching for readability when we can
-sub watch_read {
- my ($self, $bool) = @_;
- my $rv = $self->SUPER::watch_read($bool);
- if ($bool && index($self->{rbuf}, "\n") >= 0) {
+sub check_read {
+ my ($self) = @_;
+ if (index($self->{rbuf}, "\n") >= 0) {
# Force another read if there is a pipelined request.
# We don't know if the socket has anything for us to read,
# and we must double-check again by the time the timer fires
# Force another read if there is a pipelined request.
# We don't know if the socket has anything for us to read,
# and we must double-check again by the time the timer fires