diff options
author | Eric Wong <e@80x24.org> | 2019-07-13 21:38:11 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-07-13 21:49:42 +0000 |
commit | aca2d958e5bf80d19d69f66d2c1ec6809fece29a (patch) | |
tree | 6249ff2170fd10456b1a43849046d5bd2190ed87 | |
parent | a090752ccc1bdbe5d90ec54dbecbb1a44f3f8091 (diff) | |
download | public-inbox-aca2d958e5bf80d19d69f66d2c1ec6809fece29a.tar.gz |
RFC3977 8.4.2 mandates the order of non-standard headers to be after the first seven standard headers/metadata; so "Xref:" must appear after "Lines:"|":lines". Additionally, non-required header names must be followed by ":full". Cc: Jonathan Corbet <corbet@lwn.net> Reported-by: Urs Janßen <E1hmKBw-0008Bq-8t@akw>
-rw-r--r-- | lib/PublicInbox/NNTP.pm | 5 | ||||
-rw-r--r-- | t/nntpd.t | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 0d2bc4f3..800ce926 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -29,8 +29,9 @@ use constant { use PublicInbox::Syscall qw(EPOLLIN EPOLLONESHOT); use Errno qw(EAGAIN); -my @OVERVIEW = qw(Subject From Date Message-ID References Xref); -my $OVERVIEW_FMT = join(":\r\n", @OVERVIEW, qw(Bytes Lines)) . ":\r\n"; +my @OVERVIEW = qw(Subject From Date Message-ID References); +my $OVERVIEW_FMT = join(":\r\n", @OVERVIEW, qw(Bytes Lines), '') . + "Xref:full\r\n"; my $LIST_HEADERS = join("\r\n", @OVERVIEW, qw(:bytes :lines Xref To Cc)) . "\r\n"; my $CAPABILITIES = <<""; @@ -101,6 +101,12 @@ EOF is_deeply([$n->group($group)], [ qw(0 1 1), $group ], 'GROUP works'); is_deeply($n->listgroup($group), [1], 'listgroup OK'); + { + my $expect = [ qw(Subject: From: Date: Message-ID: + References: Bytes: Lines: Xref:full) ]; + is_deeply($n->overview_fmt, $expect, + 'RFC3977 8.4.2 compliant LIST OVERVIEW.FMT'); + } SKIP: { $n->can('starttls') or skip('Net::NNTP too old to support STARTTLS', 2); |