PREFACE
=======
Original Author - Tim Smith (address unknown)
Maintainers - 
March 1995 - Sven Goldt (address unknown)
July 1995  - Robert A. Yetman (bobyetman@worldnet.att.net)

Current Maintainer - bobyetman@worldnet.att.net

LOCATION
========
visit http://home.att.net/~bobyetman/index.html
to download the latest version or view the README file.

FTP Sites:
Site1	     = sunsite.unc.edu
Path1        = /pub/Linux/system/news/transport
File1        = suck-4.2.4.tar.gz

INTRODUCTION
============
The primary use for suck is to feed a local NNTP server, without the
remote NNTP feeding you articles.  It is designed for a small, partial
news feed.  It is NOT designed to feed 10,000 groups and 3 Gigs of articles
a day.

This package contains software for copying news from an NNTP server to your
local machine, and copying replies back up to an NNTP server.  It works
with most standard NNTP servers, including INN, CNEWS, DNEWS, and typhoon.

The suck/rpost combination allows you to run your own  site, controlling
where you get your news, and where you post outgoing articles.  Suck/rpost
use only standard NNTP commands that are used by your favorite news reader
(tin, xvnews, strn) such as POST and ARTICLE.  If you can use tin or xvnews
against a NNTP site, than you can use Suck/Rpost.  

suck			Pull a small newsfeed from an NNTP server

lpost			Gives one article fetched by suck to the local server.

rpost			Posts article(s) to a remote NNTP server

testhost        	Check to see what commands your host recognizes or
			get the active or new list.

lmove 			put articles in news/group/number format.

MAJOR CHANGES FROM 4.2.3 -> 4.2.4

*    -  Various changes to compile under OS/2.
 
     -  Changes to compile with Perl 5.6.  If you're still using Perl 5.4,
	you'll need to edit the Makefile.

suck -	Added -lr, low_read option.   This option is used in concert with
	the maxread option of sucknewsrc.   The normal option is for suck
	to get the newest articles.  With this option, suck will get the
	oldest articles.

	Added -rc, resetcounter option.  Normally, when the remote server
	resets its counter for a group (to 0 for example when there are no
	current articles), suck will ignore the group and reset its counter
	to the current high article number.  This option tells suck to reset
	its counter to the current low article number, effectively forcing
	suck to get all articles in the group, and use the historydb to 
	check for dupes.

	Added -sg, show_group option.  This option adds the name of the
	group currently being downloaded, if known, to the BPS display.


LICENSING INFO
==============
Suck is Public Domain, feel free to make any changes you want, just don't
blame me when they break.

MAILING LIST!
=============
Thanks to Motoharu Kubo (mkubo@3ware.co.jp), there is a mailing list for
suck.  It is intended as a place to discuss problems, etc, plans, and
other issues related to suck.  Its address is "suck-ml@3ware.co.jp".

To subscribe to the mailing list, send a mail message to majordomo@3ware.co.jp
with the message text reading "subscribe suck-ml"

NOTES:
======
Suck will not work with obsolete NNTP servers that can't handle the xhdr
command.

This code assumes an ANSI-compliant compiler, it will NOT work with old
compilers which don't accept function prototypes.

The Makefile assumes you are using GNU make, other makes may or may not work.

If your remote INN server slows drastically after 100 messages are downloaded,
and they are using INN 1.5.1 or newer, chances are they compiled INN with 
"LIKE_PULLERS" set to DONT, which causes INN to put a small sleep before each message.  
Talk to the SA for the system and see if they'll compile with "DO".  Chances
are they didn't even know this option existed.

If you don't feel like going to the trouble of running INND/CNEWS/DNEWS/Typhoon, and
you don't need a full blown NNTP daemon running, then suck, along with tin
and a few batch files, can be used to read articles.  The scripts should be
available from http://www.cix.co.uk/~mayday.  I don't use these, but supposedly
they do work.

Is suck Y2K compliant?  As far as I can make it yes.   The only program that uses
dates is testhost, and the date is sent to the remote NNTP host for the NEWGRP
command.  I don't do any date calculations.   Once servers take an 8 digit 
date (right now its YYMMDD), I'll update testhost.

HOW-TO-USE
==========
1.  run ./configure
2.  If your history file is not a flat file, edit the top of the Makefile.
    If your flatfile history file is not at /usr/news/db/history, 
	you'll need to use the -HF option, to tell suck where it is.
3.  Make it.  (make , make install)
    If you are having problems compiling suck, look at the Makefile,
	there are comments in there for the various common problems
	I see.   
4.  READ THE MAN PAGES.
5.  Create a sucknewsrc - which groups to download (see suck man pg).
	If you have INND/CNEWS/DNEWS/PNEWS already running, then
	just use 'suck remotehost -A -hl localhost', and the sucknewsrc
	will be built for you.  BUT, before you do this, create a active.ignore
	file, listing all the groups on the local host that you don't want
	downloaded from the remote host (see man page for sample).
6.  Take a look at the sample directory.  There are two shell scripts
	 in there that show the whole scheme from how to download news
	(with suck), and how to upload news (with rpost).  Use get.news.inn
	if you have INN running, as it knows how to gracefully get the
	outgoing article listing.  get.news.generic is for everyone else.
	WARNING: These scripts need editing before you can use them.  You
	must change the various variables at the top of the scripts to
	ensure they point to the right files/directories.


WHERE TO GET STUFF
==================
inn: anonymous ftp from ftp.isc.org /isc/inn
perl: http://www.perl.com/CPAN/src/latest.tar.gz 
      anonymous ftp from prep.ai.mit.edu /gnu
Perl/Tk: http://www.perl.com/CPAN/modules/by-module/Tk/Tk8XX.XXX.tar.gz

FUTURE PLANS.
========================
Yes, I'm still debating how to rewrite the internals of suck to address the
long-standing complaint that killfiles slow things down.  In fact, the
file queue.c is the bare bones start to this.  This has been slowed down
by a lot of personal factors.

I've had a request for heirarchical killfiles, e.g. being able to
specify a killfile for comp.*, a subkillfile for comp.linux.*, 
then a sub-killfile for comp.linux.announce.  An article in 
comp.linux.announce would have to pass all three killfiles before
being downloaded.

