home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / s / slurp103.zip / README < prev    next >
Text File  |  1992-12-20  |  8KB  |  244 lines

  1.                 SLURP - An advanced passive NNTP client
  2.                 =======================================
  3.  
  4.                              Version 1.03
  5.                       Written by Stephen Hebditch
  6.                       (C) 1992 TQM Communications
  7.                                     
  8.                                  ------
  9.  
  10. Slurp is an advanced passive NNTP client for UNIX. It will connect to a
  11. remote NNTP server and retrieve articles in a specified set of Usenet
  12. newsgroups that have arrived after a particular date (typically the
  13. last time it was invoked) for processing by your local news system.
  14.  
  15. The Feature List.
  16.  
  17. - No restriction on the number of newsgroups that can be retrieved in a
  18.   session. The client does a series of NEWNEWS requests if necessary to
  19.   build up a list of articles which need to be retrieved from the
  20.   server.
  21.  
  22. - Compatible with C News and INN.
  23.  
  24. - Greatly enhanced efficiency over nntpxfer. Large batches of articles
  25.   are piped to rnews rather than individual articles, massively
  26.   reducing the fork/exec overhead.
  27.  
  28. - Easy configuration.
  29.  
  30.   slurp.sys defines which groups you wish to get from which server in a
  31.   similar way to the normal C News sys file, e.g.
  32.  
  33.     news.demon.co.uk:demon.*,!demon.msdos.announce,uk.*,\
  34.     !uk.net.maps/world,uk
  35.  
  36.   slurp.tim contains the time to be used for the NEWNEWS request at
  37.   each server.
  38.  
  39.   The newsgroups list, start time and distributions can be overridden
  40.   on the command line. There are also command line settings to enable
  41.   debugging output, prevent writing the time for the next NEWNEWS to
  42.   slurp.tim and use the local time for the next NEWNEWS rather than the
  43.   remote time.
  44.  
  45. - No lost articles due to unsynchronised clocks. By default, the time
  46.   for the next NEWNEWS is set by a call to the tcp time service on the
  47.   remote machine. This fixes a problem in nntpxfer where articles could
  48.   be missed if the clock on the server is behind that on the client.
  49.  
  50. - Faster article throughput. If configured to do so, slurp stacks up
  51.   the next article request before the current article is received,
  52.   decreasing the total article transfer time by around 30%. This is
  53.   most of use for people retrieving news over a dialup slip/ppp
  54.   connection.
  55.  
  56. - Logging to syslog of the number of new, missing and duplicate
  57.   articles at the end of a session plus, if required, the transfer
  58.   speed of the article fetching stage.
  59.  
  60. - Independent of the NNTP 1.5.11 code.
  61.  
  62.  
  63. Slurp was written in ANSI C under Dell's SVR4/386.
  64.  
  65.  
  66.  
  67. CONTENTS
  68. --------
  69.  
  70. In this archive you should have the following files:-
  71.  
  72. Makefile    The Makefile (yes, really!)
  73. README        What you're reading now
  74. articles.c    Routines for reading articles and batching them up
  75. conf.h        Compilation configuration file
  76. fakesyslog.c    Fake version of syslog for those without
  77. fakesyslog.h    Definitions needed for the above
  78. history.c    Routines to open and interrogate the news history file
  79. misc.c        Miscellaneous routines
  80. newnews.c    Routines to retrieve new message ids from the server
  81. nntp.h        Definitions of nntp response codes
  82. slurp.1        Slurp manual page
  83. slurp.c        Main program
  84. slurp.h        Definitions used by everything
  85. slurp.sys    Configuration file for groups to take from a server
  86. slurp.tim    Configuration file for newnews time at each server
  87. sockets.c    Server interface routines
  88. space.c        Determines space available on news disk
  89. time.c        Retrieves current time at remote server
  90.  
  91.  
  92.  
  93. COMPILATION AND INSTALLATION
  94. ----------------------------
  95.  
  96. 1. Edit conf.h to reflect your reflect your local configuration. This
  97. file contains full details about each item that you may need to change.
  98.  
  99. 2. Edit Makefile. If you have not installed dbz.h in /usr/include then
  100. you will need to add -Ipathname to CFLAGS so that the compiler does a
  101. search of the directory where it can be found. LIBS will need to
  102. contain entries to pick up the dbz library and possibly the sockets
  103. library depending on your system. If you don't have syslog then you
  104. will need to uncomment the FAKESRC and FAKEOBJ lines.
  105.  
  106. 3. Type 'make' and hopefully you will get the slurp executable.
  107.  
  108. 4. Copy slurp to wherever it is that you store your news binaries.
  109.  
  110. 5. Copy slurp.sys and slurp.tim to whichever location you selected for
  111. them in conf.h.
  112.  
  113. 6. Copy the manual page to wherever you keep your manual pages.
  114.  
  115.  
  116.  
  117. QUICK START
  118. -----------
  119.  
  120. The slurp manual page contains full details on how to operate slurp. As
  121. a quick start all you need to do is:-
  122.  
  123. 1. Edit slurp.sys to set the hostname of the server you wish to connect
  124. to for retrieving articles and the groups you wish to receive.
  125.  
  126. 2. Edit slurp.tim with the hostname of the server and a time a couple
  127. of days previously, say.
  128.  
  129. 3. Run 'slurp -s <hostname>' and sit back while the articles flood into
  130. your local news system.
  131.  
  132.  
  133.  
  134. CONDITIONS OF USE
  135. -----------------
  136.  
  137. The Slurp package and individual code as detailed is Copyright (C) 1992
  138. TQM Communications, BCM Box 225, London, WC1N 3XX. All rights reserved.
  139.  
  140. This package may be freely distributed provided the following
  141. conditions are met. The files detailed in the contents section of this
  142. file must all be included. No charge, other than basic online charges
  143. or media costs, may be levied. You are permitted to make alterations to
  144. the code for your own personal use, but please feed back any bug fixes
  145. or enhancements to us so they may be included in any future releases.
  146.  
  147.  
  148.  
  149. DISCLAIMER
  150. ----------
  151.  
  152. TQM Communications makes no warranty of any kind in respect to this
  153. documentation and the software described. The user assumes any risk as
  154. to the quality and performance of this product. In no event will TQM
  155. Communications be liable for direct, indirect, incidental or
  156. consequential damages arising from any defect in the performance and
  157. use of this product.
  158.  
  159. All trademarks acknowledged.
  160.  
  161.  
  162.  
  163. ACKNOWLEDGEMENTS
  164. ----------------
  165.  
  166. The original inspiration for slurp came from nntpxfer, written by Brian
  167. Kantor. The article batching code is inspired by batch.c in the NNTP
  168. 1.5.11 package, written by Stan Barber and 'based on work by Henry
  169. Spencer and Geoff Collyer'. The fakesyslog code is taken from the NNTP
  170. 1.5.11 package where it is credited to John Robert LoVerso and Paul
  171. McKenny. The space code to determine whether there is enough space on
  172. the news disk for a new batch is taken from the NNTP 1.5.11 package
  173. where it is credited to Stan Barber, Tad Guy, Chris Jepeway and Tom
  174. Lane. Regular expression expansion courtesy of Nick Lai. Network
  175. knowledge thanks to W. Richard Stevens, author of the most readable
  176. UNIX books around. Bug fixing and porting thanks to Tim Rylance and
  177. Pete Bentley.
  178.  
  179.  
  180.  
  181. CONTACT INFORMATION
  182. -------------------
  183.  
  184. All comments, bug reports, bug fixes, etc. should be sent to
  185. steveh@orbital.demon.co.uk.
  186.  
  187.  
  188.  
  189. HISTORY
  190. -------
  191.  
  192. V1.00 - 2 December 1992
  193.  
  194.     Initial release.
  195.  
  196.  
  197. V1.01 - 6 December 1992
  198.  
  199.     Fixed some problems with null-dereferencing of nn_distributions.
  200.     New slurp.tim not written if maximum number of messages that can
  201.     be transferred is hit.
  202.  
  203.     When debugging switched on, print line being sent to server before
  204.     it is sent rather than after.
  205.  
  206.     Added documentation on return codes.
  207.  
  208.  
  209. V1.02 - 7 December 1992
  210.  
  211.     Corrected openlog calls so correct 4.2/4.3 version of syslog is
  212.     used.
  213.  
  214.  
  215. V1.03 - 19 December 1992
  216.  
  217.     Added extra compilation configuration option for machines that
  218.     don't have strerror().
  219.  
  220.     If a temporary file was opened for reading a long article into
  221.     which wouldn't fit in memory, then it was flushed at the end of
  222.     read_article. Unfortunately, the test wasn't done correctly so if a
  223.     long article was once read in, it would keep flushing the now
  224.     invalid file descriptor on future calls. Fixed by removing this
  225.     altogether as the subsequent rewind would do the job anyway.
  226.  
  227.     Open syslog *before* we start doing things that might want to write
  228.     to it... Connected, articles retrieved and speed messages logged
  229.     as LOG_INFO instead of the previously wrong LOG_NOTICE.
  230.  
  231.     When mallocing space for the article id tree, only malloc enough
  232.     room for the article id and left/right node pointers, not the whole
  233.     structure, saving oodles of memory.
  234.  
  235.     Corrected the test for the maximum size of a NEWNEWS request line.
  236.  
  237.     Various minor tidy-ups.
  238.  
  239.     Added manual page and made various improvements to the
  240.     documentation.
  241.  
  242.  
  243. ---- END OF DOCUMENTATION
  244.