github InterNetNews/inn 2.7.1
INN 2.7.1

13 months ago

2023-04-16
Full changes and diff from previous release

Bug Fixes

  • pullnews now detects a socket timeout while downloading articles from a remote peer. The download gracefully stops, and another attempt can be automatically made according to the setting given with the -t flag. Thanks to Jesse Rehmer for the bug report.

  • Fixed the generation and the handling of storage tokens on wrapped CNFS buffers, thanks to bug reports from Kamil Jonca:

    • Duplicate entries were returned by makehistory on fully wrapped cyclic buffers (the first article of the cyclic buffer appeared twice in the output).

    • The first article of a fully wrapped cyclic buffer was removed too soon from history (expire wrongly thought its storage token was no longer existing after a wrap).

    • The first article of the previous cycle number of a cyclic buffer containing articles from two different cycle numbers was wrongly considered by makehistory to belong to the current cycle number.

  • innd no longer dies when a newsfeeds entry has an unexpected trailing whitespace.

  • The size of duplicated articles was counted twice in totals, average article sizes and graphs by innreport, when parsing innd checkpoints. Thanks to Hauke Lampe for the patch to count it only once.

  • Improved the speed of article searches with HDR, LAST, NEXT, and XPAT commands when there is a (huge) gap in article numbers. On newsgroups with several millions of consecutive missing articles (which is a rare situation), these commands could take several seconds to run.

  • Incoming articles in newsgroups that have exceeded the maximum number of articles they can contain (2^31-1) are now correctly rejected. INN was otherwise happily accepting them but either numbers returned in NNTP responses were not right, or some news clients choked when receiving unexpected large article numbers. (The current version of the NNTP protocol only allows article numbers up to 2^31-1.)

  • Fixed the renumbering of reported low water marks for empty newsgroups in active after overview expiration, when using the ovsqlite method. They were set to 1 for empty newsgroups whereas they were not supposed to decrease. (These reported low water marks regained their expected values during the next overview expiration, provided that the newsgroup was no longer empty.)

  • The reported high water mark of empty newsgroups is now correctly set to one less than the reported low water mark in overview data. (Previously, the reported low water mark was set to one more than the reported high water mark.)

  • Fixed the output of the ctlinnd feedinfo '' command that was returning information only for the first site, and the output of the ctlinnd name channel command that was returning partial information for the requested channel.

  • The build of external programs which include inn/storage.h was failing because of the unexpected inclusion of config.h in one of the included headers. Also, a few Autoconf results were not correctly made available to external programs. This is now fixed.

  • Fixed the build on systems whose default shell does not completely meet the Posix standard. A few build scripts were run with the default shell instead of the one found by Autoconf and afterwards used for INN.

New Features

  • Added a new groupexactcount parameter in readers.conf to force nnrpd to report the exact number of still existing articles in newsgroups instead of an estimated count. When the estimated number of articles is strictly below groupexactcount (set to 5 by default), nnrpd now recounts them and reports the actual value (articles that have been cancelled or overwritten in self-expiring CNFS buffers may otherwise still be counted in the estimate). News clients will then be directly aware of empty newsgroups; they would otherwise have tried to retrieve possible articles, to finally not show anything to the user.

  • Programs sending mails now include, when appropriate, an Auto-Submitted header field in the message headers (either set to auto-generated or auto-replied, following the recommendation in RFC 3834). Thanks to Harald Dunkel for this suggestion which will for instance help to avoid unnecessary vacation replies.

  • Added a new -a option to innmail to specify additional header fields to add in the headers of messages. This is notably used to internally support the addition of the Auto-Submitted header field in outgoing mails.

  • Added new ovsqlite-util program to perform some basic consistency checks and dump operations on an overview database using the ovsqlite method. More checks and features will be added in future releases. You'll need the DBI Perl module with the DBD::SQLite driver installed on your system to use this program.

  • Added TLS support in pullnews for connections to upstream servers configured in pullnews.marks, and to the downstream server in the existing -s flag. A port can now also be specified for connections to upstream servers (it was already possible for the downstream server only).

  • Added a new -L option to pullnews to specify the largest wanted article size in bytes. Articles whose size exceeds that value will no longer be downloaded by pullnews.

  • Customizing the domain part of Message-IDs generated by nnrpd and the server name indicated in Injection-Info header fields is now easier: the domain parameter in the access blocks of readers.conf can be directly used (without needing to set virtualhost as it was previously the case).

  • If the domain parameter is set in inn.conf or in a readers.conf access block, and has invalid characters, or if the fully qualified domain name (FQDN) of the news server has invalid characters when domain is unset, a fatal error is now reported at startup. It is a basic configuration error which otherwise leads to the generation of invalid article Message-IDs.

  • Use standard daemon(3) C function, when available, to daemonize innd, nnrpd, ovdb_server and ovsqlite-server instead of an INN-specific function.

Don't miss a new inn release

NewReleases is sending notifications on new releases.