Article number is optional, but we need to update the
article number of the client connection if it was specified
(but not if it was given a Message-ID) as stipulated by
RFC 977
+sub set_art {
+ my ($self, $art) = @_;
+ $self->{article} = $art if defined $art && $art =~ /\A\d+\z/;
+}
+
+sub cmd_article ($;$) {
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 1);
return $r unless ref $r;
my ($n, $mid, $s) = @$r;
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 1);
return $r unless ref $r;
my ($n, $mid, $s) = @$r;
more($self, "220 $n <$mid> article retrieved - head and body follow");
do_more($self, header_str($s));
do_more($self, "\r\n");
simple_body_write($self, $s);
}
more($self, "220 $n <$mid> article retrieved - head and body follow");
do_more($self, header_str($s));
do_more($self, "\r\n");
simple_body_write($self, $s);
}
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 2);
return $r unless ref $r;
my ($n, $mid, $s) = @$r;
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 2);
return $r unless ref $r;
my ($n, $mid, $s) = @$r;
more($self, "221 $n <$mid> article retrieved - head follows");
do_more($self, header_str($s));
'.'
}
more($self, "221 $n <$mid> article retrieved - head follows");
do_more($self, header_str($s));
'.'
}
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 0);
return $r unless ref $r;
my ($n, $mid, $s) = @$r;
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 0);
return $r unless ref $r;
my ($n, $mid, $s) = @$r;
more($self, "222 $n <$mid> article retrieved - body follows");
simple_body_write($self, $s);
}
more($self, "222 $n <$mid> article retrieved - body follows");
simple_body_write($self, $s);
}
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 0);
return $r unless ref $r;
my ($n, $mid, undef) = @$r;
my ($self, $art) = @_;
my $r = $self->art_lookup($art, 0);
return $r unless ref $r;
my ($n, $mid, undef) = @$r;
"223 $n <$mid> article retrieved - request text separately";
}
"223 $n <$mid> article retrieved - request text separately";
}