INND(8)

INND(8)

inncheck Home Page System Administration Index innlog.pl


NAME
       innd, inndstart - InterNetNews daemon

SYNOPSIS
       innd  [  -a  ] [ -c days ] [ -d ] [ -f ] [ -i count ] [ -o
       count ] [ -l size ] [ -m mode ] [ -n flag ] [ -p port ]  [
       -r  ] [ -s ] [ -S host ] [ -t timeout ] [ -u ] [ -x ] [ -L
       ] [ -N ] [ -H count ] [ -T count ] [ -X seconds ]

       inndstart [ flags ]

DESCRIPTION
       Innd, the InterNetNews daemon, handles all  incoming  NNTP
       feeds.    It   reads   the  active(5),  newsfeeds(5),  and
       hosts.nntp(5) files into memory.  It then opens  the  NNTP
       port to receive articles from remote sites (see the ``-p''
       option), a Unix-domain stream socket to  receive  articles
       from  local processes such as nnrpd(8) and rnews(1), and a
       Unix-domain datagram  socket  for  use  by  ctlinnd(8)  to
       direct  the  server  to  perform certain actions.  It also
       opens the history(5) database and two log files to replace
       its standard output and standard error.

       Once  the  files  and sockets have been opened, innd waits
       for connections and data to be ready on its ports by using
       select(2)  and non-blocking I/O.  If no data is available,
       then it will  flush  its  in-core  data  structures.   The
       default  number  of  seconds to timeout before flushing is
       300 seconds.

       If innd gets an NOSPC error (see intro(2)) while trying to
       write  the  active  file,  an article file, or the history
       database, it will  send  itself  a  ``throttle''  command.
       This will also happen if it gets too many I/O errors while
       writing to any files.

OPTIONS
       -p     If the ``-p'' flag is used, then the NNTP  port  is
              assumed  to  be  open  on the specified descriptor.
              (If this flag is used, then innd assumes it is run-
              ning  with  the  proper permissions and it will not
              call chown(2) on any files or directories  it  cre-
              ates.)

       -t     Change  the timeout period before flushing to time-
              outseconds.

       -i     To limit the number of incoming  NNTP  connections,
              use the ``-i'' flag.  A value of zero will suppress
              this check.  The default is 50.

       -o     To limit the number of files that will be kept open
              for  outgoing file feeds, use the ``-o'' flag.  The
              default is  the  number  of  available  descriptors
              minus some reserved for internal use.

       -l     To  limit  the  size  of an article, use the ``-l''
              flag.  If this flag is used, then any article  big-
              ger  than size bytes will be rejected.  The default
              is no checking, which can also be obtained by using
              a value of zero.

       -c     Innd rejects articles that are too old.  While this
              behavior can be controlled by the history database,
              occasionally  a site dumps a batch of very old news
              back onto the network.   Use  the  ``-c''  flag  to
              specify a cutoff.  For example ``-c21'' will reject
              any articles that were posted  more  than  21  days
              ago.   A  value  of  zero will suppress this check.
              The default is 14 days.

       -d -f  Innd normally puts itself into the background, sets
              its  standard  output  and  error to log files, and
              disassociates itself from the terminal.  Using  the
              ``-d''  flag  instructs  the server to not do this,
              while using the ``-f'' flag just leaves the  server
              running the foreground.

       -u     The logs are normally buffered; use the ``-u'' flag
              to have them unbuffered.

       -m     To start the server in a paused or throttled  state
              (see  ctlinnd(8))  use  the  ``-m'' flag to set the
              initial running mode.  The  argument  should  start
              with  a  single  letter  g, p, or t, to emulate the
              ``go,''  ``pause,''   or   ``throttle''   commands,
              respectively.

       -r     If  the ``-r'' flag is used, the server will renum-
              ber the active file as if  a  ``renumber''  command
              were sent.

       -s     If  the  ``-s'' flag is used, then innd will not do
              any work but will instead just check the syntax  of
              the  newsfeeds  file.   It  will exit with an error
              status if there are any errors; the  actual  errors
              will be reported in syslog(3).

       -n     The ``-n'' flag specifies whether or not pausing or
              throttling the server should  also  disable  future
              newsreading  processes.  A value of ``y'' will make
              newreaders act as the server, a value of ``n'' will
              allow  newsreading even when the server is not run-
              ning.  The default is to allow reading.

       -S     If the ``-S'' flag is used, then innd will  run  in
              ``slave''  mode.   When  running  as  a  slave, the
              server will only accept articles from the specified
              host,  which  must  use  the  ``xreplic''  protocol
              extension described below.  Note that the host must
              either appear in the hosts.nntp file, or the server
              must be started with the ``-a'' flag.

       -a     By default, if a  host  if  not  mentioned  in  the
              hosts.nntp  file, then the connection is handed off
              to nnrpd.  If the ``-a'' flag  is  used,  then  any
              host can connect and transfer articles.

       -L     If the ``-L'' flag is used, then innd will not cre-
              ate the links for cross posted  articles.   A  feed
              only  type of site could use this option to improve
              performance.  Or it can be combined with a  channel
              feed  to the crosspost(8) program to move the delay
              associated with creating the links out of the  innd
              processing loop.

       -C     If  the  ``-C'' flag is used, then innd will accept
              and propagate but not actually  process  cancel  or
              supercedes  messages.   This  is intended for sites
              concerned about abuse of cancels and  wish  to  use
              another  cancel  mechanism with greater authentica-
              tion.

       -H -T -X
              The ``-H'', ``-T'', and ``-X''  flags  control  the
              number  of  connects per minute allowed.  This code
              is meant to protect  your  server  from  newsreader
              clients  that  make too many connects per minute to
              your server.  You should probably not use it unless
              you are having a problem.  The table used for these
              checks is fixed at 128 entries and  is  used  as  a
              ring.   The size was chosen to make calculating the
              index easy and to be pretty sure you won't run  out
              of  space.   In  practice,  it is doubtful that you
              will use even half the table at any given moment.
              The ``-H'' flag limits the number of times  a  host
              is allowed to connect to the server per ``-X'' sec-
              onds.  The default is 2.
              The ``-T'' flag limits the total number of incoming
              connects  to  innd per ``-X'' seconds.  The maximum
              value is 128.  The default is 60.
              The ``-X'' sets the number of seconds used  by  the
              ``-H'' and ``-T'' flags.  A value of zero turns off
              checking.  The default is 0.

       Inndstart is a small front-end program that opens the NNTP
       port,  sets its userid and groupid to the news maintainer,
       and then execs innd with the ``-p''  flag  and  a  minimal
       secure,  environment.   This is a small, easily-understood

       front-end program that can be used if a site does not want
       to run innd with root privileges.

