github InterNetNews/inn 2.4.0
INN 2.4.0

latest releases: 2.7.2, 2.7.2rc1, 2.7.1...
2 years ago

2003-05-06
Full changes and diff from previous release

Upgrading from 2.3 to 2.4

The following changes require your full attention because a manual intervention may be needed:

  • The inn.conf parser has changed between INN 2.3 and 2.4. Due to that change, options in inn.conf that contain whitespace or a few other special characters must be quoted with double quotes, and empty parameters (parameters with no value) are not allowed. INN 2.4 comes with a script, innupgrade, run automatically during make update, that will attempt to fix any problems that it finds with your inn.conf file, saving the original as inn.conf.OLD.
    This change is the beginning of standardization of parsing and syntax across all of INN's configuration files.

  • The history subsystem now has a standard API that allows other backends to be used. Because of this, you now need to specify the history method in inn.conf. Adding:
    hismethod: hisv6
    will tell INN to use the same history backend as was used in previous versions. innupgrade should take care of this for you.

  • ovdb is known to have some locking and timing issues related to how nnrpd shuts down (or fails to shut down) the overview databases. If you have stability problems with ovdb, try setting readserver to true in ovdb.conf. This will funnel all ovdb reads through a single process with a cleaner interface to the underlying Berkeley DB database.

  • If you use Perl authentication for nnrpd (if nnrpdperlauth in inn.conf is true), there have been major changes. See "Changes to Perl Authentication Support for nnrpd" in doc/hook-perl for details.

  • Similarly, if you use Python authentication for nnrpd (if nnrpdpythonauth in inn.conf is true), there have been major changes. See "Changes to Python Authentication and Access Control Support for nnrpd" in doc/hook-python for details.

  • If you use send-uucp, it has been completely rewritten and now takes a configuration file to specify its behavior. See its man page for more information. If you use sendbatch, it is no longer included in INN since the new send-uucp can handle all of the same functionality.

  • The wildmat API has been renamed (to uwildmat and friends; see uwildmat(3) for the interfaces) to distinguish it from Rich $alz's original version, since it now supports UTF-8. This may require changes in other software packages that link against INN's libraries.

If you are upgrading from a version prior to INN 2.3, see also upgrades instructions from 2.2 to 2.3.

Highlights

  • nnrpd now handles arbitrarily long lines in POST and IHAVE; administrators who want to limit the length of lines in locally posted articles will need to add this to their local filters instead.

  • nnrpd no longer handles the poorly-specified RFC 977 optional fourth argument to the NEWGROUPS command specifying the "distributions" that the command was supposed to apply to.
    Clients that use that argument will break. There are not believed to be any such clients, and it's easy enough to just filter the returned list of newsgroups (which is generally fairly short) to achieve the same results.

  • nnrpd no longer accepts UTC as a synonym for GMT for NEWGROUPS or NEWNEWS. This usage was never portable, and was rejected by the NNTP working group. It is being removed now in the hope that it will be caught before anyone starts to rely on it.

  • Two configure options have changed names: --with-tmp-path is now --with-tmp-dir, and --with-largefiles is now --enable-largefiles, to improve consistency and better match the autoconf option guidelines.

Bug Fixes

  • All of the applicable bug fixes from the INN 2.3 STABLE series are also included in INN 2.4.

  • Several other, more minor protocol issues have been fixed: connections rejected due to the connection rate limiting in innd receive 400 replies instead of 504 or 505, and ARTICLE without an argument will always either retrieve the current article or return a 423 error, never advance the current article number to the next valid article.
    See doc/compliance-nntp for all of the known issues with INN's compliance with the current NNTP draft.

