When nntpd receives an article, it has to deliver
it to the news subsystem. Depending on whether it was received as a
result of an IHAVE or POST command, the article is handed to
rnews or inews,
respectively. Instead of invoking rnews, you may
also configure it (at compile time), to batch the incoming articles
and move the resulting batches to
/var/spool/news/in.coming, where they are left
for relaynews to pick them up at the next queue
run.
nntpd has to have access to the
history file to be able to properly perform the
ihave/sendme protocol. At compile time, you have to
make sure the path to that file is set correctly. If you use C News, make
sure that C News and nntpd agree on the format of your
history file. C News uses dbm hashing functions to
access it; however, there are quite a number of different and slightly
incompatible implementations of the dbm library. If
C News has been linked with a different dbm library
than you have in your standard libc, you have to
link nntpd with this library, too.
nntpd and C news disagreement sometimes produces error
messages in the system log that nntpd can not open it
properly, or you might see duplicate articles being received via NNTP. A
good test of a malfunctioning news transfer is to pick an article from your
spool area, telnet to the nntp port,
and offer it to nntpd as shown in the next example. Of
course, you have to replace msg@id with the
message ID of the article you want to feed to nntpd:
$ telnet localhost nntp
Trying 127.0.0.1...
Connected to localhost
Escape characters is '^ ]'.
201 vstout NNTP[auth] server version 1.5.11t (16 November 1991) ready at
Sun Feb 6 16:02:32 1194 (no posting)
IHAVE msg@id
435 Got it.
QUIT |
This conversation shows nntpd's proper reaction;
the message Got it tells you that it already
has this article. If you get a message of
335 Ok instead, the lookup in the history
file failed for some reason. Terminate the conversation by typing Ctrl-D.
You can check what has gone wrong by checking the system log;
nntpd logs all kinds of messages to the
daemon facility of
syslog. An incompatible dbm library
usually manifests itself in a message complaining that
dbminit failed.