SLURP HISTORY
-------------

V1.10 - 7 February 1995

    If an error occurs then only write hostfile if got past the NEWNEWS
    stage onto article collection.

    If -n flag set then leave the time alone in the hostfile.

    Some clarifications in the documentation.


V1.09 - 10 January 1995

    New -c option to omit the article collection stage.

    New -h option to omit history file lookups.

    New -n option to omit the NEWNEWS stage and only collect articles
    whose message ids are in slurp.<hostname>. Used with the option
    above this allows slurp to be used with a backup feed to fill-in
    any holes in a main feed. Alternatively the file can be filtered
    between the two stages, allowing message ids from a particular site
    to be removed, for example.

    New -o option to set directory where news batches will be created
    or the program they will be piped to.

    New -p option to use a non-standard NNTP port.

    New -x option to report progress - the number of articles retrieved
    so far out of the total number to retrieve is printed on stderr.

    Change in flags handling the slurp.<hostname> file. -i will not
    load any ids waiting in the file, -w won't write any uncollected
    ids to the file and -m won't write the time for the next NEWNEWS to
    the file.

    Configurable pipelining. Rather than just stacking up one request
    at the server in advance, you can now configure how many.

    By default, no limit on maximum number of articles that can be
    retrieved in a session. If cacheing limit reached, then excess ids
    are written to slurp.<hostname>.

    Extra history file look-up at article request time, in case the
    article has arrived since the NEWNEWS was carried out, e.g. when
    used as a backup feed.

    Replaced binary tree used to store message ids with a hash table
    into a linked list. The binary tree was unacceptable for large
    numbers of articles - too many strcmps and message ids not random
    enough in a simple comparison. This was particularly true when
    uncollected ids were read from a slurp.<hostname> file.

    Added support for Gnu DBM history files.

    Rewrote the routine to read slurp.sys yet again, improving the code
    and fixing a bug on fields where multiple options were possible.

    Added improved support for AIX, FreeBSD and NetBSD.

    Tried to ensure full ANSI C / POSIX conformance where possible.

    Various tidy-ups, movement of some code to new / different
    compilation units, etc.


V1.08 - 20 August 1993

    Unlink backup time file before renaming or an error occurs with the
    rename under SVR3.


V1.07 - 23 June 1993

    Added support for a user-defined time file for use on machines with
    short filenames which were previously having the time backup
    trashed and couldn't support sub-lists.

    If a history database type (DBZ, DBM, NDBM) is not defined then
    don't do any history lookups. This is useful for people using slurp
    on a machine where news is not running - perhaps piping batches to
    uux for sending on to another machine.

    Fixed problem where if slurp was interrupted before the NEWNEWS
    section had completed, an invalid time would be written to the
    slurp.<hostname> file.

    Duplicate socket file descriptor and then carry out a separate
    fdopen for read and write on each descriptor. This fixes some stdio
    memory problems that were caused by fdopening read and write
    streams on the same descriptor.

    Rewrote get_ids function, removing some potential problems with its
    previous implementation.

    Rewrote read_sys function (again!).

    In process_id when in debug mode print after a message ID if ID
    discarded due to hitting maximum number of articles or was already
    present in the tree.

    Removed inclusion of <unistd.h> in time.c and sockets.c - if it is
    needed then it will be included in slurp.h.

    Replaced bzero and bcopy with ANSI memset and memcpy functions
    throughout, plus a few other bits of tidying up to make the Keep C
    Source Tidy Campaign happy.


V1.06 - 22 April 1993

    Added signal handler to slurp.c to trap SIGHUP, SIGINT, SIGQUIT and
    SIGTERM. If they occur then the signal is reported to syslog, any
    currently open batch is submitted to the news system and the
    message IDs of any unretrieved articles are dumped to the
    slurp.<hostname> file.

    Added NOBUFFOUT option. If defined, will turn off stdio buffering
    for the output stream to the server. This is necessary for ISC, SCO
    and some other SVR3 implementations which will otherwise give a
    memory fault when the socket is written to.

    Added UNISTD option. If undefined then slurp won't include
    <unistd.h> which isn't present on some versions of UNIX.

    If an ERR_ACCESS (code 502) result code is reported by the server
    when retrieving an article, then it will be treated as a missing
    article.

    Correctly defined server_time in slurp.h - was long instead of
    time_t.


V1.05 - 1 March 1993

    Completely cleaned up space.c. Added proper support for space
    checking in SVR4.

    Modified read_sys so that it is possible to have lines in the
    slurp.sys file which are longer than BUFSIZ.

    Check unretrieved message IDs in the slurp.<hostname> file start
    and end with chevrons.

    Moved sublist in the command line arguments to being specified
    after the hostname with a slash separating them, to make things
    more consistent.

    A few more minor tidy-ups, in particular portability has been
    improved in a few places.


V1.04 - 14 February 1993

    Malloc message id separately from mnode structure as the previous
    method seemed to cause problems on some architectures.

    Now handles article lines of >= 511 bytes without overwriting
    memory.

    Support for simple authorisation protocol.

    Support for INN 'MODE READER' command.

    read_sys rewritten to allow command line flags to be specified for
    servers, support having more than one set of newsgroups to be
    retrieved from the same server, and provide the username and
    password for the simple authorisation protocol.

    New choice of piping articles to rnews (possibly in one batch only)
    or writing article batches to the incoming news / rnews spool
    directory. This will provide a speed-up for users of INN.

    Replaced slurp.tim file with slurp.<hostname> files, solving
    locking problems and providing support for the enhancement below.

    If an error occurs during the article fetching stage, then dump the
    message ids of articles not yet retrieved to slurp.<hostname>.
    These can then be picked up in the next session, without having to
    restart the NEWNEWS back at the previous time.

    No requirement for slurp.<hostname> to exist as slurp.tim used to
    have to be if you wanted a time written out.

    Re-arranged the command line options.


V1.03 - 19 December 1992

    Added extra compilation configuration option for machines that
    don't have strerror().

    If a temporary file was opened for reading a long article into
    which wouldn't fit in memory, then it was flushed at the end of
    read_article. Unfortunately, the test wasn't done correctly so if a
    long article was once read in, it would keep flushing the now
    invalid file descriptor on future calls. Fixed by removing this
    altogether as the subsequent rewind would do the job anyway.

    Open syslog *before* we start doing things that might want to write
    to it... Connected, articles retrieved and speed messages logged
    as LOG_INFO instead of the previously wrong LOG_NOTICE.

    When mallocing space for the article id tree, only malloc enough
    room for the article id and left/right node pointers, not the whole
    structure, saving oodles of memory.

    Corrected the test for the maximum size of a NEWNEWS request line.

    Various minor tidy-ups.

    Added manual page and made various improvements to the
    documentation.


V1.02 - 7 December 1992

    Corrected openlog calls so correct 4.2/4.3 version of syslog is
    used.


V1.01 - 6 December 1992

    Fixed some problems with null-dereferencing of nn_distributions.
    New slurp.tim not written if maximum number of messages that can
    be transferred is hit.

    When debugging switched on, print line being sent to server before
    it is sent rather than after.

    Added documentation on return codes.


V1.00 - 2 December 1992

    Initial release.

---- END OF DOCUMENTATION
