fetch(8) UNIX System V (21 Nov 1998) fetch(8)
NAME
fetch - fetch news via NNTP
SYNOPSIS
fetch [-v] [-x number] [-l] [-n]
DESCRIPTION
Leafnode is a USENET package intended for small sites, where
there are few users and little disk space, but where a large
number of groups is desired.
The design of leafnode is intended to self-repair after
problems, and to require no manual maintenance.
Fetch is the program which submits and retrieves new
articles to or from the upstream NNTP server.
OPTIONS
-v Be verbose. A maximum of four -v can be used (the more
v, the more verbose):
-v Warn about non-critical errors.
-vv Be verbose whenever a group command occurs.
-vvv Be verbose whenever an article command occurs.
-vvvv
For debugging purposes. Don't expect the additional
output to make sense.
-x number
Go number articles back and try to re-fetch what's
missing. Chiefly used for debugging purposes.
-l Don't use supplementary servers ( -l is supposed to
mean "local"). This does speed up the operation quite a
bit.
-n Don't unlink files in the interesting.groups directory.
This avoids automatic unsubscription of newsgroups.
-f Force rereading of whole active file from all upstream
servers. This is usually occurring only very
infrequently because it takes a long time.
-P Only post articles that have accumulated in the
out.going directory but do not fetch articles from
upstream servers.
Page 1 (printed 3/1/99)
fetch(8) UNIX System V (21 Nov 1998) fetch(8)
FILES AND CONFIGURATION
See leafnode(8) for the list of files affected, and for
information on configuring fetch.
ALGORITHM
Here is a brief description of what fetch does.
First, after connecting to the upstream NNTP server, all
articles in /var/spool/news/out.going are posted using POST.
If a posting fails, that article is moved to
/var/spool/news/failed.postings which an administrator has
to clean up once in a while. Moving a file back to
/var/spool/news/out.going is sufficient to resubmit it.
Second, the upstream server's list of newsgroups (obtained
using LIST ACTIVE and LIST NEWSGROUPS) is merged into
leafnode's (this step is most often optimized away).
Third, fetch iterates over the list of newsgroups,
performing a GROUP, an XHDR Message-ID and a number of HEAD
and BODY commands for each group which has been read
recently.
NOTES
Fetch does not use NEWNEWS or XOVER. NEWNEWS is not used
because it is often very expensive, XOVER is not used
because the information it obtains is also present in the
article headers.
After some experiments, I decided that it was better to
fetch all the articles in a group than to optimize away
some; users would complain too loudly when the optmizer
guessed wrongly. Leafnode is not intended to be all things
to all men, and I have sacrificed the ability to read news
from two upstream servers. (There is some support for it,
but it is incomplete and undocumented at the time of
writing.)
Fetch happens to support local groups, even though the rest
of leafnode doesn't.
The only way to control what newsgroups are accessible to
local users is to control what the upstream server lets
fetch read, and that will not keep out all crossposts
(endemic in e.g. the alt.sex groups). If your site is big
enough that you need to control newsgroup access, consider
using a news server which is designed for a big site.
Fetch sets its real and effective uid to "news", because
almost all of the problems I have had with leafnode are due
Page 2 (printed 3/1/99)
fetch(8) UNIX System V (21 Nov 1998) fetch(8)
to files which aren't writable for user news.
BUGS
Fetch ignores the "Supersedes" and "Also-Cancel" headers.
This needs to be fixed, or news.answers will suffer.
Never deletes a group from the list of active newgroups.
AUTHOR
Written by Arnt Gulbrandsen <agulbra@troll.no> and copyright
1995-96 Troll Tech AS, Postboks 6133 Etterstad, 0602 Oslo,
Norway, fax +47 22646949.
Modified by Cornelius Krasel <krasel@wpxx02.toxi.uni-
wuerzburg.de>, Markus Enzenberger <enz@cip.physik.uni-
muenchen.de> and Randolf Skerka <Randolf.Skerka@gmx.de>.
Copyright of the modifications 1997-1999.
SEE ALSO
tcpd(8), hosts.allow(5), leafnode(8), texpire(8), RFC 977
Page 3 (printed 3/1/99)