From hwr@pilhuhn.de Tue Oct 17 16:10:26 EDT 1995
Article: 14842 of news.software.nntp
Path: news.math.psu.edu!chi-news.cic.net!newsfeed.internetmci.com!EU.net!Germany.EU.net!zib-berlin.de!news.uni-ulm.de!rz.uni-karlsruhe.de!snert!not-4-mail
From: hwr@pilhuhn.de (Heiko W.Rupp)
Newsgroups: news.software.nntp,news.software.b,news.answers
Subject: INN FAQ Part 1/5: General Information
Supersedes: <faq.p1_813411125@pilhuhn.de>
Followup-To: news.software.nntp
Date: 17 Oct 1995 09:23:05 +0100
Organization: The Home Of The Pilhuhn
Lines: 1339
Approved: news-answers-request@MIT.EDU
Expires: 5 Nov 1995 08:23:03 GMT
Message-ID: <faq.p1_813918183@pilhuhn.de>
NNTP-Posting-Host: pilhuhn.de
Summary: This article is part 1 of a multi-part FAQ:
	Part 1: Common questions about INN itself, useful to people that do not currently run INN.  Plus, advice specific to certain operating systems.
Xref: news.math.psu.edu news.software.nntp:14842 news.software.b:4433 news.answers:43522

Posted-By: post_faq 2.10
Archive-name: usenet/software/inn-faq/part1
Last Changed: $Id: part1,v 1.12 95/10/04 10:20:21 hwr Exp Locker: hwr $

                  Part 1 of 5

INN FAQ Part 1/5: General Information:
                     Questions from people that don't (yet) run INN
                     Specific notes for specific operating systems
INN FAQ Part 2/5: Debugging Guide & Tutorial:
INN FAQ Part 3/5: Operational and Misc. Questions
INN FAQ Part 4/5: Appendix A: Norman's install guide
INN FAQ Part 5/5: Appendix B: Configurations for certain systems


------------------------------

Subject:  Table Of Contents for Part 1/5

=====================================================================
        TABLE OF CONTENTS FOR PART 1/5:  General Information
=====================================================================

QUESTIONS FROM PEOPLE THAT DON'T (YET) RUN INN:
	What is INN?
	Where can I get the INN software?
	Where can I get the latest copy of this FAQ?
	Where may I find additional information?
	What machines does it run on?
	INN must be really complicated since this FAQ is so long!
	Can I run C News with INN?
	Can I run NNTP with INN?
	Can I run the reference implementation (NNTP1.5) with INN?
	Can I run INN on my UUCP-only machine?
	Suppose I have a 286 machine?
	Does INN implement NOV, xthread (trn) or xuser/xmotd (tin) commands?
	Is an ident or authorization protocol supported?
	Does INN do UUCP batching like C News?
	Help!  How do I configure this beast?
	How do I thank the FAQ maintainer?

SPECIFIC NOTES FOR SPECIFIC OPERATING SYSTEMS:
	BASH tips
	GNUS tips
	AIX tips
	SunOS 4.1.2 tips
	Ultrix tips
	HP-UX tips
	UnixWare tips
	Linux tips
	A/UX 3.0 (Macintosh) tips
	Alpha OSF tips
	SGI IRIX 5.x tips
	Pyramid and system's where only root can have "cron" jobs.
	All System V based Unixes (SVR4, Solaris 2.x, SCO ODT 3.0, AIX, A/UX, DELL, ...)
	Solaris 2.x special needs
	Slackware
	BSDi 2.0 / FreeBSD / NetBSD
	3Com Router users
	NOV problems on a Pyramid
	Warnings to people that must set HAVE_UNIX_DOMAIN to DONT


The FAQ was written by Rich $alz <rsalz@rodan.uu.net>, was maintained 
for a long time by Tom Limoncelli <tal@plts.org> and is now
maintained by Heiko W.Rupp <hwr@pilhuhn.de>

These documents would not exist if it weren't for the people that have
submitted questions and (most importantly) answers.  THANK YOU ALL!


=====================================================================
           QUESTIONS FROM PEOPLE THAT DON'T (YET) RUN INN
=====================================================================


------------------------------

Subject:  What is INN?

For a complete answer, why not read the Usenix paper that introduced
INN to the world?  It's available as
ftp.uu.net:networking/news/nntp/inn/inn.usenix.ps.Z

InterNetNews is a complete Usenet system.  The cornerstone of the package
is innd, an NNTP server that multiplexes all I/O.  Think of it as an nntpd
merged with the B News inews, or as a C News relaynews that reads multiple
NNTP streams.  Newsreading is handled by a separate server, nnrpd, that is
spawned for each client.  Both innd and nnrpd have some slight variances
>from  the NNTP protocol (although in normal use you will never notice); see
the manpages.  INN separates hosts that feed you news from those that have
users reading news.  If you need to support a mixed environment you will have
to do some extra work; the installation manual gives some hints.


------------------------------

Subject:  Where can I get the INN software?

The official archive site is ftp.uu.net in the directory
networking/news/nntp/inn.  Archie current lists over 30 archive sites;
three other international sites are ftp.univ-lyon1.fr in
pub/unix/news/inn, munnari.oz.au in pub/news/inn, and src.doc.ic.ac.uk
in computing/usenet/software/transport

The latest version of INN is 1.4sec.  This is rev. 1.4 with a slight
modification of certain shell scripts to fix a security hole.  Do
not run 1.4 without the patch (see part 3/5 of this FAQ).

Patches for INN are at: ftp://ftp.math.psu.edu/pub/INN/patches
    and                                               /patches/OLD
Add-ons for INN are at: ftp://ftp.math.psu.edu/pub/INN/contrib
("Add-ons" include "Gup" and other interesting tools)


Dave Barr made a second unofficial release containing many patches. From the 
announcement:

There's lots of new features, bug fixes, and one security fix in this
release over the previous "unoff1" release.  The security fix a kinda
obscure one, but not really that much less obscure than the ones fixed
"sec" and "sec2" releases.  If you're running INN 1.4sec or sec2, I
really would encourage you to upgrade.   (sorry, I have no plans to
offer a patch from older releases.  Just copy in your current
config.data after adding the new keyword as described in
UNOFF-NOTES/README and do a 'make update'.)

You can get the release from:

ftp://ftp.math.psu.edu:/pub/INN/inn1.4unoff2.tar.gz

------------------------------

Subject:  Where can I get the latest copy of this FAQ?

0.  If you are reading this document, then you already have part 1 of it.
	So look around where you found this if the other parts are also there.

1.  This five-part FAQ is available via FTP at any FTP site that carries
    INN itself.

