-sub hdr_slow ($$$$) {
- my ($self, $xhdr, $header, $range) = @_;
-
- if (defined $range && $range =~ /\A<.+>\z/) { # Message-ID
- my $r = $self->art_lookup($range, 2);
- return $r unless ref $r;
- my ($n, $ng) = ($r->[0], $r->[5]);
- my $v = hdr_val($r, $header);
- hdr_mid_response($self, $xhdr, $ng, $n, $range, $v);
- } else { # numeric range
- $range = $self->{article} unless defined $range;
- my $r = get_range($self, $range);
- return $r unless ref $r;
- my ($beg, $end) = @$r;
- more($self, $xhdr ? r221 : r225);
- $self->long_response($beg, $end, sub {
- my ($i) = @_;
- $r = $self->art_lookup($$i, 2);
- return unless ref $r;
- defined($r = hdr_val($r, $header)) or return;
- more($self, "$$i $r");
- });
- }
-}
-