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)