2.  This FAQ is also posted to news.software.nntp, news.software.b and
	news.answers about every 10 days.

3.  A htmlized version can be found under 
	<http://www.unibe.ch/~guggis/faqs/inn> or
    <http://www.cis.ohio-state.edu/hypertext/faq/usenet/inn-faq/top.html> or
    <http://www.smartpages.com/faqs/usenet/software/inn-faq/>

	These are grabbed from news.answers - so they might be a bit out
	of date :-(


4.  You can also get this FAQ by sending email to md@pilhuhn.de 
    with "get file faq-inn-1" on the first line of the message.  (the 
	Subject: of the message will be ignored.)
	(Substitute faq-inn-2, faq-inn-3 and so on to get those parts).
! 	Please be a little bit patient. If you don't get an answer within 
	two minutes don't rerequest the files. It will take some minutes to
	process your request. If you are to impatient, then you'll get two
	copies.

For example:

echo get file faq-inn-1 | mail md@pilhuhn.de
echo get file faq-inn-2 | mail md@pilhuhn.de
echo get file faq-inn-3 | mail md@pilhuhn.de
echo get file faq-inn-4 | mail md@pilhuhn.de
echo get file faq-inn-5 | mail md@pilhuhn.de

or

% mail md@pilhuhn.de
Subject: ignored
get file faq-inn-1
get file faq-inn-2
get file faq-inn-3
get file faq-inn-4
get file faq-inn-5
^D

or if you csh and are a total nerd, you can:
	echo 'get file faq-inn-'{1,2,3,4,5}@ \
		| tr @ '\012' | mail md@pilhuhn.de

...or get a real hobby.


------------------------------

Subject: Where may I find additional information?

The Usenix paper from Rich $alz:
	ftp.uu.net:networking/news/nntp/inn/inn.usenix.ps.Z

A good overview for those not familiar with news (from Tom Podnar 
<tpodnar@bones.wcupa.edu>):
	ftp://bones.wcupa.edu/pub/nntp.ps 

RFC's important to News:
	RFC 977: NNTP (Phil Lapsley and Brian Kantor)
	RFC 1036: Standard for Interchange of USENET Messages 
		(M.Horton, Rick Adams)

The O'Reilly Book (only for C News ; new version is in work)
	Managing UUCP and Usenet (Tim O'Reilly and Grace Todino)

The newsgroup news.software.nntp; please look around in this group. Often
	you'll find there the answer to the question you were going to ask. 
	But don't hesitate to ask.
	If you can't post to news.software.nntp you can send mail to
	inn-questions@pilhuhn.de which will post the your mail in that group.

------------------------------

Subject:  What machines does it run on?

If you have socket() and select() then INN will probably run on your
machine.  In addition to the common platforms found around the Internet
(SunOS and Ultrix, for example), INN runs on IBM's AIX, Apple's A/UX,
NeXT, Solaris 2.x, most SVR4 platforms, BSDI, most free BSD systems 
(NetBSD, FreeBSD, ...) and a host of others.  It might require a
little bit of tweaking of some free BSD platforms that have really bad
shells.

INN has not been ported to Windows NT.  There are no plans to do so.
However, someone has written a package called NNS (Usenet Network News
Server) which is a NNTP-compliant news server for Windows NT.  For
information write to nns@jeck.wa.com.


------------------------------

Subject:  INN must be really complicated since this FAQ is so long!

No, it's just that the FAQ is very complete.  Part 2 is so long because
it includes a tutorial that tries to turn a beginner into an TCP/IP
protocol expert.  Part 3 is long because the FAQ maintainer is
constantly trying to add every question ever asked on
news.software.nntp.  Maybe someone should volunteer to maintain an
index.

A lot of the material could be integrated into the Install.ms doc.

Please post questions to news.software.nntp.  Do not send
email to Heiko W.Rupp directly.  By posting your question,
a group of 10 or so people will be trying to help you.


------------------------------

Subject:  Can I run C News with INN?

No.  INN handles all article reception, filing, forwarding, and
expiration.  You will get a corrupted database if you try to
run INN with any other news system.  For testing, you can probably shut
down your old system, bring up INN, and then reverse the process.  (INN
uses the C News history file and DBZ database, so if you don't run C News
you will have to do some fiddling around with those files.)


------------------------------

Subject:  Can I run NNTP with INN?

There's a confusion here.  NNTP is a protocol, defined in RFC 977.  There
is also an implementation of the protocol, NNTP1.5, that many people call
NNTP.  When there was only one implementation of the protocol, that was
okay, but now that there are other implementations (for example, INN) it
is getting confusing.  It would be as if "sendmail" were named "smtp."
Please try to be clear -- do you mean the NNTP protocol, or the NNTP
reference implementation currently maintained by Stan Barber?


------------------------------

Subject:  Can I run the reference implementation (NNTP1.5) with INN?

The quick answer is no.  INN listens on the NNTP port and handles all
incoming traffic.  It receives articles, files them, and arranges for
them to be forwarded to your peers.  If a site connects that is not
listed as a peer (e.g., a local workstation that does newsreading) then
the INN server hands the connection off to another program that handles
just the NNTP commands that newsreaders use.  By default, this is nnrpd
(notice the "r"), which implements the NNTP protocol for newsreaders
(for example, it includes the POST command but not the IHAVE command).
You can run the reference implementation server instead of nnrpd if you
want.  Doing this can be useful if you have clients that want to do
both reading and article transfer.


------------------------------

Subject:  Can I run INN on my UUCP-only machine?

Sure.  While not designed for this, several people are running INN on
machines that do not have IP-connectivity (such as UUCP-only hosts) and
are quite happy with it.  You might want to give it a try, especially if
you think you will be joining the Internet some day.


------------------------------

Subject:  Suppose I have a 286 machine?

Won't work.  INN is designed to be a memory hog; a server that has been up
for a few days while will have a working set size of a few to several
megabytes, although not all of it will be resident.  For example, the
server keeps the active file and list of who gets what in memory, as well
as all articles that it is receiving.  Unless you can do things like
"malloc(64 * 1024)" without pain, INN won't work on your machine.


------------------------------

Subject:  Does INN implement NOV, xthread (trn) or xuser/xmotd (tin) commands?

Newsreaders all need some way to quickly grab data from
a range of articles.  trn, tin, nn, and others each developed
their own database format, and their own extensions to the NNTP
protocol for clients to read the database.  Then, Geoff Collyer
invented NOV, the database to end all other databases.

Rather than support a different database format for each newsreader,
INN supports Geoff Collyer's news overview database, NOV.  INN includes
everything you need to create/maintain/expire NOV's .overview files.
You only need Geoff's distribution (available via FTP on world.std.com
src/news/nov.dist.tar.Z) if you want to see how he implements things,
or to get his client library (useful when building some newsreaders).

It is very easy to configure INN to use NOV.  Read Part 2/4 of
this faq: Subject: Cookbook example of setting up NOV ("overchan")
NB: The NOV code in INN 1.3 is buggy.  Use 1.4 or higher.

The xover command is used for querying the NOV database.  The xover
command is very smart in that if the article has been canceled, the
data isn't given out.  If the article is so new that it's data isn't in
the NOV database, nnrpd opens the article and digs out the data.  xhrd
and xpat make every effort to use NOV data before they dig the data out
of the actual articles, thus making them considerably faster than other
implementations.  The "xoverview" command does not exist.  If your
server supports this command you need to upgrade.

What about TRN's xthread command?

The xthread command has code but it is not supported; look at
$inn/nnrpd/nnrpd.h.  This code will probably vanish after 1.4.

What about TIN's many commands?

Tin commands are not supported.  However, other people have
added TIN support.  See the next section.



------------------------------

Subject:  Is an ident or authorization protocol supported?

An unsupported patch for nnrpd to add ident support can be found via
FTP at ftp.csie.nctu.edu.tw:/pub/news/nnrpd-identd-patch.shar.gz.  It
includes patches to add tin's xuser and xmotd commands as well as a
list subscription system. (skhuang@csie.nctu.edu.tw)

Remember: ident information is only as valid as the server you connect
to.  Any fool with root access (or anyone with a PC or Mac) can create
a bogus ident server that will give out whatever information they want
you to see.  It's not an authorization or identification protocol, it's
just informational.

The authd protocol is added to nnrpd by <nhiro@isci.kyutech.ac.jp>.
This unsupported patch can be found in
ftp.geophys.hokudai.ac.jp:/pub/network/news/inn/patches/authd-patch-1.3.tar.gz
The documentation is in Japanese.  Good luck.

In a future release, you will be able to log all POST commands with
ident information if you so choose.  (Maybe INN 1.5)


------------------------------

Subject:  Does INN do UUCP batching like C News?

Not as part of the standard distribution.  The batching system right
now is better than B News, but Rich has said he will be working on
improving that part of INN in a future release.  Christophe Wolfhugel
<Christophe.Wolfhugel@grasp.insa-lyon.fr> has written a package that is
very much like the C News batching system, however.  You can find it on
ftp.univ-lyon1.fr in the pub/unix/news/inn/contrib directory.

Version 3 of Christophe's package includes a shell version and a Perl
version.  Version 4, not yet planned will only be in Perl.  The
configuration file has evolved from older releases in order to support
new features like "minimum batching".


------------------------------

Subject:  Help!  How do I configure this beast?

READ AND FOLLOW THE "Install.ms" FILE.  This FAQ is meant to add to
what Install.ms says not replace it.

Many people that thought the Install.ms doc was incomplete later
re-read the "First Time Installation" portion and were amazed how much
they missed (or just plain skipped) the first time.

You should also purchase the O'Reilly And Associates book on Managing
Usenet to give yourself a good grounding on how to run a site.


------------------------------

Subject:  How do I thank the FAQ maintainer?

If you find this document useful, please consider making a donation to
the maintainer's favorite charity:

	The Personal Liberty Fund
	PO Box 11335
	New Brunswick, NJ 08906-1335
	USA

The PLF is a legal and educational organization which helps people in
New Jersey, USA.  They have many on-going projects which range from
combating youth suicide to legal advocacy.  Their Anti-Violence Project
runs a phone hotline for reporting gay-bashing which helps hundreds of
people a year.  The PLF is an all-volunteer organization and couldn't
survive without donations.  The PLF is recognized by the IRS as a
501(c)3 tax-exempt charity.  Donations are tax deductible to the
fullest extent of the law (U.S. citizens only).  Please write "INN" in
the memo field of the check.  Fifteen, fifty, or five hundred dollars...
every penny is appreciated!


======================================================================
            SPECIFIC NOTES FOR SPECIFIC OPERATING SYSTEMS
======================================================================

------------------------------

Subject: BASH tips

If you are using a Unix who's /bin/sh is a hardlink to
bash, you'll find problems using nntpsend.  nntpsend uses
a variable named PPID, which is a read-only variable in BASH.

You'll get errors that look like this:
sh: PPID: read-only variable

You can fix it using the the following patch:


*** nntpsend~   Thu Aug 12 03:36:16 1993
--- nntpsend    Sat Oct 23 15:54:11 1993
***************
*** 1,4 ****
! #! /bin/sh
  ##  $Revision: 1.12 $
  ##  Send news via NNTP by running several innxmit processes in the background.
  ##  Usage:
--- 1,4 ----
! #!/usr/local/bin/bash
  ##  $Revision: 1.12 $
  ##  Send news via NNTP by running several innxmit processes in the background.
  ##  Usage:
***************
*** 130,140 ****
      chmod 0660 ${LOG}
      exec >>${LOG} 2>&1
  fi
! PPID=$$
! echo "${PROGNAME}: [${PPID}] start"
  
  ##  Set up environment.
! export BATCH PROGNAME PPID INNFLAGS
  
  ##  Loop over all sites.
  cat ${INPUT} | while read SITE HOST MAXSIZE FLAGS; do
--- 130,140 ----
      chmod 0660 ${LOG}
      exec >>${LOG} 2>&1
  fi
! CPID=$$
! echo "${PROGNAME}: [${CPID}] start"
  
  ##  Set up environment.
! export BATCH PROGNAME CPID INNFLAGS
  
  ##  Loop over all sites.
  cat ${INPUT} | while read SITE HOST MAXSIZE FLAGS; do
***************
*** 240,246 ****
      fi
  
      ##  Start sending this site in the background.
!     export SITE HOST LOCKS BATCHFILE PROGNAME PPID SIZE TMPDIR
      sh -c '
        BATCHFILE=${HOST}.nntp
        LOCK=${LOCKS}/LOCK.${HOST}
--- 240,246 ----
      fi
  
      ##  Start sending this site in the background.
!     export SITE HOST LOCKS BATCHFILE PROGNAME CPID SIZE TMPDIR
      sh -c '
        BATCHFILE=${HOST}.nntp
        LOCK=${LOCKS}/LOCK.${HOST}
***************
*** 247,253 ****
        trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
        shlock -p $$ -f ${LOCK} || {
            WHY="`cat ${LOCK}`"
!           echo "${PROGNAME}: [${PPID}:$$] ${HOST} locked ${WHY} `date`"
            exit
        }
        if [ -f ${SITE}.work ] ; then
--- 247,253 ----
        trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
        shlock -p $$ -f ${LOCK} || {
            WHY="`cat ${LOCK}`"
!           echo "${PROGNAME}: [${CPID}:$$] ${HOST} locked ${WHY} `date`"
            exit
        }
        if [ -f ${SITE}.work ] ; then
***************
*** 254,259 ****
--- 254,260 ----
            cat ${SITE}.work >>${BATCHFILE}
            rm -f ${SITE}.work
        fi
+       if [ -s ${SITE} ] ; then
        mv ${SITE} ${SITE}.work
        if ctlinnd -s -t30 flush ${SITE} ; then
            cat ${SITE}.work >>${BATCHFILE}
***************
*** 260,273 ****
            rm -f ${SITE}.work
            test -n "${SIZE}" && shrinkfile -s${SIZE} -v ${BATCHFILE}
            if [ -s ${BATCHFILE} ] ; then
!               echo "${PROGNAME}: [${PPID}:$$] begin ${HOST} `date`"
!               echo "${PROGNAME}: [${PPID}:$$] innxmit ${INNFLAGS} ${HOST} ..."
                eval innxmit ${INNFLAGS} ${HOST} ${BATCH}/${BATCHFILE}
!               echo "${PROGNAME}: [${PPID}:$$] end ${HOST} `date`"
            else
                rm -f ${BATCHFILE}
            fi
        fi
        rm -f ${LOCK}
      ' &
      sleep 5
--- 261,275 ----
            rm -f ${SITE}.work
            test -n "${SIZE}" && shrinkfile -s${SIZE} -v ${BATCHFILE}
            if [ -s ${BATCHFILE} ] ; then
!               echo "${PROGNAME}: [${CPID}:$$] begin ${HOST} `date`"
!               echo "${PROGNAME}: [${CPID}:$$] innxmit ${INNFLAGS} ${HOST} ..."
                eval innxmit ${INNFLAGS} ${HOST} ${BATCH}/${BATCHFILE}
!               echo "${PROGNAME}: [${CPID}:$$] end ${HOST} `date`"
            else
                rm -f ${BATCHFILE}
            fi
        fi
+       fi
        rm -f ${LOCK}
      ' &
      sleep 5
***************
*** 275,278 ****
  
  wait
  rm -f ${INPUT}
! echo "${PROGNAME}: [${PPID}] stop"
--- 277,280 ----
  
  wait
  rm -f ${INPUT}
! echo "${PROGNAME}: [${CPID}] stop"


------------------------------

Subject:  GNUS tips

In article <3g82ll$mr4@tid.tid.es> emilio@tid.es (Emilio Losantos) writes:

> I have to use GNUS 4.1 to read news from a nntp server running INN 1.4, but
> whenever I try to select a group I receive the message:

>  "GROUP" not implemented; try "help"

> Could anybody tell me how to fix this problem?

jbryans@csulb.edu (Jack Bryans) replies:

Patch your nntp.el something like this:

*** 72,77 ****
--- 72,79 ----
    (set-process-sentinel nntp/connection 'nntp/sentinel)
    (process-kill-without-query nntp/connection)
    (let ( (code (nntp/response)) )
+     (nntp/command "mode reader")
+     (nntp/response)
      (or (eq code 200) (eq code 201))))
  
  (defun nntp-server-opened ()

Note that your line numbers may vary.  There's a lot of nntp.el's out there.



------------------------------

Subject:  AIX tips

Q:  In config.data, should ACT_STYLE be set to READ or MMAP?

A:  Gee, some say MMAP works, some say it doesn't.  I recommend you use
READ.  After you've been running for a month, try MMAP for a day and
see what happens.


Q: What compiler should I use?

A: Most people use what's listed in Install.ms, though we have
one report of a AIX 3.2.5 user that found bsdcc worked better.


Q: When I run news.daily, there's always a few lines of error
messages at the end of the output:

	compress: bad file number

A:  AIX /usr/bin/compress has a bug when compressing files with zero
length. Then it spits out this error.  Solution: Ignore it or use a
different compress program and change config.data accordingly.
(from Kurt Jaeger <pi@rus.uni-stuttgart.de>)


Q:  innwatch doesn't work well from /etc/inittab, does it?

A:  Nope.  Instead, you can create a "subsystem" with this command:

mkssys -s innwatch -p /usr/local/news/bin/innwatch \
	-u `id -u news` -G news -S -n 15 -f 9

Note that your path to innwatch may differ, depending on where you
decided to install the inn components.  You also need to enter the
command as one long line.

This will create a subsystem named "innwatch" belonging to an SRC group
named "news".  The "-S" means that it uses signals for SRC to tell it
when to stop and the "-n" is the SIGTERM signal, for normal shutdown,
and the "-f" is the SIGKILL signal, which is sent if the process does
not stop within 20 seconds.  Then, modify rc.news to issue the command

    startsrc -s innwatch

to get innwatch going.  That's it!

Shane Castle <swcxt@boco.co.gov, swcxt@csn.org>


Q:  When I compile I get something like:
	0706-317 ERROR: Unresolved or undefined symbols detected:
		Symbols in error (followed by references) are
		dumped to the load map.
		The -bloadmap:<filename> option will create a load map.
		.dbzwrit
	cd frontends ; make  all ; cd ..
	Target all is up to date.
A:  That means you don't have a program called "patch" installed on
your machine.  Refer to "Subject:  ld.so: Undefined symbol: _dbzwritethrough"


Q:  What can I change in innwatch.ctl to make it work right?

A:  The "df" command in AIX has a funny output that requires you to
modify innwatch.ctl.  The FTP site has an install.ctl that uses "df -i"
(some AIX versions) and another one that uses "df -v" (recommended by
someone with AIX 3.2.5).


------------------------------

Subject:  SunOS 4.1.1 tips

SunOS 4.1.1 (but not 4.1.2 or 4.1.3) broke the write system call but a
patch is available.  Any write could fail "half way", it is just more
likely to happen when writing large files and in-core DBZ writes the
history file out in one chunk.  The "Known Problems" section of the
installation manual says to install Patch 100293-01, but that has
been replaced by 100622-01.


------------------------------

Subject:  Ultrix tips

Tip #1:  Ultrix has a "mmap()" function, but it doesn't do the same
thing as the SunOS/BSD mmap() function.  Therefore, do not configure
INN to use mmap() on a Ultrix system.  INN wants to find a mmap()
function that is like the one on SunOS/BSD systems.

Tip #2:  The sendsys script breaks Ultrix 'nawk'.  You can make
a 1-line change or you can switch to 'awk' or "gawk".
Original line:
	${AWK} "/^$1"'[/:\\]/,/[^\\]$/' ${NEWSFEEDS} >${TEMP}
Modified line:
	${AWK} "/^$1"'[\/:\\]/,/[^\\]$/' ${NEWSFEEDS} >${TEMP}
The original line will work with awk, gawk, but not nawk.
The modified line will work with awk, gawk, or nawk.
If you have gawk running on your machine use it.  Otherwise, switch to
awk.

Tip #3: The syslog on Ultrix sucks rotten eggs and Digital refuses to
fix it.  (source: everyone that uses Ultrix and has ever used other
systems)  Luckily, you can replace it with the routine that comes with
INN.  However, some people have had better luck installing the syslog
that can be found on
"gatekeeper.dec.com:/pub/DEC/jtkohl-syslog-complete.tar.Z".  It still
works with old clients but does new-style syslogging, too.  Works great
for me so far.  (this information from:  nelson@reed.edu (Nelson
Minar)).  The syslog that is shipped with INN works pretty well but
there have been some claims that some old clients don't like it.


------------------------------

Subject:  HP-UX tips

Q.  My logs keep telling me there is no space for articles
A.  Edit innwatch.ctl to use "bdf" instead of "df".

Q. I am running inn on an HP machine. INN won't start up automatically.
I can start it manually.  There is no problem with news or INN once
it is started.

A.  Try adding a "sleep 10" to the bottom of /etc/rc.news, or in
/etc/rc, right after /etc/rc.news is invoked.  On some machines,
including HP, the shell started by "#!/bin/sh" when /etc/rc is executed
will exit before innd has disassociated itself from that shell.  This
causes innd to exit, sometimes without printing an error message.
(source: pjoslin@mbvlab.wpafb.af.mil (Paul Joslin ))

This problem goes away if you set HAVE_SETSID to "DO".  Something to do
with Posix Session Leader concepts.  Ick.  (source: Steve Howie 
<showie@uoguelph.ca>).  You can also do something like:

	echo /usr/lib/etc/rc.news | at now + 2 minutes

HP-UX 8.x and 9.x users might find a problem with getting innwatch to
start up.  People have found that having "at" start it seems to work
more reliably than other methods:

${DOINNWATCH} && {
	echo "${INNWATCH} &" | su ${NEWSUSER} -c 'at now + 2 min' > /dev/null
}

The '&' in the command line prevents innwatch from taking up an at-job 
slot.  SysV-style crons have a per-category and overall limit on the 
number of jobs executing simultaneously.

Q:  INN-1.4sec running on an HP9000 s700 with HP-UX 9.01 leaks memory
like crazy.  The innd process grows and grows, then stops with:

	"ME cant remalloc 8192 bytes Not enough space"

A:  The cause turns out to be a memory leak in the standard C library (both
/lib/libc.a and /lib/libc.sl).  Installed patch PHCO_5056 (or the latest
libc patch).


------------------------------

Subject:  UnixWare tips

UnixWare 1.1.2 works with domain sockets.  Install
ptf149 "unix domain sockets" and
ptf678 "fix for sockmod's incorrect handling of disconnect indication"

Otherwise, configure like any SVR4 system.


------------------------------

Subject:  Linux tips

Get inn-1.4-linux-0.1.tar from ftp://sunsite.unc.edu/pub/Linux/system/News
It contains instructions for installing INN on a Linux system and a
working config.data file.  (from ghio@myriad.pc.cc.cmu.edu)

If you don't follow the directions in inn-1.4-linux-0.1.tar, here 
are some of the problems you might have:

| nntpsend.log says the following.

| nntpsend: [214:222] innxmit -a -t300 -T1800
| travelers.mail.cornell.edu ...
| Ignoring line "cornell/test/13 805 ..."
| sh: PPID read-only variable

Tomasz Surmacz <tsurmacz@ict.pwr.wroc.pl> writes:

If you are using INN under Linux or have your /bin/sh a symlink to
/bin/bash the above problem appears (in nntpsend precisely speaking,
not innxmit)

The problem is that bash already defines the PPID variable and
nntpsend is trying to use it too.  To fix this:

1. comment out line PPID = $$
2. change all occurrences of PPID to say PARENTPID

I have also noticed that changing first line of nntpsend from
'#!/bin/sh' to "!/bin/bash" helps in such occasions.


------------------------------

Subject:  A/UX 3.0 (Macintosh) tips

Tip #1: Use the INN malloc.

Tip #2:  If you are running INN 1.4 on a Mac running A/UX 3.0.1, Every
so often, (generally when someone fires up a reader), INN goes berserk.
Syslog says:

	innd: ME cant select Bad file number

This message repeats about 20 times per second.  It freezes up my
computer and I need to reboot.

That's a kernel bug. You do have to reboot.

If you compiled inn with gcc, don't. My experience was that somehow, if
INN was compiled with GCC the kernel bug is triggered, but that doesn't
happen with cc.


------------------------------

Subject:  Alpha OSF tips:

To compile INN for the DEC Alpha, follow the instructions in the INN
patch archive on ftp.math.psu.edu:/pub/INN/patches

A config.data file for OSF1.3a is in:
	ftp://pirates.cs.swt.edu/pub/usenet/inn/inn1.4/config
A config.data file for OSF3.0 is in:
	ftp://pirates.cs.swt.edu/pub/usenet/inn/inn1.4sec/config

In rc.news you need to start $INNWATCH using the following:

${DOINNWATCH} && {
    echo "${INNWATCH} &" | su ${NEWSUSER} -c 'at now + 2 min' > /dev/null
}
 
The '&' in the command line prevents innwatch from taking up an at-job
slot.  SysV-style crons have a per-category and overall limit on the 
number of jobs executing simultaneously.


------------------------------

Subject:  SGI IRIX 5.x tips

Some people have reported that IRIX 5.1 isn't very reliable and that it
is worth it to run 5.2.   5.3 is even better, but it is still not
perfect.  (In other words: IT WORKS FINE AS Install.ms DESCRIBES!)

<rck@fangio.asd.sgi.com> Robert Keller has some tips for filesystem
layout:

NOTE: For efs filesystems, you want to be sure that you mount your
news spool using the lbsize option (/etc/fstab) set to 4096, eg:
          
    /dev/dsk/dks1d5s7 /spool efs rw,raw=/dev/rdsk/dks1d5s7,lbsize=4096 0 0

This tells efs to only preallocate 4K worth of space on the first write 
of a file to disk.  The default of 32K causes a terrible waste of effort 
for the writing of an average 2K news posting.  
For the new xfs filesystems, you want to be increase the default filesystem 
block size from 512 bytes to about 2K for maximum performance.  I just setup 
a 8 Gig xfs news spool on a Challenge L using 2K blocks and the performance 
is absolutely incredible.

------------------------------

Subject:  Pyramid and system's where only root can have "cron" jobs.

Your cron jobs may not work if you use:

	su news -c /usr/lib/news/bin/news.daily delayrm expireover

Instead, you must put the entire command in quotes.  Like this:

	su news -c "/usr/lib/news/bin/news.daily delayrm expireover"

Look for "Pyramid" later in this FAQ for the interesting details.

------------------------------

Subject:  System V based Unixes (SVR4, Solaris 2.x, SCO ODT 3.0, AIX, A/UX, DELL, ...)

NOTE:  Solaris 2.x is based on SVR4.0.  These tips are useful in a
limited way.  Read this section for general advice, but follow the
"Solaris 2.x" section details.

If you are running any non-BSD (i.e. System V based) Unix you MUST have
the following option set:

##  How should close-on-exec be done?  Pick IOCTL or FCNTL.
#### =()<CLX_STYLE              @<CLX_STYLE>@>()=
CLX_STYLE               FCNTL

This includes SVR4, Solaris 2.x, A/UX and SCO ODT 3.0.  (SVR4 means
systems based on System V Release 4 from USL.  Please check your manual
to see if your operating system is based on SVR4.)

This CLX_STYLE setting is clearly stated in the Install.ms file and
repeated here since so many people post to news.software.nntp after
ignoring the warnings.

If CLX_STYLE isn't set to FCNTL, you'll get tons of overchan processes
hanging around.

With SCO ODT 3.0 and MOST systems, innd will link and run if you use
IOCTL but eventually will stop answering incoming calls.

Don't be fooled.  Just because it compiles doesn't mean it's going to
work.

If you start innd on an AT&T SysV Rel 4.0 machine and get syslog
messages like:
	localhost:15 cant setsockopt(SNDBUF) Protocol error
	localhost:15 cant setsockopt(RCVBUF) Protocol error
then you should FIRST try to change HAVE_UNIX_DOMAIN to "DONT" in
config.data.  If that doesn't fix the problem, you should add
"-USO_SNDBUF" to your DEFS parameter in config.data.  Or, you can
comment out the "setsockopt()" calls.  This is also mentioned
in the Install.ms file (which means if you needed to read it
here, you weren't paying attention when you read Install.ms)

Many SVR4 for i486 binaries (sendmail, mh, vmail, innd, rnews are now
on ftp.germany.eu.net in pub/comp/i486/svr4/*.SVR4.tgz But remember
that some of the above need site specific changes, so their usefulness
may be limited.

If you get syslog messages that say, "ME cant accept RCreader"
please refer to Part 2 of this FAQ.

DELL ships their Unix with /dev/log chmod'ed to 0644 which means nobody
can syslog anything.  Pretty stupid, eh?  INN uses syslog extensively.
If you find that you don't get any syslog messages check to see if you
need to: "chmod 0666 /dev/log".

Nobody knows why SVR4 boxes often give error messages like,
"innd:  accept: SIOCGPGRP failed errno 22".  There's some sort of
obscure bug with the SVR4 accept() call that can lead to these
messages, if the executable is linked a certain way. I suspect that the
same symbol -- for two totally separate variables or routines -- is
defined in two different libraries, so if you link in certain ways you
get the "wrong" thing. This error drove me crazy when I first built
sendmail V8 on our NCR 3000 box. But I re-linked it a different way and
I haven't seen the error since. Good riddance. I suggest you play
around with your link libraries and/or order of linkage.

kevin@cfc.com (Kevin Darcy) says he never gets theses messages since
he started using (in config.data):
LIBS                    -lsocket -lnsl -lelf


If your SVR4 system still doesn't run correctly, check the
Solaris 2.x suggestions.


------------------------------

Subject:  Solaris 2.x special needs

SOLARIS 2.4:  Install the Recommended cluster patch from Sun.
The Recommended cluster patch is:
	ftp://sunsolve1.sun.com/pub/patches/2.4_Recommended.tar.Z
	The README is:
	ftp://sunsolve1.sun.com/pub/patches/2.4_Recommended.README
Then follow the directions in
	ftp://ftp.math.psu.edu/pub/INN/patches/OLD/solaris-2.4.patch.
	The patch needs to be applied BY HAND, it is not in the correct format
	to work with Larry Wall's patch program.  Also, do *not* link with the
	/usr/ucblib stuff, and HAVE_WAITPID should be set to "DO".
On 3/25/95 Sun introduced patch 101945-23 which fixes bug #1178506 titled
	"INN wounded after upgrade to SunOS 5.4".  This fixes the
	"cant read Resource temporarily unavailable" bug that some
	have reported.
    But Even if the Sun Patch mentions
	"1186224 socket select hangs in NON-BLOCKED mode", this seems not to
	be totally fixed. Ian Dickinson doesn't notice it on his lightly loaded
	server. But on heavily loaded machines, it occurs occasionally 
	(<5 times a day). See below for a patch (Solaris Fix #7 )
It seems that the last version of the kernel patch is 191945-29.

Include /opt/SUNWspro/bin  and /usr/bin in your path before /usr/ucb as
	/usr/ucb/sed does not work well.

SOLARIS 2.3:  If you install the "Recommended cluster patch" I *think*
	you will only need to pay attention to Fix #5 listed below.  It would
	be helpful if people sent an update about this.
The Recommended cluster patch is:
	ftp://sunsolve1.sun.com/pub/patches/2.3_Recommended.tar.Z
The README is:
	ftp://sunsolve1.sun.com/pub/patches/2.3_Recommended.README

(note: If you trust other people to compile programs for you
[especially ones that run as root] you can get inn1.4sec pre-compiled
w/gcc at ccnews.ke.sanet.sk:/pub/solaris/inn1.4sec-src+bin.tar.gz)

INN works with Solaris 2.[0123].  It's not easy, but it will work.
The problem is that depending on which Solaris patches you have
installed, you have to install various INN patches.  There are too
many combinations of Sun patches and INN patches to be able to say
what is required and what isn't.  (See the "SOLARIS 2.3" tip above
for one tried and tested configuration).

Here is the general guide: 

Step 1:  Use the info for config.data for Solaris 2.x that is included
	Install.ms.
Step 2:  As you go, if you get any of the problems listed below, try
	the fix listed.

Eventually you will be up and running with only the fixes you need.  If
you try to install ALL the fixes at once, things will definitely not
work.

COMPILER TIPS:  Use gcc or /opt/SUNWspro/bin/cc.  Do *not* use
/usr/ucb/cc.  In fact, remove /usr/ucb from your path when you compile.


---------- Solaris Fix #1

Under Solaris 2.[012] (SunOS 5.0, 5.1, 5.2) you must add the following
at the beginning of each file using gethostbyname():

#define gethostbyname __switch_gethostbyname

Under Solaris 2.3 gethostbyname() might work without changes depending
on your configuration.  We haven't figured out when they work and when
they don't.  If you run into problems, try to change "gethostbyname()"
to "solaris_gethostbyname()" and then use the gethostbyname() listed in
the Solaris Porting FAQ.  This isn't a perfect solution, because you
now need a different binary for Solaris 2.[012] systems.

It also seems to be a good idea to put dns in front of nis in 
/etc/nsswitch.conf

hosts: dns nis files

It would be great if someone were to submit a solaris_gethostbyname()
function who's binary works under all Solaris revs and gives all the
semantics of BSD gethostbyname().  In particular, one that doesn't have
the problems discussed in sun bugid #1126573 or #1135988.  It would be
amazing if this was submitted by one of the many Sun employees that
flame the INN FAQ maintainer in comp.sys.sun.admin every time he bitches
about how much he hates Solaris 2.x. :-)

---------- Solaris Fix #2

Under all Solaris 2.* versions there is a problem with innwatch.ctl.
It expects to use "df -i" to find out how many inodes are free on your
disk.  /usr/{sbin,5bin,bin}/df doesn't support the "-i" option, it has
a "-e" option that outputs the info you want, but in a different
format.  You should use "/usr/ucb/df -i" instead, since this version of
df includes the "-i" option. 

If you have too much space left on your disks (;-)) you will see the 
following:

Filesystem             iused   ifree  %iused  Mounted on
/dev/md/dsk/d10      103495213433720     7%   /var/spool/news

So awk will print 7% as number of free inodes ... 

Ian Dickinson recently wrote a inndf which can be found at the usual place.
This inndf compiled with gcc and -DSVR4 seems to work though (after 
Nash E. Foster <nef10958@usln1b.glaxo.com> ).

If you have your news spool NFS mounted from another box, which is 
absolutely not recommended (see Part 2 , ME cant nonblock), then the 
following might help: rsh other_box /usr/ucb/df -u /var/spool/news

/usr/ucb/df is part of the BSD Compatibility stuff.  If you loaded
Solaris 2.x without that, you can replace innwatch.ctl's disk checks
with these lines:

##  If load is OK, check space (and inodes) on various filesystems
##  =()<!!! /usr/bin/df -k . | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_SPOOLSPACE>@ ! throttle ! No space (spool)>()=
!!! /usr/bin/df -k . | awk 'NR == 2 { print $4 }' ! lt ! 8000 ! throttle ! No space (spool)
##  =()<!!! /usr/bin/df -k @<_PATH_BATCHDIR>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_BATCHSPACE>@ ! throttle ! No space (newsq)>()=
!!! /usr/bin/df -k /news2/spool/out.going | awk 'NR == 2 { print $4 }' ! lt ! 800 ! throttle ! No space (newsq)
##  =()<!!! /usr/bin/df -k @<_PATH_NEWSLIB>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_LIBSPACE>@ ! throttle ! No space (newslib)>()=
!!! /usr/bin/df -k /news2/privcontrol | awk 'NR == 2 { print $4 }' ! lt ! 40000 ! throttle ! No space (newslib)
##  =()<!!! /usr/bin/df -k @<_PATH_OVERVIEWDIR>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_OVERVIEWSPACE>@ ! throttle ! No space (overview)>()=
!!! /usr/bin/df -k /news3/overview | awk 'NR == 2 { print $4 }' ! lt ! 6000 ! throttle ! No space (overview)
##  =()<!!! /usr/bin/df -e . | awk 'NR == 2 { print $2 }' ! lt ! @<INNWATCH_SPOOLNODES>@ ! throttle ! No space (spool inodes)>()=
!!! /usr/bin/df -e . | awk 'NR == 2 { print $2 }' ! lt ! 200 ! throttle ! No space (spool inodes)

---------- Solaris fix #3

Don't run the "lint" step if you use Solaris.  In fact, nobody needs to
execute this step except Rich, when he's writing new code.  If you have
a Solaris machine without "lint", just make "lint" a symlink to
"/bin/echo".

---------- Solaris fix #4

People running Solaris 2.3 have built INN with HAVE_UNIX_DOMAIN set to
TRUE and everything seems to be ok.  I guess Sun has fixed enough
bugs in 2.3 to make it usable.  I recommend the latest "recommended
patches" if you run any version of Solaris 2.x.  To install all of
the "Recommended Patches" in one command, refer to:
ftp://sunsolve1.sun.com/pub/patches/patches.html

---------- Solaris fix #5

If "inews" outputs "Bad Message-ID" when posting Under Solaris 2.x
(where x = 0, 1, 2 or 3) you need to change the file "getfqdn.c".  Find
the lines that read:

	if (strchr(hp->h_name, '.') == NULL) {
		/* Try to force DNS lookup if NIS/whatever gets in the way. */
		(void)strncpy(temp, buff, sizeof buff);
		(void)strcat(temp, ".");
		hp = gethostbyname(temp);
	}

and delete them.

---------- Solaris fix #6

If posting gets you "441 Can't generate Message-ID, Error 0" and you
are running with DNS, then the problem is with Solaris 2.3's
gethostbyname.  dns.  If you ask for a host with "hostname." it returns
"hostname." instead "hostname.yourdomain.com" as expected by nn.  The
workaround is to define "domain" in your inn.conf and apply the
following patch to getfqdn.c:

*** getfqdn.c.~1~       Sun Sep  4 09:02:37 1994
--- getfqdn.c   Sun Sep  4 09:53:11 1994
***************
*** 35,45 ****
      if ((hp = gethostbyname(buff)) == NULL)
        return NULL;
!     if (strchr(hp->h_name, '.') == NULL) {
!       /* Try to force DNS lookup if NIS/whatever gets in the way. */
!       (void)strncpy(temp, buff, sizeof buff);
!       (void)strcat(temp, ".");
!       hp = gethostbyname(temp);
!     }
!     if (hp != NULL && strchr(hp->h_name, '.') != NULL) {
        if (strlen(hp->h_name) < sizeof buff - 1)
            return strcpy(buff, hp->h_name);
--- 35,39 ----
      if ((hp = gethostbyname(buff)) == NULL)
        return NULL;
!     if (strchr(hp->h_name, '.') != NULL) {
        if (strlen(hp->h_name) < sizeof buff - 1)
            return strcpy(buff, hp->h_name);

---------- Solaris fix #7

>From  Ian Dickinson: 
Sun appear to reduced the frequency of the problem, but not fixed the bug
itself.  I still need this under SunOS5.4 101945-29.  You should already
have -DSUNOS5 in your DEFS setting in config.data anyway.

This should apply - maybe with a bit of fuzz:

*** innd/chan.c.ORIG    Wed Dec 14 11:03:16 1994
--- innd/chan.c Thu Dec 15 17:00:54 1994
***************
*** 497,502 ****
--- 497,508 ----
      bp->Left = bp->Size - bp->Used;
      i = read(cp->fd, &bp->Data[bp->Used], bp->Left - 1);
      if (i < 0) {
+ #ifdef SUNOS5
+     /* return of -2 indicates EAGAIN, for SUNOS5.4 poll() bug workaround */
+       if (errno == EAGAIN) {
+           return -2;
+       }
+ #endif
        syslog(L_ERROR, "%s cant read %m", p);
        return -1;
      }
*** innd/nc.c.ORIG      Thu Mar 18 21:04:28 1993
--- innd/nc.c   Thu Dec 15 17:00:41 1994
***************
*** 783,788 ****
--- 783,794 ----
      /* Read any data that's there; ignore errors (retry next time it's our
       * turn) and if we got nothing, then it's EOF so mark it closed. */
      if ((i = CHANreadtext(cp)) < 0) {
+ #ifdef SUNOS5
+     /* return of -2 indicates EAGAIN, for SUNOS5.4 poll() bug workaround */
+       if (i == -2) {
+           return;
+       }
+ #endif
        if (cp->BadReads++ >= BAD_IO_COUNT) {
            if (NCcount > 0)
                NCcount--;


------------------------------

Subject:  Slackware Tips

Slackware comes with The Reference Implementation of NNTP as well as
INN.  However, if you select "INN" it doesn't remove the nntp entry in
your /etc/inetd.conf.  If the Slackware people aren't sure why INN
requires you to remove that line from /etc/inetd.conf, they should get
out of the business.  (oh, they can complain to tal@plts.org... he wrote
this paragraph).


------------------------------

Subject: BSDi 2.0 / FreeBSD / NetBSD

Paul Vixie <paul@vix.com> wrote that for BSDi 2.0the use of mmap for 
use with the history file is ok (add -DMMAP to DBZFLAGS in config.data), 
but not for active, so set ACT_STYLE to READ. 

For NetBSD1.0 one shouldn't use mmap() 

For FreeBSD 2.05 is the first version with working mmap() after 
Torsten Blum (torstenb@FreeBSD.ORG) The ports for the appropriate
systems will have it defined as it should.

If you have problems with makehistory on BSDi then replace the BSDi sort 
command with an other one e.g. from the gnu textutils package. It seems 
that the BSDi one has some problems with 64kB boundaries.

BSDi has a default some datasize limits which will let some operations
fail. Add the following at the beginning of rc.news (and also of news.daily):

limit datasize unlimited
limit openfiles 256
limit memoryuse unlimited
limit maxproc unlimited


------------------------------

Subject:  3Com Router users

If you observe strange behavior, like nnrpd locking and not sending
some articles to the clients, and if you find no clues about other
potential problems, then check your IP layer: some users have observed
bugs in the IP implementation of 3Com routers caused TCP
sessions lock outs.  You have very probably also NFS problems then.
Upgrading to the latest PROMs fixes this totally bizarre problem.


------------------------------

Subject:  NOV problems on a Pyramid

Q:  I just turned on the overview stuff and I don't think news.daily is
properly expiring the .overview files.  I'm using a Pyramid.

A:  Do you need quotes in your crontab entry?  Look at your news.daily
report -- expire using "expireover delayrm" should take a few minutes.
If it takes longer than, say, 10-20 minutes, then the keywords aren't
being seen by news.daily so perhaps the commandline quoting is wrong.

i.e. you had:

	su news -c /usr/lib/news/bin/news.daily delayrm expireover

You should have:

	su news -c "/usr/lib/news/bin/news.daily delayrm expireover"

Without quoting, the options are thrown away and only the "news.daily"
is executed.

------------------------------

Subject:  Warnings to people that must set HAVE_UNIX_DOMAIN to DONT

Disclaimer:  First of all, if you have to set HAVE_UNIX_DOMAIN to DONT,
YOU HAVE TO SET IT to DONT.  It's not a choice you can make, it's a
description of the operating system that you've purchased.  If you've
wrongly set this variable to DO your system isn't going to work *at*
*all*.

When you use POST (the NNTP command), you are talking to nnrpd.  nnrpd
cleans up your headers, adds the missing headers that it is allowed to
add, checks whatever it checks, and then submits the finalized version
to innd.  How does it talk to innd?

If you have HAVE_UNIX_DOMAIN set to DO, nnrpd opens a Unix domain
socket and sends the text.  At this point it is talking to innd
somewhat like ctlinnd does.  innd can trust that the post isn't
forged since it is coming from a program trustworthy enough to
get to the socket (which isn't much).

If you have HAVE_UNIX_DOMAIN set to DONT, it has no choice but to open
a socket to port 119, issue the "IHAVE" command, and send the text that
way (just like a remote newsreader).  This means that innd (not another
nnrpd) has to be at the other end of the pipe.  If it opens the
connection and sees a "nnrpd" you're hosed and you get "441 480
Transfer permission denied".  (Better the "441 480" message than an
infinite loop of nnrpd's connecting to nnrpd's!)  To get innd to not
hand off the connection to a nnrpd process, you must have the host's
name in the hosts.nntp file.  (don't forget to do "ctlinnd reload
hosts.nntp")

If you have your host's name in the hosts.nntp file, then any
newsreader running on your nntphost must be "INN-aware" (i.e. that they
issue the "mode reader" command) or they must read news via the file
system instead of NNTP.

If you have NNTP-based newsreaders that can't send the "mode reader"
command, you can try including "server: localhost" in your inn.conf
file, but then you must have a different inn.conf file for the other
machines.  If you can't do that, you have no other options but to
recompile your newsreaders.

Remember, if you change your inn.conf file, you must shutdown and
restart innd.  There is no "ctlinnd reload inn.conf" command.

-- 
Heiko W.Rupp        Gerwigstr.5        D-76131  Karlsruhe    +49 721 9661524
"USENET is William Shatner and George Bush trading places after being hit
 by lightning." -- James 'Kibo' Parry


