From: Eric Wong <e@80x24.org>
Date: Wed, 16 Jan 2019 04:51:28 +0000 (+0000)
Subject: nntp: header responses use CRLF consistently
X-Git-Tag: v1.2.0~405
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d66aa534a4a7506cfc5cfab49d1e09f8db8be3dd;p=public-inbox.git

nntp: header responses use CRLF consistently

Alpine is apparently stricter than other clients I've tried
w.r.t. using CRLF for headers.  So do the same thing we do for
bodies to ensure we only emit CRLFs and no bare LFs.

Reported-by: Wang Kang <i@scateu.me>
  https://public-inbox.org/meta/alpine.DEB.2.21.99.1901161043430.29788@la.scateu.me/
---

diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 623ffd35..63d5870b 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -515,6 +515,7 @@ sub set_art {
 sub _header ($) {
 	my $hdr = $_[0]->header_obj->as_string;
 	utf8::encode($hdr);
+	$hdr =~ s/(?<!\r)\n/\r\n/sg;
 	$hdr
 }