NAME
snfetch - fetch articles.
SYNOPSIS
snfetch [-r] [-t timeout] [-c depth] group [serial [max]]
DESCRIPTION
snfetch expects to read NNTP from file descriptor 6, and write NNTP to
file descriptor 7, which descriptors must have already been open.
Articles retrieved are written to descriptor 1. Each article displayed
is separated from the next by a dot on a line by itself. These
articles are NNTP safe, in the sense that double-dot unquoting is not
done, and all lines end in CR-LF. snfetch expects to begin it’s NNTP
speech by giving the GROUP command. The upstream server’s greeting
must have already been read some other way. Likewise, when snfetch is
done, it will not send a QUIT command.
The output is suitable for feeding to snstore.
snfetch always checks the article ID of the prospective article before
retrieving it. If the ID already exists in the ID database, the
article will not be retrieved. Note that this does not guarantee that
all articles retrieved will be unique.
snfetch does not guarantee to leave the NNTP conversation in a decent
state (there might be more data to read, but snfetch aborted part way).
You will need to be root or own /var/spool/sn in order to run this
program.
It is not safe to direct the output of several snfetches to the same
pipe descriptor, but a file descriptor is all right.
OPTIONS
-t timeout
snfetch will wait only timeout seconds (default 180) for data
before giving up, if the server doesn’t respond.
-r Output in news batch format instead. All articles will take the
#! rnews form only, even if there is just one article, all lines
end in bare linefeed, and dot-unquoting is performed.
-c depth
Employ a command pipeline of depth depth. NNTP command
pipelining is not officially sanctioned, so by default no
pipeline is used. However, a pipeline with a depth greater than
0 will substantally reduce transaction latency if the server
accepts it. A respectable value for depth might be between 1
and 5.
ARGUMENTS
snfetch takes the name of a single newsgroup on its command line. If
serial is given, this is taken to be the first article number on group
on the server to fetch. If max is specified, this is taken to be the
maximum number of articles to fetch. The first article retrieved may
be after serial if max would be violated. If max is not specified,
there is no limit.
ENVIRONMENT VARIABLES
SNROOT If this is set and is not empty, the value is used in place of
/var/spool/sn, the default news spool directory.
FILES
/var/spool/sn/newsgroup/.serial
If serial is not specified, the starting serial number is taken
from the file /var/spool/sn/newsgroup/.serial. This defaults to
0 if the file can’t be read.
/var/spool/sn/newsgroup/.serial.tmp
If snfetch exits with success (0), the new serial is written
into this file. The original file
/var/spool/sn/newsgroup/.serial is readonly by snfetch.
/var/spool/sn/newsgroup/.max
If max is not specified on the command line, max is read from
this file. If the file cannot be read or does not exist, there
is no limit.
EXIT CODES
snfetch exits 1 on usage error, 2 on system failure, 3 on protocol
error, 4 on read timeout, and 0 on success.
SEE ALSO
snstore (8), snget (8)