CONTROL MESSAGES
       Arriving  articles  that  have  a Control header or have a
       Subject  header  that  starts  with  the  five  characters
       ``cmsg ''  are  called  control  messages.  Except for the
       cancel message, these messages are implemented by external
       programs   in   the  /usr/lib/news/bin/control  directory.
       (Cancel messages update the history database, so they must
       be  handled internally; the cost of syncing, locking, then
       unlocking would be too high given  the  number  of  cancel
       messages that are received.)

       When a control message arrives, the first word of the text
       is converted to lowercase and used as the name of the pro-
       gram to execute; if the named program does not exist, then
       a program named default is executed.

       All control programs are  invoked  with  four  parameters.
       The first is the address of the person who posted the mes-
       sage; this is taken  from  the  Sender  header.   If  that
       header  is  empty,  then it is taken from the From header.
       The second parameter is the address to  send  replies  to;
       this is taken from the Reply-To header.  If that header is
       empty then the poster's address is used.  The third param-
       eter will be a name under which the article is filed, rel-
       ative to the news spool directory.  The  fourth  parameter
       is  the  host  that  sent the article, as specified on the
       Path line.

       The distribution of control message is also different from
       those of standard articles.

       Control messages are normally filed in the newsgroup named
       control.  They can be filed in subgroups,  however,  based
       on  the  control message command.  For example, a newgroup
       message will be filed in control.newgroup  if  that  group
       exists, otherwise it will be filed in control.

       Sites  may  explicitly  have  the ``control'' newsgroup in
       their subscription list, although it is  usually  best  to
       exclude  it.   If  a  control message is posted to a group
       whose name ends with the four characters ``.ctl'' then the
       suffix  is  stripped  off  and what is left is used as the
       group name.  For  example,  a  cancel  message  posted  to
       ``news.admin.ctl''  will  be  sent  to all sites that sub-
       scribe to ``control''  or  ``news.admin.''   Newgroup  and
       rmgroup messages receive additional special treatment.  If
       the message is approved and posted  to  the  name  of  the
       group  being  created or removed, then the message will be
       sent to all sites whose subscription patterns would  cause
       them to receive articles posted in that group.

       If  an  article  is posted to a newsgroup that starts with
       the three letters ``to.'' it will get special treatment if
       the newsgroup does not exist in the active file: the arti-
       cle is filed into the newsgroup ``to'' and it is  sent  to
       the  first  site  named  after the prefix.  For example, a
       posting to ``to.uunet'' will be filed in ``to''  and  sent
       to the site ``uunet.''

