diff options
author | Eric Wong <e@80x24.org> | 2015-09-19 02:03:33 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-09-19 04:18:39 +0000 |
commit | c6d9941e809041a6f6abaf218e2192b3ffa696ce (patch) | |
tree | 573b985e91726c4ae3f8e7934ef9f5099d57bbac /lib | |
parent | d096a47384c59441be69fed1e5aeacdf00ca9529 (diff) | |
download | public-inbox-c6d9941e809041a6f6abaf218e2192b3ffa696ce.tar.gz |
XOVER uses the current article if no range is given as stipulated in RFC 2980.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/NNTP.pm | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 7a735735..8275ef08 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -434,7 +434,7 @@ sub cmd_help ($) { '.' } -sub get_range ($;$) { +sub get_range ($$) { my ($self, $range) = @_; my $ng = $self->{ng} or return '412 no news group has been selected'; defined $range or return '420 No article(s) selected'; @@ -508,11 +508,7 @@ sub long_response ($$$$) { sub cmd_xhdr ($$;$) { my ($self, $header, $range) = @_; defined $self->{ng} or return '412 no news group currently selected'; - unless (defined $range) { - defined($range = $self->{article}) or - return '420 no current article has been selected'; - } - if ($range =~ /\A<(.+)>\z/) { # Message-ID + if (defined $range && $range =~ /\A<(.+)>\z/) { # Message-ID my $r = $self->art_lookup($range, 2); return $r unless ref $r; more($self, '221 Header follows'); @@ -521,6 +517,7 @@ sub cmd_xhdr ($$;$) { } '.'; } else { # numeric range + $range = $self->{article} unless defined $range; my $r = get_range($self, $range); return $r unless ref $r; my ($beg, $end) = @$r; @@ -537,6 +534,7 @@ sub cmd_xhdr ($$;$) { sub cmd_xover ($;$) { my ($self, $range) = @_; + $range = $self->{article} unless defined $range; my $r = get_range($self, $range); return $r unless ref $r; my ($beg, $end) = @$r; |