This directory contains unsupported contributions to INN.  Most of these
programs are of interest to a limited set of sites, require some manual
modifications to make work, and/or are separately maintained independent
of INN.  Programs in here may or may not have been tested on the latest
version of INN, so keep that in mind when trying them out.  The INN
developers may not be able to answer bug reports for these utilities; it's
best to send them to the original author.

Volunteers who would like to take particularly useful applications in this
directory and make them suitable for inclusion in INN proper are heartily
encouraged, but discuss this on inn-workers@isc.org.  Sometimes there's a
reason why this hasn't already been done or something specific that's
needed before they can be included.

Type "make <program>" to build any of the following programs and then copy
the binary to somewhere on your PATH to use it.  For details on what each
program does, see below, as well as the comments at the beginning of each
file (if any).

In addition to these files, also see the contrib section of the INN FTP
site at <ftp://ftp.isc.org/isc/inn/contrib/> for more software designed
to work with INN.

                        -------------------------

archivegz

    A compressing version of archive, writing out .gz files instead of
    plain text files.  May not work with the storage API without some
    changes to use sm.

backupfeed

    Another version of suck or pullnews that downloads posts from a remote
    news server and offers them to the local news server.

backlogstat

    Prints informations about the current state of innfeed's backlog, if
    any.

cleannewsgroups

    Performs various cleanups on the newsgroups file.

delayer

    Sits in a data stream and delays it by some constant period of time.
    Mostly useful for delaying innfeed feeds to allow cancels a chance to
    remove articles before innfeed sends them to your peers.  See the
    beginning of the file for an example of how to use it.

expirectl

    Automatically builds expire.ctl based on current available disk space
    and a template, adjusting the expiration times of groups based on a
    weight and the available space.  Uses a template expire.ctl.ctl file;
    see the end of expirectl.c for a sample.

findreadgroups

    Scan the news log files and generate a file giving readership counts
    by newsgroup.  Used by makeexpctl and makestorconf.

innconfcheck

    Merges your inn.conf settings with the inn.conf man page to make it
    easier to be sure that your settings match what you want.  Edit this
    script to add the correct paths to the man page; see the comments at
    the beginning of this script.

makeexpctl

    Generate an expire.ctl based on what newsgroups are actually read.
    Uses data generated by findreadgroups.  This script will require
    editing before being usable for your server.

makestorconf

    Generate a storage.conf file putting frequently read newsgroups into
    timecaf rather than CNFS.  Uses data gefnerated by findreadgroups.
    This script will require editing before being usable for your server.

mlockfile

    Lock files given on the command line into memory using mlock (only
    tested on Solaris).  Useful primarily for locking the history files
    (history.hash and history.index) into memory on a system with
    sufficient memory to speed history lookups in innd.  This seems to
    help some systems quite a lot and others not at all.

newsresp

    Opens an NNTP channel to a server and takes a peek at various response
    times.  Can check the round-trip time and the history lookup time.
    See the comments at the beginning of the source for more details.

ninpaths

    Collects and submits Path survey data, used to determine the top
    transit news servers and collect other interesting information about
    Usenet connectivity.  The more data is collected, the more accurate
    and interesting the results, so if you have a few moments to set it
    up give it a try.  See ninpaths/README for more information; just
    typing make in that directory should be sufficient to build the
    software.

pullart

    Attempts to pull news articles out of CNFS cycbuffs.  Useful for
    emergency recoveries.

respool

    Takes a list of tokens on stdin and respools them, by retrieving the
    article, storing it again, and then calling SMcancel on the previous
    instance of the article.  Note that after running this program, you'd
    need to rebuild the history and overview, since it doesn't update
    either.

showtoken

    Decodes storage API tokens.

stathist

    Parses and summarizes the log files created by the history profiling
    code.

thdexpire

    A dynamic expire daemon for timehash and timecaf spools.  It should
    be started along with innd and periodically looks if news spool space
    is getting tight, and then frees space by removing articles until
    enough is free.  It is an adjunct to (not a replacement for) INN's
    expire program.

tunefeed

    Given two active files, attempts to produce a good set of wildmat
    patterns for newsfeeds to minimize the number of rejects.  For full
    documentation, run "perldoc tunefeed".