PROTOCOL DIFFERENCES
       Innd implements the NNTP commands defined in RFC 977, with
       the following differences:

       1.     The  ``list''  maybe  followed   by   an   optional
              ``active'',   ``active.times'',  or  ``newsgroups''
              argument.  This common extension is not fully  sup-
              ported; see nnrpd(8).

       2.     The  ``authinfo  user''  and ``authinfo pass'' com-
              mands are implemented.  These are based on the ref-
              erence  Unix implementation; no other documentation
              is available.

       3.     A new command, ``mode reader'', is provided.   This
              command  will  cause the server to pass the connec-
              tion on to nnrpd.  The command  ``mode  query''  is
              intended  for  future use, and is currently treated
              the same way.

       4.     A          new          command,          ``xreplic
              news.group/art[,news.group/art]'',   is   provided.
              This is similar to the ``ihave'' command (the  same
              reply codes are used) except for the data that fol-
              lows  the  command  word.   The  data  consists  of
              entries  separated  by  a single comma.  Each entry
              consists of a newsgroup name, a slash, and an arti-
              cle  number.   Once  processed, the article will be
              filed in the newsgroup and article  numbers  speci-
              fied in the command.

       5.     A  new  command,  ``xpath messageid'', is provided.
              The server responds  with  a  223  response  and  a
              space-separated list of filenames where the article
              was filed.

       6.     The only other commands implemented  are  ``head'',
              ``help'', ``ihave'', ``quit'', and ``stat''.

HEADER MODIFICATIONS
       Innd modifies as few article headers as possible, although
       it could be better in this area.

       The following headers, if present, are removed:
              Date-Received
              Posted
              Posting-Version
              Received
              Relay-Version
       Empty headers and headers  that  consist  of  nothing  but
       whitespace are also dropped.

       The  local  site's name (as determined by the ``pathhost''
       value  in  inn.conf(5))  and  an  exclamation  point   are
       prepended to the Path header.

       The  Xref  header  is  removed.   If the article is cross-
       posted a new header is generated.

       The Lines header will be added if it is missing.

       Innd does not rewrite incorrect headers.  For example,  it
       will  not  replace  an  incorrect  Lines  header, but will
       reject the article.

LOGGING
       Innd reports all incoming articles in its log file.   This
       is  a  text file with a variable number of space-separated
       fields in one of the following formats:
              mon dd hh:mm:ss.mmm + feed <Message-ID> site...
              mon dd hh:mm:ss.mmm j feed <Message-ID> site...
              mon dd hh:mm:ss.mmm c feed <Message-ID> site...
              mon dd hh:mm:ss.mmm - feed <Message-ID> reason...
       The first three fields are the date and time to  millisec-
       ond resolution.  The fifth field is the site that sent the
       article (based on the Path header) and the sixth field  is
       the  article's Message-ID; they will be a question mark if
       the information is not available.

       The  fourth  field  indicates  whether  the  article   was
       accepted  or  not.  If it is a plus sign, then the article
       was accepted.  If it is the letter ``j'' then the  article
       was accepted, but all of newsgroups have an ``j'' in their
       active field, so the article was filed into  the  ``junk''
       newsgroup.   If the fourth field is the letter ``c'', then
       a cancel message was accepted before the original  article
       arrived.   In  all  three  cases,  the  article  has  been
       accepted and the ``site..'' field contains the space-sepa-
       rated list of sites to which the article is being sent.

       If  the fourth field is a minus sign, then the article was
       rejected.  The reasons for rejection include:
              "%s" header too long
              "%s" wants to cancel <%s> by "%s"
              Article exceeds local limit of %s bytes
              Article posted in the future -- "%s"
              Bad "%s" header
              Can't write history
              Duplicate
              Duplicate "%s" header
              EOF in headers
              Linecount %s != %s +- %s
              Missing %s header
              No body
              No colon-space in "%s" header
              No space
              Space before colon in "%s" header
              Too old -- "%s"
              Unapproved for "%s"
              Unwanted newsgroup "%s"
              Unwanted distribution "%s"
              Whitespace in "Newsgroups" header -- "%s"
       Where ``%s'', above, is replaced by more specific informa-
       tion.

       Innd  also  makes  extensive  reports through syslog.  The
       first word of the log message will be the name of the site
       if  the  entry  is  site-specific (such as a ``connected''
       message).  The first word will be ``ME''  if  the  message
       relates  to  the  server itself, such as when a read error
       occurs.

       If the second word is the four letters  ``cant''  then  an
       error is being reported.  In this case, the next two words
       generally name the system call  or  library  routine  that
       failed,  and  the  object  upon which the action was being
       performed.  The rest of the line may contain other  infor-
       mation.

       In other cases, the second word attempts to summarize what
       change has been made, while the rest  of  the  line  gives
       more  specific  information.  The word ``internal'' gener-
       ally indicates an internal logic error.

HISTORY
       Written by Rich $alz  lt;rsalz@uunet.uu.net  for  InterNet-
       News.  This is revision 1.37, dated 1996/12/06.

SEE ALSO
       active(5) ctlinnd(8) crosspost(8) dbz(3z) history(5) 
       hosts.nntp(5) inn.conf(5) newsfeeds(5) nnrpd(8) 
       rnews(1) syslog(8). 

inncheck Home Page System Administration Index innlog.pl