New Features

  • IPv6 support has been added, disabled by default. If you have IPv6 connectivity, build with --enable-ipv6 to try it. There are no known bugs, but please report any problems you find (or even successes, if you use an unusual platform). There are a few changes of interest; further information is available in doc/IPv6-info.

  • The tradindexed overview method has been completely rewritten and should be considerably more robust in the face of system crashes. A new utility, tdx-util, is provided to examine the contents of the overview database, repair inconsistencies, and rebuild the overview for particular groups from a tradspool news spool. See tdx-util(8) for more details.

  • The Perl and Python authentication hooks for readers have been extensively overhauled and integrated better with readers.conf. See the Changes sections in doc/hook-perl and doc/hook-python for more details.

  • nnrpd now optionally supports article injection via IHAVE, see readers.conf(5). Any articles injected this way must have Date, From, Message-ID, Newsgroups, Path, and Subject header fields. X-Trace and X-Complaints-To header fields will be added if the appropriate options are set in readers.conf, but other header fields will not be modified/inserted (e.g. NNTP-Posting-Host, NNTP-Posting-Date, Organization, Lines, Cc, Bcc, and To header fields).

  • innfeed supports a new peer parameter, backlog-feed-first, that if set to true feeds any backlog to a peer before new articles, see innfeed.conf(5). When used in combination with max-connections set to 1, this can be used to enforce in-order delivery of messages to a peer that is doing Xref slaving, avoiding cases where a higher-numbered message is received before a lower-numbered message in the same group.

  • All accesses to the history file for all parts of INN now go through a generic API like the storage and overview subsystems do. This will eventually allow new history implementations to be dropped in without affecting the rest of INN, and will significantly improve the encapsulation of the history subsystem. See the libinnhist(3) man page for the details of the interface.

  • INN now uses a new parser for the inn.conf file. This means that parameters containing whitespace or other special characters must now be quoted; see inn.conf(5). It fixes the long-standing bug that certain values must be included in inn.conf even if using the defaults for the use of shell or Perl scripts, and it will serve as the basis for standardizing and cleaning up the configuration file parsing in other parts of INN. innupgrade is run during make update and should convert an existing inn.conf file for you.

  • send-uucp has been replaced by a completely rewritten version from Marco d'Itri, Edvard Tuinder, and Miquel van Smoorenburg, which uses a configuration file that specifies batch sizes, compression methods, and hours during which batches should be generated. The old sendbatch script has been retired, since send-uucp can now handle everything that it did.

  • Variables can now be used in the newsfeeds file to make it easier to specify many similar feeds or feed patterns. See the newsfeeds(5) man page for details.

  • Local connections to INN support a new special mode, MODE CANCEL, that allows efficient batch cancellation of messages. This is intended to be the preferred interface for external spam and abuse filters like NoCeM. See "CANCEL FEEDS" in innd(8) for details.

  • Two new options, nfsreader and nfswriter, have been added to inn.conf to aid in building NFS based shared reader/writer platforms. On the writer server, configure nfswriter to true and on all of the readers, configure nfsreader to true; these options add calls to force data out to the NFS server and force it to be read directly from the NFS server at the appropriate moments. Note that it has only been tested on Solaris 8, using CNFS as the storage mechanism and tradindexed as the overview method.

  • A new option, tradindexedmmap, has been added to inn.conf. If set to true (the default), then the tradindexed overview method will use mmap() to access its overview data (in 2.3 you couldn't control this; it always used mmap).

  • Thanks to code contributed by CMU, innfeed can now feed an IMAP server as well as other NNTP servers. See the man page for innfeed(8) for more information.

  • An authenticator, auth_smb, that checks a username and password against a remote Samba server is now included. See auth_smb(8) for details.

  • The wildmat functions in INN now support UTF-8, in a way that should allow them to still work with most simple 8-bit character sets in widespread use. As part of this change, some additional wildmat interfaces are now available and the names have changed (to uwildmat, where u is for Unicode). See uwildmat(3) for the details.

  • The interface between external authenticators and nnrpd is now properly documented, in doc/external-auth. A library implementing this interface in C is provided, which should make it easier to write additional authenticators resolvers. See libauth(3) for details, and any of the existing programs in authprogs/ for examples.

  • INN now checks to ensure that the configured temporary directory is not world-writeable. Additionally, most (if not all) of the temporary file creation in INN now uses functions that create temporary files properly and safely.

Don't miss a new inn release

NewReleases is sending notifications on new releases.