Hi. nntpd generate wrong "Newsgoups:" header when message cross-posted to multiple groups. Currently, it write multiple groups separated with space, but rfc1036 chapter 2.1.3 says "... Multiple newsgroups may be specified, separated by a comma. ...". and Path: header too - rfc1036 chapter 2.1.6 says " ... The names may be separated by any punctuation character or characters (except "." which is considered part of the hostname). ..." Currently both headers separated as email-style with spaces,
Andrey Melnikov <temnota.am@gmail.com> wrote: > Hi. > > nntpd generate wrong "Newsgoups:" header when message cross-posted to > multiple groups. Currently, it write multiple groups separated with > space, but rfc1036 chapter 2.1.3 says "... Multiple newsgroups may be > specified, separated by a comma. ...". > and Path: header too - rfc1036 chapter 2.1.6 says " ... The names may > be separated by any punctuation character or characters (except "." > which is considered part of the hostname). ..." > Currently both headers separated as email-style with spaces, Thanks for the bug report. Does this break known clients or is it just something you happened to notice? I'm using RFC 5536 since it obsoletes 1036. Testing the following on news.public-inbox.org: ----------8<------- Subject: [PATCH] nntp: delimit Newsgroup: header with commas ...instead of spaces. This is specified in RFC 5536 3.1.4. Include references to RFC 1036, 5536 and 5537 in our docs while we're at it. Reported-by: Andrey Melnikov <temnota.am@gmail.com> Link: https://public-inbox.org/meta/CA+PODjpUN5Q4gBFQhAzUNuMasVEdmp9f=8Uo0Ej0mFumdSwi4w@mail.gmail.com/ --- Documentation/standards.perl | 3 +++ lib/PublicInbox/NNTP.pm | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Documentation/standards.perl b/Documentation/standards.perl index 0ac6cc52..1c56830e 100755 --- a/Documentation/standards.perl +++ b/Documentation/standards.perl @@ -25,6 +25,9 @@ EOF my $rfcs = [ 3977 => 'NNTP', 977 => 'NNTP (old)', + 1036 => 'Standard for Interchange of USENET Messages', + 5536 => 'Netnews Article Format', + 5537 => 'Netnews Architecture and Protocols', 6048 => 'NNTP additions to LIST command (TODO)', 8054 => 'NNTP compression', 4642 => 'NNTP TLS', 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);
ср, 4 нояб. 2020 г. в 01:56, Eric Wong <e@80x24.org>: > > Andrey Melnikov <temnota.am@gmail.com> wrote: > > Hi. > > > > nntpd generate wrong "Newsgoups:" header when message cross-posted to > > multiple groups. Currently, it write multiple groups separated with > > space, but rfc1036 chapter 2.1.3 says "... Multiple newsgroups may be > > specified, separated by a comma. ...". > > and Path: header too - rfc1036 chapter 2.1.6 says " ... The names may > > be separated by any punctuation character or characters (except "." > > which is considered part of the hostname). ..." > > Currently both headers separated as email-style with spaces, > > Thanks for the bug report. Does this break known clients or > is it just something you happened to notice? This break filtering on my leafnode. > I'm using RFC 5536 since it obsoletes 1036. > Testing the following on news.public-inbox.org: > > ----------8<------- > Subject: [PATCH] nntp: delimit Newsgroup: header with commas > > ...instead of spaces. This is specified in RFC 5536 3.1.4. > > Include references to RFC 1036, 5536 and 5537 in our docs while > we're at it. > > Reported-by: Andrey Melnikov <temnota.am@gmail.com> > Link: https://public-inbox.org/meta/CA+PODjpUN5Q4gBFQhAzUNuMasVEdmp9f=8Uo0Ej0mFumdSwi4w@mail.gmail.com/ > --- > Documentation/standards.perl | 3 +++ > lib/PublicInbox/NNTP.pm | 11 ++++++++--- > 2 files changed, 11 insertions(+), 3 deletions(-) > > diff --git a/Documentation/standards.perl b/Documentation/standards.perl > index 0ac6cc52..1c56830e 100755 > --- a/Documentation/standards.perl > +++ b/Documentation/standards.perl > @@ -25,6 +25,9 @@ EOF > my $rfcs = [ > 3977 => 'NNTP', > 977 => 'NNTP (old)', > + 1036 => 'Standard for Interchange of USENET Messages', > + 5536 => 'Netnews Article Format', > + 5537 => 'Netnews Architecture and Protocols', > 6048 => 'NNTP additions to LIST command (TODO)', > 8054 => 'NNTP compression', > 4642 => 'NNTP TLS', > 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); What about "Path:" header?
Andrey Melnikov <temnota.am@gmail.com> wrote: > This break filtering on my leafnode. OK, thanks for that info. > What about "Path:" header? Ah, oops; missed that. I put "y" there since I figured it wouldn't matter for leafnode (but only lightly tested it). Since we don't have any NNTP propagation path, I guess putting just server-name there is appropriate? (not yet deployed) diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 783c0076..cb095bca 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -415,10 +415,6 @@ sub set_nntp_headers ($$) { my ($hdr, $smsg) = @_; my ($mid) = $smsg->{mid}; - # why? leafnode requires a Path: header for some inexplicable - # reason. We'll fake the shortest one possible. - $hdr->header_set('Path', 'y'); - # leafnode (and maybe other NNTP clients) have trouble dealing # with v2 messages which have multiple Message-IDs (either due # to our own content-based dedupe or buggy git-send-email versions). @@ -438,11 +434,14 @@ sub set_nntp_headers ($$) { $hdr->header_set('Xref', $xref); # RFC 5536 3.1.4 - my $newsgroups = (split(/ /, $xref, 2))[1]; # drop server name + my ($server_name, $newsgroups) = split(/ /, $xref, 2); $newsgroups =~ s/:[0-9]+\b//g; # drop NNTP article numbers $newsgroups =~ tr/ /,/; $hdr->header_set('Newsgroups', $newsgroups); + # required for leafnode (RFC 5536 3.1.5) + $hdr->header_set('Path', $server_name); + header_append($hdr, 'List-Post', "<mailto:$ibx->{-primary_address}>"); if (my $url = $ibx->base_url) { $mid = mid_escape($mid);
Andrey Melnikov <temnota.am@gmail.com> wrote: (re-adding meta@public-inbox.org to Cc) > ср, 4 нояб. 2020 г. в 02:59, Eric Wong <e@80x24.org>: > > > > Andrey Melnikov <temnota.am@gmail.com> wrote: > > > This break filtering on my leafnode. > > > > OK, thanks for that info. > > > > > What about "Path:" header? > > > > Ah, oops; missed that. I put "y" there since I figured it > > wouldn't matter for leafnode (but only lightly tested it). > > > > Since we don't have any NNTP propagation path, I guess putting > > just server-name there is appropriate? (not yet deployed) > Yes. Leafnode only checks presence on Path: header. OK, that matches my limited, one-off experience with it. > > + # required for leafnode (RFC 5536 3.1.5) > > + $hdr->header_set('Path', $server_name); > I think > $hdr->header_set('Path', $server_name . '!not-for-mail'); > more RFC conform. I guess... Though it seems like blindly following stuff for historical reasons, since I'm not seeing a great explanation of "not-for-mail", other than it's "common" in RFC 5536/5537... "not-for-mail" could be a valid hostname, after all. I suppose a few extra bytes won't hurt, too much :x ----------8<-------- Subject: [PATCH] nntp: attempt RFC 5536 3.1.5-conformant Path: headers Perhaps some NNTP clients would be unhappy with the old value "y". So use a bit more bandwidth+space to use the server-name and historical "!not-for-mail" tail-entry to better conform to a published RFC. Reported-by: Andrey Melnikov <temnota.am@gmail.com> --- lib/PublicInbox/NNTP.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 783c0076..2f821fa6 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -415,10 +415,6 @@ sub set_nntp_headers ($$) { my ($hdr, $smsg) = @_; my ($mid) = $smsg->{mid}; - # why? leafnode requires a Path: header for some inexplicable - # reason. We'll fake the shortest one possible. - $hdr->header_set('Path', 'y'); - # leafnode (and maybe other NNTP clients) have trouble dealing # with v2 messages which have multiple Message-IDs (either due # to our own content-based dedupe or buggy git-send-email versions). @@ -438,11 +434,15 @@ sub set_nntp_headers ($$) { $hdr->header_set('Xref', $xref); # RFC 5536 3.1.4 - my $newsgroups = (split(/ /, $xref, 2))[1]; # drop server name + my ($server_name, $newsgroups) = split(/ /, $xref, 2); $newsgroups =~ s/:[0-9]+\b//g; # drop NNTP article numbers $newsgroups =~ tr/ /,/; $hdr->header_set('Newsgroups', $newsgroups); + # *something* here is required for leafnode, try to follow + # RFC 5536 3.1.5... + $hdr->header_set('Path', $server_name . '!not-for-mail'); + header_append($hdr, 'List-Post', "<mailto:$ibx->{-primary_address}>"); if (my $url = $ibx->base_url) { $mid = mid_escape($mid);
ср, 4 нояб. 2020 г. в 13:44, Eric Wong <e@80x24.org>: > > Andrey Melnikov <temnota.am@gmail.com> wrote: > > (re-adding meta@public-inbox.org to Cc) > > > ср, 4 нояб. 2020 г. в 02:59, Eric Wong <e@80x24.org>: > > > > > > Andrey Melnikov <temnota.am@gmail.com> wrote: > > > > This break filtering on my leafnode. > > > > > > OK, thanks for that info. > > > > > > > What about "Path:" header? > > > > > > Ah, oops; missed that. I put "y" there since I figured it > > > wouldn't matter for leafnode (but only lightly tested it). > > > > > > Since we don't have any NNTP propagation path, I guess putting > > > just server-name there is appropriate? (not yet deployed) > > Yes. Leafnode only checks presence on Path: header. > > OK, that matches my limited, one-off experience with it. > > > > + # required for leafnode (RFC 5536 3.1.5) > > > + $hdr->header_set('Path', $server_name); > > I think > > $hdr->header_set('Path', $server_name . '!not-for-mail'); > > more RFC conform. > > I guess... Though it seems like blindly following stuff for > historical reasons, since I'm not seeing a great explanation of > "not-for-mail", other than it's "common" in RFC 5536/5537... > "not-for-mail" could be a valid hostname, after all. > > I suppose a few extra bytes won't hurt, too much :x Current: Path: y org.linuxdriverproject.driverdev-devel:35214 org.kernel.vger.linux-devicetree:433117 org.kernel.vger.linux-kernel:3765410 org.kernel.vger.linux-media:192196 and new: Path: nntp.lore.kernel.org!not.for.mail save more extra bytes... Hehe... yet another cosmetic thing: $ telnet nntp.lore.kernel.org 119 Trying 54.189.247.149... Connected to korg-lkml-1-news-lb-839eef9f3a4cef4e.elb.us-west-2.amazonaws.com. Escape character is '^]'. 201 nntp://nntp.lore.kernel.org ready - post via email quit Connection closed by foreign host. 'nntp://nntp.lore.kernel.org' is not a node name per RFC... But this is a configuration problem on nntp.lore.kernel.org side. > ----------8<-------- > Subject: [PATCH] nntp: attempt RFC 5536 3.1.5-conformant Path: headers > > Perhaps some NNTP clients would be unhappy with the old value > "y". So use a bit more bandwidth+space to use the server-name > and historical "!not-for-mail" tail-entry to better conform to > a published RFC. > > Reported-by: Andrey Melnikov <temnota.am@gmail.com> > --- > lib/PublicInbox/NNTP.pm | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm > index 783c0076..2f821fa6 100644 > --- a/lib/PublicInbox/NNTP.pm > +++ b/lib/PublicInbox/NNTP.pm > @@ -415,10 +415,6 @@ sub set_nntp_headers ($$) { > my ($hdr, $smsg) = @_; > my ($mid) = $smsg->{mid}; > > - # why? leafnode requires a Path: header for some inexplicable > - # reason. We'll fake the shortest one possible. > - $hdr->header_set('Path', 'y'); > - > # leafnode (and maybe other NNTP clients) have trouble dealing > # with v2 messages which have multiple Message-IDs (either due > # to our own content-based dedupe or buggy git-send-email versions). > @@ -438,11 +434,15 @@ sub set_nntp_headers ($$) { > $hdr->header_set('Xref', $xref); > > # RFC 5536 3.1.4 > - my $newsgroups = (split(/ /, $xref, 2))[1]; # drop server name > + my ($server_name, $newsgroups) = split(/ /, $xref, 2); > $newsgroups =~ s/:[0-9]+\b//g; # drop NNTP article numbers > $newsgroups =~ tr/ /,/; > $hdr->header_set('Newsgroups', $newsgroups); > > + # *something* here is required for leafnode, try to follow > + # RFC 5536 3.1.5... > + $hdr->header_set('Path', $server_name . '!not-for-mail'); > + > header_append($hdr, 'List-Post', "<mailto:$ibx->{-primary_address}>"); > if (my $url = $ibx->base_url) { > $mid = mid_escape($mid);
Andrey Melnikov <temnota.am@gmail.com> wrote: > ср, 4 нояб. 2020 г. в 13:44, Eric Wong <e@80x24.org>: > > I suppose a few extra bytes won't hurt, too much :x > > Current: > Path: y > org.linuxdriverproject.driverdev-devel:35214 > org.kernel.vger.linux-devicetree:433117 > org.kernel.vger.linux-kernel:3765410 > org.kernel.vger.linux-media:192196 Huh? From what I can see, the last 4 lines are part of the Xref: header, which is unchanged atm (I plan on speeding it up with extindex, though). > and new: > Path: nntp.lore.kernel.org!not.for.mail > save more extra bytes... > > Hehe... yet another cosmetic thing: > $ telnet nntp.lore.kernel.org 119 > Trying 54.189.247.149... > Connected to korg-lkml-1-news-lb-839eef9f3a4cef4e.elb.us-west-2.amazonaws.com. > Escape character is '^]'. > 201 nntp://nntp.lore.kernel.org ready - post via email > quit > Connection closed by foreign host. > > 'nntp://nntp.lore.kernel.org' is not a node name per RFC... But this > is a configuration problem on nntp.lore.kernel.org side. You can notify helpdesk@kernel.org to get it fixed. Though I suppose the public-inbox code could warn or extract the hostname out of it. (NNTPS support would be nice, but maybe OpenSSL or O::Socket::SSL on RHEL/CentOS 8 is too old)
ср, 4 нояб. 2020 г. в 22:47, Eric Wong <e@80x24.org>: > > Andrey Melnikov <temnota.am@gmail.com> wrote: > > ср, 4 нояб. 2020 г. в 13:44, Eric Wong <e@80x24.org>: > > > I suppose a few extra bytes won't hurt, too much :x > > > > Current: > > Path: y > > org.linuxdriverproject.driverdev-devel:35214 > > org.kernel.vger.linux-devicetree:433117 > > org.kernel.vger.linux-kernel:3765410 > > org.kernel.vger.linux-media:192196 > > Huh? From what I can see, the last 4 lines are part of the > Xref: header, which is unchanged atm (I plan on speeding it up > with extindex, though). Yeah, leafnode rewrite Xref: header.. -- raw -- Sender: "devel" <driverdev-devel-bounces@linuxdriverproject.org> Path: y Xref: nntp://nntp.lore.kernel.org org.linuxdriverproject.driverdev-devel:35265 org.kernel.vger.linux-devicetree:433316 org.kernel.vger.linux-kernel:3766059 org.kernel.vger.linux-mmc:59564 org.kernel.vger.linux-wireless:204883 org.kernel.vger.netdev:733193 Newsgroups: org.linuxdriverproject.driverdev-devel org.kernel.vger.linux-devicetree org.kernel.vger.linux-kernel org.kernel.vger.linux-mmc org.kernel.vger.linux-wireless org.kernel.vger.netdev Archived-At: <https://lore.kernel.org/driverdev-devel/20201104191554.GA3972736@bogus/> List-Archive: <https://lore.kernel.org/driverdev-devel/> -- on disk -- Sender: "devel" <driverdev-devel-bounces@linuxdriverproject.org> Path: y org.linuxdriverproject.driverdev-devel:35265 org.kernel.vger.linux-devicetree:433316 org.kernel.vger.linux-kernel:3766059 org.kernel.vger.linux-mmc:59564 org.kernel.vger.linux-wireless:204883 org.kernel.vger.netdev:733193 Newsgroups: org.linuxdriverproject.driverdev-devel org.kernel.vger.linux-devicetree org.kernel.vger.linux-kernel org.kernel.vger.linux-mmc org.kernel.vger.linux-wireless org.kernel.vger.netdev Archived-At: <https://lore.kernel.org/driverdev-devel/20201104191554.GA3972736@bogus/> List-Archive: <https://lore.kernel.org/driverdev-devel/> Xref: news.localnet org.linuxdriverproject.driverdev-devel:4323 --- Haha. It simply does not expect folded multiline Xref: header. And generate by itself a new (unfolded, separated by space) header when storing article on disk. Is really Newsgroups: & Xref: headers need folding? > > and new: > > Path: nntp.lore.kernel.org!not.for.mail > > save more extra bytes... > > > > Hehe... yet another cosmetic thing: > > $ telnet nntp.lore.kernel.org 119 > > Trying 54.189.247.149... > > Connected to korg-lkml-1-news-lb-839eef9f3a4cef4e.elb.us-west-2.amazonaws.com. > > Escape character is '^]'. > > 201 nntp://nntp.lore.kernel.org ready - post via email > > quit > > Connection closed by foreign host. > > > > 'nntp://nntp.lore.kernel.org' is not a node name per RFC... But this > > is a configuration problem on nntp.lore.kernel.org side. > > You can notify helpdesk@kernel.org to get it fixed. This is cosmetics. nntp readers do not use this hostname. > Though I suppose the public-inbox code could warn or extract the > hostname out of it. > > (NNTPS support would be nice, but maybe OpenSSL or O::Socket::SSL > on RHEL/CentOS 8 is too old)
Andrey Melnikov <temnota.am@gmail.com> wrote: > ????, 4 ????????. 2020 ??. ?? 22:47, Eric Wong <e@80x24.org>: > > > > Andrey Melnikov <temnota.am@gmail.com> wrote: > > > ????, 4 ????????. 2020 ??. ?? 13:44, Eric Wong <e@80x24.org>: > > > > I suppose a few extra bytes won't hurt, too much :x > > > > > > Current: > > > Path: y > > > org.linuxdriverproject.driverdev-devel:35214 > > > org.kernel.vger.linux-devicetree:433117 > > > org.kernel.vger.linux-kernel:3765410 > > > org.kernel.vger.linux-media:192196 > > > > Huh? From what I can see, the last 4 lines are part of the > > Xref: header, which is unchanged atm (I plan on speeding it up > > with extindex, though). > > Yeah, leafnode rewrite Xref: header.. > -- raw -- > Sender: "devel" <driverdev-devel-bounces@linuxdriverproject.org> > Path: y > Xref: nntp://nntp.lore.kernel.org > org.linuxdriverproject.driverdev-devel:35265 > org.kernel.vger.linux-devicetree:433316 > org.kernel.vger.linux-kernel:3766059 > org.kernel.vger.linux-mmc:59564 > org.kernel.vger.linux-wireless:204883 > org.kernel.vger.netdev:733193 > Newsgroups: org.linuxdriverproject.driverdev-devel > org.kernel.vger.linux-devicetree > org.kernel.vger.linux-kernel org.kernel.vger.linux-mmc > org.kernel.vger.linux-wireless org.kernel.vger.netdev > Archived-At: <https://lore.kernel.org/driverdev-devel/20201104191554.GA3972736@bogus/> > List-Archive: <https://lore.kernel.org/driverdev-devel/> > -- on disk -- > Sender: "devel" <driverdev-devel-bounces@linuxdriverproject.org> > Path: y > org.linuxdriverproject.driverdev-devel:35265 > org.kernel.vger.linux-devicetree:433316 > org.kernel.vger.linux-kernel:3766059 > org.kernel.vger.linux-mmc:59564 > org.kernel.vger.linux-wireless:204883 > org.kernel.vger.netdev:733193 > Newsgroups: org.linuxdriverproject.driverdev-devel > org.kernel.vger.linux-devicetree > org.kernel.vger.linux-kernel org.kernel.vger.linux-mmc > org.kernel.vger.linux-wireless org.kernel.vger.netdev > Archived-At: <https://lore.kernel.org/driverdev-devel/20201104191554.GA3972736@bogus/> > List-Archive: <https://lore.kernel.org/driverdev-devel/> > Xref: news.localnet org.linuxdriverproject.driverdev-devel:4323 > --- > Haha. It simply does not expect folded multiline Xref: header. And > generate by itself a new (unfolded, separated by space) header when > storing article on disk. > Is really Newsgroups: & Xref: headers need folding? Nope, but currently PublicInbox::Eml folds by default (and Email::MIME/Email::Simple did in ->as_string, too). I didn't expect clients to have problems with folded lines since Received: and Cc: are often folded, anyways. Does leafnode struggle with those headers? Or just Newsgroups/Xref? We may need a separate API method for setting NNTP-only headers to appease leafnode... > > > > and new: > > > Path: nntp.lore.kernel.org!not.for.mail > > > save more extra bytes... > > > > > > Hehe... yet another cosmetic thing: > > > $ telnet nntp.lore.kernel.org 119 > > > Trying 54.189.247.149... > > > Connected to korg-lkml-1-news-lb-839eef9f3a4cef4e.elb.us-west-2.amazonaws.com. > > > Escape character is '^]'. > > > 201 nntp://nntp.lore.kernel.org ready - post via email > > > quit > > > Connection closed by foreign host. > > > > > > 'nntp://nntp.lore.kernel.org' is not a node name per RFC... But this > > > is a configuration problem on nntp.lore.kernel.org side. > > > > You can notify helpdesk@kernel.org to get it fixed. > > This is cosmetics. nntp readers do not use this hostname. It may be nice to extract hostname from URI, anyways, since it should be possible to advertise NNTPS endpoint in the WWW UI.
чт, 5 нояб. 2020 г. в 10:50, Eric Wong <e@80x24.org>: > [...] > > Haha. It simply does not expect folded multiline Xref: header. And > > generate by itself a new (unfolded, separated by space) header when > > storing article on disk. > > Is really Newsgroups: & Xref: headers need folding? > > Nope, but currently PublicInbox::Eml folds by default > (and Email::MIME/Email::Simple did in ->as_string, too). > > I didn't expect clients to have problems with folded lines since > Received: and Cc: are often folded, anyways. > > Does leafnode struggle with those headers? Or just Newsgroups/Xref? There are two versions of leafnode - leafnode1 (1.11.11) and leafnode2 (2.0.0.alpha20140727b). The first version correctly parses headers (it knows about folding), the second version - not. At least Xref: is affected. Newsgroups: header is expected to be folded. > We may need a separate API method for setting NNTP-only headers > to appease leafnode... Or write in docs a big fat warning about using leafnode2. > > > > and new: > > > > Path: nntp.lore.kernel.org!not.for.mail > > > > save more extra bytes... > > > > > > > > Hehe... yet another cosmetic thing: > > > > $ telnet nntp.lore.kernel.org 119 > > > > Trying 54.189.247.149... > > > > Connected to korg-lkml-1-news-lb-839eef9f3a4cef4e.elb.us-west-2.amazonaws.com. > > > > Escape character is '^]'. > > > > 201 nntp://nntp.lore.kernel.org ready - post via email > > > > quit > > > > Connection closed by foreign host. > > > > > > > > 'nntp://nntp.lore.kernel.org' is not a node name per RFC... But this > > > > is a configuration problem on nntp.lore.kernel.org side. > > > > > > You can notify helpdesk@kernel.org to get it fixed. > > > > This is cosmetics. nntp readers do not use this hostname. > > It may be nice to extract hostname from URI, anyways, since it > should be possible to advertise NNTPS endpoint in the WWW UI. =~ s|[^:]+://||; ?