Small news server
snntpd [-ttimeout] [-P] [-S] [logger...]
snntpd is a small news server. It needs to be run under inetd or tcpserver, as root or as the owner of /var/spool/sn. snntpd does not fork into the background. It expects to read and write from and to the network on descriptors 0 and 1.
logger... (usually /usr/bin/logger) is taken to be a logging program, and all log output is piped to it. If logger... is not specified, log messages are directed to descriptor 2.
-ttimeout
specifies how long snntpd should wait for input before it gives up and exits. timeout is in seconds and defaults to 600.
-P
snntpd includes it's pid in log output.
-S
Suppress NNTP greeting on startup. This is useful if you want to perform authentication before running snntpd, or want to provide your own greeting, from a wrapper.
Posts are usually handled externally by the /usr/sbin/SNPOST script, which is responsible for fine-grain posting control; handling of control messages; and the ultimate distribution of the posted article.
snntpd permits or denies posting in a very simple manner:
If /var/spool/sn/.nopost exists, posting is not allowed.
Otherwise, if the environment variable POSTING_OK is not set, posting is not allowed.
Otherwise if POSTING_OK is set (to the empty string), posting is generally allowed, and all POSTed articles are piped to the SNPOST script, which has the final say in the matter. The value of $POSTING_OK is not currently used, but is reserved.
/var/spool/sn/.fifo
If this file exists, and is a fifo, snntpd will write the name of a newsgroup into it as that newsgroup becomes the current one. If the fifo does not exist snntpd will not create it.
/var/spool/sn/.noservice
If this file exists, snntpd will display its first line and exit. If the file can't be read or is empty, a default message is displayed. This is useful for temporarily disabling the news server while you perform any maintenance.
/var/spool/sn/.nopost
See POSTING PERMISSIONS above.
/var/spool/sn/.SNPOST
If this script or program exists, it is invoked instead of SNPOST to accept a posted article.
/var/spool/sn/news.group.name/.nopost
These files really belong to SNPOST, and it is unfortunate that snntpd has to check for their existence to determine the posting flag for the LIST command. See /usr/sbin/SNPOST.
/var/spool/sn/news.group.name/.info
If this file exists, its first line is taken as the description of that group for use with the LIST NEWSGROUPS command.
/var/spool/sn/news.group.name/.times
is a binary file containing entry times, to support the NEWNEWS command.
/var/spool/sn/news.group.name/.created
is an empty file retained for it's timestamp, to support the NEWGROUPS command.
If snntpd catches SIGHUP, the files /var/spool/sn/{.fifo,.noservice,.nopost} (see below) are checked again, as they are during startup. Other signals have default behaviour.
See also /usr/sbin/SNPOST for a list of environment variables exported by snntpd.
PATH
The PATH must be set such that snntpd can find SNPOST in order to accept postings. If PATH does not include /usr/sbin, /usr/sbin will be appended to it.
POSTING_OK
This variable helps determine the site-wide posting policy. See POSTING PERMISSIONS above.
TCPREMOTEIP
If this value is set, it is taken to be the dotted-quad IP address of the connecting client. If it is not set, snntpd attempts to derive it for itself, and then set its value.
TCPLOCALIP
as above, but for the server's dotted-quad IP.
SNROOT
If this is set and is not empty, the value is used everywhere in place of /var/spool/sn, the default news spool directory.
snsend(8), /usr/sbin/SNPOST