PREFACE
=======
Original Author - Tim Smith (address unknown)
Maintainers - 
March 1995 - Sven Goldt (address unknown)
July 1995  - Robert A. Yetman (boby@pixi.com)

Current Maintainer - boby@pixi.com
Japanese Docs - Motoharu Kubo (mkubo@3ware.co.jp)
Spanish Docs - Simon Mudd (sjmudd@redestb.es)
	       Abraham Nevado (nevado@redestb.es)

LOCATION
========
visit http://www.pixi.com/~boby/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-3.9.0.tar.gz

Site2        = tsx-11.mit.edu
Path2        = /pub/linux/sources/sbin
File2        = suck-3.9.0.tar.gz

INTRODUCTION
============
The primary use for suck is to feed a local INN or CNEWS 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.

The suck/rpost combination allows you to run your own INN/CNEWS 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 * NEW *		put articles in news/group/number format.

MAJOR CHANGES FROM 3.8.0 -> 3.9.0
=================================

* All packages.  Fixed the problem with Linux/Glibc and possibly SCO systems.
You shouldn't need the _POSIX_SOURCE and _BSD_SOURCE any more in config.h

* Suck 
	
- added -AL option.  This option reads the activelist from a local file,
instead of the localhost.  This is handy if you don't run an NNTP server.

- added -z option.  This option causes suck to skip the dedupe phase.
Useful only on slow machines where it takes longer to dedupe than to
download the messages. Not recommended.

- added -x option.  Another Kludge to help those poor souls who have
to use M$News server.  This option tells suck to skip the check for
a > on the MsgID, since M$ truncates the MsgID to 72 characters, and 
the closing > may not always be there.   Warning- this may affect the
deduping, since I don't have the entire MsgID to go by, I may decide
that two articles are dupes, when they may not be.

- modified the code that reads the body of the articles, again in response
to a problem with the M$News server.  It allows NULLS in its articles,
so I had to deal with them.  

- added -B option.  This option causes suck to batch up any messages
that may be left in its data directory, possibly from a failed attempt,
before starting a new download.  There are some gotchas with this, read
the man page.

- massive internal changes to the killfile code.  This was necessitated by
the addition of three new killfile parameters, BODY, BODYSIZE> and BODYSIZE<,
to kill messages based on text in the body or the size of the body.  Added
code to handle multiple HEADER: and BODY: lines in killfile.
See man
pages for details on these two parameters.  

* Testhost

- added -q option to supress opening connection messages.  Using this
option with the -a option will create an active list suitable for use
by most servers.

* Lmove

- swapped the highnr and lownr numbers in the param file, to make it
look like a real active file.

* Rpost

- fixed bug which caused coredump if time out on upload of message.

* All programs 

- Added a version number to the phrase file.  This is to prevent using
an outdated phrase file.  Its basically the current version number of
suck.  Run 'make phrases' to see what it looks like.  While doing this,
I fixed some minor bugs in the loading of phrases that caused the wrong
set of phrases to be loaded.

- Various bug fixes, code tightening, more tests to make sure everything
is going okay.  See CHANGELOG for the gory details.


MAILING LIST!
=============
Thanks to Motoharu Kubo (mkubo@3ware.co.jp), there is now 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 (Such as Sun's) which don't accept function prototypes.  You could
try using the unprotoize program included in gcc, but then if you are going
to get that, why not just build gcc? :)

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, 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, 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://poboxes.com/rdebath>.  I don't use these, but supposedly
they do work.

HOW-TO-USE
==========
1.  run ./configure
2.  If your history file is not a flat file, or if its not at 
    /usr/lib/news/history, edit the top of the Makefile.
3.  Edit suck_config.h - lots of configurable stuff here
4.  Make it.  (make , make install)
5.  Create a sucknewsrc - which groups to download (see suck man pg).
	If you have INND/CNEWS/DNEWS/PNEWS already running, then
	just use the -A -hl localhost option, and the sucknewsrc
	will be built for you.
6.  Take a look at sample/get.news(.innxmit or .rnews)
	These scripts show the whole scheme, from sucking news to
	posting replies to your remote host.  Use .innxmit if you
	are using INND, or .rnews if you are using CNEWS.
7.  READ THE MAN PAGES

8.  To install supplemental language man pages and phrase file 
	make install_jman		Japanese language docs
	make install_sman		Spanish language docs

PLANS FOR NEXT VERSION.
=======================

1. Add a faster non-regex search to killfile code.

2. Go thru and make all killfile stuff handle NULLs in body/header.
This will mean changing strstr() to something else.

3. Add a switch to killfile code to allow by-pass of regex and force
non-regex search.

FUTURE PLANS.
========================
1. pipelining when using killfiles (still haven't figured out how to
	code this gracefully).
