about summary refs log tree commit homepage
path: root/lib/PublicInbox/NNTP.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/NNTP.pm')
-rw-r--r--lib/PublicInbox/NNTP.pm11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 102ef42c..783c0076 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -432,12 +432,17 @@ sub set_nntp_headers ($$) {
                 $hdr->header_set('X-Alt-Message-ID', @alt);
         }
 
-        # clobber some
+        # clobber some existing headers
         my $ibx = $smsg->{-ibx};
         my $xref = xref($smsg->{nntp}, $ibx, $smsg->{num}, $mid);
         $hdr->header_set('Xref', $xref);
-        $xref =~ s/:[0-9]+//g;
-        $hdr->header_set('Newsgroups', (split(/ /, $xref, 2))[1]);
+
+        # RFC 5536 3.1.4
+        my $newsgroups = (split(/ /, $xref, 2))[1]; # drop server name
+        $newsgroups =~ s/:[0-9]+\b//g; # drop NNTP article numbers
+        $newsgroups =~ tr/ /,/;
+        $hdr->header_set('Newsgroups', $newsgroups);
+
         header_append($hdr, 'List-Post', "<mailto:$ibx->{-primary_address}>");
         if (my $url = $ibx->base_url) {
                 $mid = mid_escape($mid);