                            
                            
                            
                    DNEWS Management
                            
                                                         
                                                         
                                                         
                            
DNEWS: A fast, efficient, low management NNTP news server
                           for
                            
                            
            Windows NT, VMS and UNIX systems.
                            
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                         
NetWin World,
P.O Box 27574,
Mt Roskill,
Auckland,
New Zealand,
Email   netwin@world.std.com
                            
                    DNEWS Management
                            
DNEWS                                                   5
  DNEWS Features                                        5
    Dynamic sucking feed.                               5
    Flexible expire settings                            5
    Flexible access restrictions                        5
    Binaries available for common platforms             5
    Email confirmation of posts                         5
    Items stored in a database                          5
    Compiling and porting relatively easy               5
    Installation easy, totally configurable without
    recompiling                                         5
    Documented                                          6
    Supported                                           6
    Speed                                               6
    XOVER implemented in software                       6
    Streaming support                                   6
    Machine impact automatically limited                6
DNEWS Installation                                      7
  Main installation steps for Windows NT                7
  Main Installation Steps for VAX                       8
  Main installation steps for UNIX                      8
TELLNEWS commands                                       9
Frequently Asked Questions (FAQ's)                     10
  How do I setup a `normal' NNTP - IHAVE feed          10
  How do I setup XMIT to send to other sites           10
    Adding XMIT to Windows NT Services (startup)       11
    Adding XMIT to UNIX startup                        11
    Adding XMIT to VMS startup                         11
  How do I move the spool area to a bigger disk        11
  How to I make the updates run only at night          11
  How do I test the server using TELNET                12
  What files can I copy from an INN or CNEWS system    12
  How do I rename a volume on UNIX                     12
Common problems-errors                                 13
  Can't BIND                                           13
  TELLNEWS fails or locks ups                          13
  TELLNEWS says remote node is unknown                 13
  TELLNEWS says "Cannot access tellnews.pass"          13
  NNTP, Sorry I can't talk to you                      13
  Transfer permission denied                           14
DNEWS Mailing List                                     14
Configuration files                                    15
  dnews.conf                                           15
  access.conf                                          16
    Notes:                                             16
  expire.conf                                          16
    Example:                                           16
  newsfeeds.conf                                       17
  moderators.conf                                      17
  control.conf                                         17
    Example:                                           18
How news gets in and out of your system                19
  FEEDING news INTO your system                        19
    Feeding using an NNTP IHAVE feed.                  19
    Feeding using a SUCKING feed (default)             19
  FEEDING news OUT OF your system                      19
    Sending news up line using a POSTING feed (default)19
    Sending news up line using an NNTP-IHAVE sender    20
Appendix A, What is USENET                             20
  What is USENET News?                                 20
    News groups                                        20
    How your article will get to the rest of the world 20
    What to read first                                 20
    What is an FAQ?                                    20
    Be careful posting                                 20
    How big is it?                                     20
Appendix B, Time Zone Names                            21
Appendix C, NNTP Summary                               22
    authinfo [user Name]|[pass Password]               22
    article [MessageID|Number]                         22
    body [MessageID|Number]                            22
    date                                               22
    group newsgroup                                    22
    head [MessageID|Number]                            22
    help                                               22
    ihave <message-id>                                 22
    last                                               22
    list [active]                                      22
    list active.times                                  22
    list newsgroups                                    22
    listgroup [newsgroup] (extension)                  22
    mode reader (extension)                            23
    mode stream (extension)                            23
    newgroups yymmdd hhmmss [GMT] [<distributions>]    23
    newnews newsgroups yymmdd hhmmss [GMT]
    [<distributions>]                                  23
    next                                               23
    post                                               23
    slave                                              23
    stat [MessageID|Number]                            23
    check [MessageID] (extension)                      23
    takethis [MessageID] (extension)                   23
    xgtitle [group_pattern] (extension)                23
    xhdr header [range|MessageID] (extension)          23
    xover [range] (extension)                          23
    xpat header range|MessageID pat [morepat...]
    (extension)                                        23
    xpath MessageID (extension)                        24
    DNEWS
  DNEWS is designed to be a fast, easy to use, low
  overhead and low maintenance.
  
  NetWin World,  P.O. Box 27574, MT Roskill, Auckland.
  
  Email: netwin@world.std.com
  

DNEWS Features
Dynamic sucking feed.
   A sucking feed may use as little as 10% of the
   normal disk space and network bandwidth. By only
   getting news items that people usually read very
   large savings are possible particularly for small
   sites & workgroups.  A hundred users can be
   supported on 100-200 MB depending on their  reading
   habits!
   
   I run a single user server on my NT as a background
   service, it's using less than 5MB.
   
Flexible expire settings
  By allowing expiration by 'number of items' low
  volume groups become much more useful.  Also by
  allowing settings which change with disk space the
  system is much more stable to large influxes of
  news.
  
Flexible access restrictions
  Reading and Posting access can be given separately
  to different users and selections of news groups.
  
Binaries available for common platforms
  On many platforms you do not need to build the
  binary yourself, e.g. VMS, (VAX & ALPHA), Solaris,
  Linux, Windows NT
  
Email confirmation of posts
  DNEWS can be configured to send email confirmations
  as it sends items up to a main news server.  This
  gives users a clear record of a posted item and it's
  successful transfer into the 'net'.
  
Items stored in a database
  Items are stored in a database which puts items
  together in blocks of 100.  This saves directory
  entries, inodes, and the empty space usually wasted
  due to blocking factors. Also file open and closes
  are minimized, this is essential on systems where
  this is a 'costly' operation, e.g. VMS.
  
Compiling and porting relatively easy
  DNEWS was designed to be portable from the ground
  up, it does not rely on obscure UNIX features.
  
Installation easy, totally configurable without
recompiling
  DNEWS can be configured without recompiling and all
  the configuration scripts have been simplified where
  possible.
  
Documented
  A user manual is available.
  
Supported
  EMAIL support is available for help with
  installation and management.
  
Speed
  On comparable systems DNEWS typically out performs
  other news software, (even the likes of CNEWS and
  INN in some instances), other VMS news servers don't
  even come close.
  
  This is partly because DNEWS uses a more advanced
  database to store the news items.  The difference is
  also very notable on smaller systems (e.g. Linux)
  
XOVER implemented in software
   No xover database is created, the normal DNEWS
   database is fast enough to create this information
   'on the fly'
   
Streaming support
  Streaming NNTP extensions are built in.
  
Machine impact automatically limited
  DNEWS runs on a single process, this speeds up
  connect   time as a process does not need to be
  created, and it self-limits the impact on the
  system.
  



DNEWS Installation
   Always refer to install.txt for the most up to date
   installation notes and helpful hints etc.
   

Main installation steps for Windows NT
         FTP the files
       
      FTP ftp.std.com
      ftp> cd /ftp/vendors/netwin/dnews
      ftp> binary
      ftp> get dnews_nt.zip
      ftp> quit
         Extract the files to a temporary directory and then
       install them
       
      mkdir \tmp
      cd \tmp
      pkunzip ..\dnews_nt.zip
      install.cmd
      del \tmp\*.*
         EDIT dnews.conf and carefully define the following
       symbols
       
         NOTEPAD  winnt35\system32\dnews.conf
       
Symbol  Example         Description
manager joeblogs@here.  Your Email address
        this.place
nntp_fe news.feeder.si  The news site where you are going
eder    te              to SUCK a feed from.  You need
                        NNTP READER access to this site.
myname  news.this.plac  Your full internet name.
        e
diskspa 100             Total disk space in megabytes that
ce                      DNEWS can use
confirm *.this.place    Send email confirmation to
                        postings from these addresses.
                        (set this to match your local
                        email addresses)
  
  
     You may want to also redefine SPOOL in  DNEWS.CONF
     if you want the news spooling area to be on another disk.
     
     If your news feed stamps items with a name other
     than exactly what you put in DNEWS.CONF under
     NNTP_FEEDER, then you must add an exclude field to your
     newsfeeds.conf file to stop DNEWS from trying to echo
     every item it gets.  See the section Adding an Exclude
     Field for more details on doing this.
     
     Edit newsfeeds.conf and add an SMTP queue so DNEWS
     can send email when it wants to:
     
      NOTEPAD \dnews\newsfeeds.conf
          SITE mail.gateway.here.com
          SMTP
     Edit access.conf to grant IP access to any machine
     which will read news from your system, you can give a
     wildcard ip name or number, names will only work if your
     DNS is configured correctly.
     
      NOTEPAD \dnews\access.conf
      *.here.com:Read,Post:::*
      161.23.1.*:Read,Post:::*
     Start the system.  In Control Panel, double click on
     SERVICES and then click on DNEWS and click on START.
     
     Try out the management command:
     
      TELLNEWS STATUS
     Try a news reader
     
     If it doesn't work check the log files and then
     check the section in this manual on Common Problems:
     
      TYPE \dnews\dnews.error
      TYPE \dnews\dnews.info

Main Installation Steps for VAX
     1.   FTP ftp.std.com  /ftp/vendors/netwin/dnews...
     2.   @extract                   Extracts the required
       files
     3.   $ edit register_user.com             Change uic and
       disk to match your machine
4.   $ @register_user              Register user
dnews$server on your machine.
5.   $ edit dnews_start.com             Define the
disk(s) where DNEWS is installed
     6.   $ edit sys$manager:systartup_v5.com  Add the startup
       line (see startup.tmp)
7.   $ edit sys$sylogin:           Add the symbol  (see
login.tmp)
     8.   $ edit dnews_top:news.conf      Modify the file
       DNEWS.CONF to describe your
       system by defining the following symbols
       MANAGER, NNTP_FEEDER....
       TIMEZONE, DISKSPACE, MYNAME
     9.   If your news feed stamps the path header with a name
       other than it's ip name as in `nntp_feeder' then edit
       newsfeeds.conf and add an exclude command to prevent your
       news system from `echoing' all messages back to your
       feeder.
     10.  $ edit access.conf              Grant an ip range
       access to the system, e.g.
       *.here.comp.edu:read,post,:::*
       161.23.4.*:read,post,:::*
     11.  $ @dnews_top:dnews_start        Start the system
     12.  $ type dnews.info          Type the log file, give
       it one or two minutes                     before
       panicking.
     13.  $ tellnews status               Get a status report
14.  Go to your favorite PC news reader software and try
it out!!!

Main installation steps for UNIX
         FTP ftp.std.com
       /ftp/vendors/netwin/dnews/dnews_linux.tar.Z
       
         Extract the files to a temporary directory
       
      # uncompress dnews_linux.tar.Z
      # tar -xvf dnews_linux.tar
      # cd dnews
         EDIT dnews.conf and carefully define the following
       symbols
       
   
   
Symbol  Example         Description
manager system@here.th  Email address of the news manager
        is.place
nntp_fe news.feeder.si  The news site where you are going
eder    te              to SUCK a feed from.  You need
                        NNTP READER access to this site.
myname  news.this.plac  Your full internet name, if left
        e               out this may be picked up from the
                        system.
diskspa 100             Total disk space in megabytes
ce
confirm *.this.place    Send email confirmation to
                        postings from these addresses.
                        (set this to match your local
                        email addresses)
df      df -k           Path and parameters for df command
                        (Display Filesystem)
sendmai /usr/lib/sendm  Path and parameters for sendmail
l       ail -t %s
  
  
      EDIT your startup script and add the following line,
     startup scripts are different for every version of UNIX:
     
      # emacs /etc/rc.d/rc.local
      Add a line:
      /usr/local/dnews/dnews_start.sh
      
      If your news feed stamps the path header with a name
     other than it's ip name as in `nntp_feeder' then edit
     newsfeeds.conf and add an exclude command to prevent your
     news system from `echoing' all messages back to your
     feeder.
     
      EDIT access.conf and grant ip access to ip numbers
     or names in your domain, names will only work if your
     reverse name translation is setup correctly.
     
      *.this.site.edu:read,post:::*
      161.24.3.*:read,post:::*
      
      If you have changed any of the default directories,
     then you must edit all the shell scripts, (*.sh) to
     reflect the change.
     
      Run the installation script:
     
      # ./install.sh
      
      Start the news server
     
      # ./dnews_start.sh
      
      The system will now try and fetch a list of
     newsgroups from your feeder site, this may take 10
     minutes the first time and the system will not respond to
     the tellnews command while this is happening.  Use `ps -
     alx | grep news' to check it is running, and look at the
     log files:
     
      # more /usr/local/dnews/dnews.error
      # more /usr/local/dnews/nohup.out
      # ps -ef | grep news
      
      When the system has had a chance to get going, try
     it out using the tellnews command
     
      # tellnews status
      
      Go find a PC and try out the system!
     

TELLNEWS commands
  The tellnews command is used to communicate with the
  server, you can find out what it's doing, modify
  some internal settings, reload the configuration
  files or shut down the server cleanly.
  
  To use the command you need read access to the DNEWS
  configuration directory.
  
  Try this command to find out what your server is
  doing:
  
      tellnews status
  Or this command to shut down your server
  
      tellnews exit
      
  Here is a table of all the other TELLNEWS commands:
  
      
Command           Description
cached wild days  Force a group or groups to be cached for
                  the next so many days, if you give a wild
                  card on UNIX you must put quotes around
                  it to stop the shell from interpreting
                  it.
uncached wild     Set a group or groups to uncached.  Items
                  in the group will then expire normally,
                  this does not prevent a user from
                  fetching the group again.
expire            Schedule an expire run, use this if the
                  system is getting short on space.
status            Show what the server is doing
reque             Requeue built-in feeds. (email and
                  posting feeds). These are normally run
                  whenever an item is posted.
exit              Close down the demon cleanly
getnames          Get the active.names from our feeder,
                  This will happen automatically with a new
                  server the first time it starts up.
killitem grpname  Delete a specific item, use with caution
num
reload            Reloads news.conf
update            Schedule a suck update.
getold wildgrp    Get older news from the feeder, use this
days              after deleting the entire system except
                  the active.dat file, to reload some old
                  news from the server.
rmgroup           Mark group as deleted
wild.group.name
killgroup         Actually delete group
wild.group.name
newgroup name     Add a new group by hand. y=Normal group,
y|m creator       m=Moderated the description is added to
description       the newsgroups file.


Frequently Asked Questions (FAQ's)

How do I setup a `normal' NNTP - IHAVE feed
  In access.conf, give your feed site access to send
  you ihave messages:
  
           my.feeder.site.com:ihave:::*
      
  In dnews.conf, comment out the nntp_feeder
  definition.
  
  In newsfeeds.conf, replace:
  
                site $NNTP_FEEDER
                     groups *
                     builtin
                     posting
  With:
  
                site my.feeder.site
                     groups *
                     builtin
      
      (Also see the section on copying files from an
      existing INN
      or CNEWS system)
      

How do I setup XMIT to send to other sites
   If you have more than one large feed coming into
   your site, then you should use XMIT to send to all
   sites and NOT use the builtin feeding system at
   all,  (see the keyword builtin above, remove it!!)
   The builtin feeder will not run fast enough to
   `pass through' large feeds so you must use the XMIT
   feeder in all directions.  (Leaf sites can still
   use a sucking feed quite safely as this is also
   very efficient)
   
   The XMIT feeder is a high speed, auto configuring
   streaming feeder with built in scheduling, so you
   don't need to use CRON or anything else tricky like
   that.
   
   First add entries to your NEWSFEEDS.CONF file, this
   creates the .feed file that XMIT will use:
   
      NOTEPAD newsfeeds.conf
           site other.site.here.com
                groups *
   Now modify your startup procedure to run the xmit
   job for each feed you have defined in
   newsfeeds.conf
   
Adding XMIT to Windows NT Services (startup)
   On windows NT you need to setup each xmit job as a
   service, to do this use the program ADDSVC.EXE
   which came with the dnews distribution to add a
   service for each outgoing feed, e.g. (notepad
   setupsvc.cmd and then run it to create the feeds)
   
      addsvc -add dxmit1 xmit.exe "dxmit1 site.name.edu -
      at *5 *"
      addsvc -add dxmit2 xmit.exe "dxmit2 site2.name.edu
      -at *5 *"
   
   
   Then from CONTROL PANEL, SERVICES, and start the
   feed(s).
   
Adding XMIT to UNIX startup
   Add lines to your dnews_start.sh procedure, e.g.
   
      cd /usr/local/dnews
      ./xmit send.to.site.name -at "*2" "*"
      ./xmit send.other.site.name -at "*7" "*"
Adding XMIT to VMS startup
        Modify RUNXMIT.COM and add it to
   dnews_start.com
   

How do I move the spool area to a bigger disk
   First shutdown DNEWS:
   
      tellnews exit
   Then move the entire SPOOL tree structure from it's
   current place to it's new place, for example on NT
   you might use file manager to move
   
      c:\dnews\spool...        to   e:\dnews\spool...
      
   Change the definition of SPOOL in DNEWS.CONF
   
      NOTEPAD \winnt35\system32\dnews.conf
      spool     e:\dnews\spool
      
   Restart DNEWS:
   
      (NT) Control Panel, Services, Start
      (UNIX)    su root; dnews_start.sh

How to I make the updates run only at night
   Updates for a sucking feed normal run once every
   ten minutes, this is controlled in DNEWS.CONF with
   the command
   
      update_at *5 *
   This "*5" tells dnews to do an update whenever the
   minutes end in a digit `5' and the second "*" tells
   it to do updates during any hour.
   
   To do one update a night at 5 past 2 in the morning
   you would use:
   
      update_at 5 2
   To do updates every 10 minutes from 6p.m. to 8a.m.
   you would use:
   
      update_at *5 18-8

How do I test the server using TELNET
   NNTP is a text based protocol, this means you can
   test it, and even read news without any software,
   just by using telnet and typing in commands by
   hand, this is not a seriously good way to read
   news, but it is a very good way to test your own
   server or your feeding server:
   
      NT   Accessories, Telnet, Connect, Remote Service
           Enter the feeder.site and under PORT type in
      NNTP
           Under Terminal Preferences turn ECHO on
           Press Control J to end lines instead of ENTER
      VMS  $ telnet feeder.site /port=119
      UNIX > telnet feeder.site 119
      
      Type in this sequence of commands to read an
      article by hand:
           group comp.os.vms   (select a group)
           head           (display the header)
           body           (display the body)
           next           (next item please)
           help           (show valid commands)
           quit           (exit the connection)

What files can I copy from an INN or CNEWS system
  This is not necessary, but if you are replacing a
  system then there are some files that you may want
  to preserve so that news.rc files are not `too'
  confused by the new system.
  
  You can safely copy these files:
  
           active         -> active.dat
           active.times   -> active.times
           newsgroups     -> active.names  (may be
      changed in future)
  
  
  If you copy the active file, you must reset DNEWS
  with this special manager command:
  
           tellnews resetall

How do I rename a volume on UNIX
  You may wish to rename a current volume
  /var/spool/news to be /var/spool/dnews, to do this:
  
           cd /var/spool/news
           mkdir OLD
           mv * OLD
           umount /var/spool/news
           emacs /etc/vfstab (or /etc/fstab)
                (change /news into /dnews)
           mount /var/spool/dnews
  
  
  When you are happy with the new system, or you need
  the space:
  
           rm -r /var/spool/dnews/OLD

Common problems-errors

Can't BIND
   Can't BIND, and tellnews says "I can't talk to you"
   when you telnet to the port.
   
   On LINUX the slackware distribution comes with a
   dummy nntp daemon installed, you must remove this
   so dnews can bind to the socket.
   
           edit /etc/inetd.conf
           (comment out the NNTP line)
           kill -HUP <pid of inetd process>

TELLNEWS fails or locks ups
        The DNEWS process may take 1-2 minutes to
   initialize, so wait a bit before panicking.
   
        Check if the process is running
   
           ps -axl | grep dnews     (linux)
           ps -ef | grep dnews (SunOS)
        Check the log files
   
           more /usr/local/dnews/dnews.error (.info)
   
   
   If it gets started up with the wrong PID you will
   get all sorts of protection problems,  all the
   files in:
   
             /var/spool/dnews/...  (including
   var/spool/dnews)
   
   must be owned by the same user, normally 'news'.
   Also all the files in:
   
             /var/local/dnews/*
   

TELLNEWS says remote node is unknown
   On VMS, if the symbol tellnews is not defined, it
   will try and run telnet instead, this can be
   confusing.  You may have to log in again to get the
   symbol, or if you forgot to put it in your sylogin:
   script then you will have to do so, e.g.:
   
        $ tellnews :== $dnews_top:tellnews
   

TELLNEWS says "Cannot access tellnews.pass"
   For some reason tellnews cannot find it's
   configuration files, on NT this could be caused by
   a file protection problem or more likely if the
   disk name was not specified in the configuration
   file DNEWS.CONF.
   
   On VMS and UNIX you must be running the tellnews
   command from the usercode ROOT or NEWS or
   NEWS$SERVER.
   

NNTP, Sorry I can't talk to you
   Your news-host does not want to talk to you, this
   is because there is a security file which gives a
   list of hosts which are allowed to connect, the
   name of your machine must be in this list, and your
   machine's name must be in the Domain Name Server
   tables as well as the Reverse Translation Domain
   Name server tables.
   
   The access file may be called something like:
   
     CNEWS          /usr/local/lib/news/nntp_access
     INND      /usr/local/news/nnrp.access
     DNEWS          /usr/local/dnews/access.conf

Transfer permission denied
   This can come from one of two directions,  DNEWS
   can give this error when a site tries to feed it
   new items.
   
   If you are using a sucking feed then you should
   stop the site that is trying to send to you from
   sending as DNEWS will ask for any items it wants.
   
   If you do want to allow incoming IHAVE messages,
   then add an IHAVE record for this ip address in the
   ACCESS.CONF file, and also remove the 'POSTING'
   flag from the NEWSFEEDS.CONF file for the ME site.
   
   The last possibility is that this error is coming
   from your feeding site, in which case you need to
   contact the system manager of that site and ask him
   to give you `ihave' access.
   

DNEWS Mailing List
   There is a mailing list for discussing DNEWS. This
   is also used for announcing new versions and
   patches.
   
   To subscribe to this list send a message to:
   
        maiser@emagic.co.nz
   
   Containing the line:
   
       subscribe dnews
  
  This is a moderated list, it's only function is to
  provide timely information on new features,
  releases, bugs, installation gotcha's etc to
  interested people.  You will not get 20 messages a
  day from this list, it will probably average 1-2
  messages per month.
  
  We invite your comments directly and we will only
  forward an item to the list if it seems relevant or
  necessary to ask the question of a wider pool of
  experience.
  
  Send messages to:   netwin@world.std.com
  



Configuration files
  The following files define your news system in
  approx. order of importance:
  
File Name      Description
news.conf      Main configuration file
access.conf    Controls nntp access to your server
expire.conf    Specifies how long to keep news items
newsfeeds.con  Defines feeds out of your news system
f              up the line of news servers
moderators.co  Defines where to send email to a
nf             moderated news group
control.conf   Defines how to process control messages
               for auto creation and deletion of news
               groups

dnews.conf
Symbol    Example        Description
confirm   *.this.place   Send email confirmation to
                         postings from these addresses.
                         (set this to match your local
                         email addresses)
config    dnews_top:     Directory for configuration files
                         (*.conf)
diskspace 100            Total disk space in megabytes a
                         dynamic feed needs 20-200MBs, a
                         full feed needs approx. 1000MB
expire_at 5  23,3        Run an expire job at 5 past
                         eleven and 5 past 3 in the
                         morning.
history   \dnews\spool   Directory for history file, this
                         could grow to 40MB for a full
                         feed (80,000 blocks)
history_m 5              Pause if less than `n' megabytes
in                       free
life      30             Number of days to keep caching a
                         news group after someone reads an
                         item in it.
logdir    \dnews         Directory to write log files
                         
loglvl    info           One of:
                         error,warn,info,debug,flush
                         There are four levels of error
                         reporting, "error" includes
                         serious errors, "warn" includes
                         possible problems, "info"
                         includes general information
                         messages and "debug" which is
                         used for tracing bugs.  "flush"
                         is the same as debug but the log
                         file is flushed with every single
                         line written, this is useful if
                         the system is crashing but not
                         providing a stack dump.
manager   system@here.   Email address of the news manager
          this.place
mail      smtp           This is only used on VMS systems.
                         The name of the foreign email
                         system on VMS, typically in% or
                         smtp% (don't include the %)
myname    news.this.pl   Your full internet name, if left
          ace            out this may be picked up from
                         the system.  It's best to put it
                         in by hand to make sure it's
                         right.
nntp_feed news.feeder.   The news site where you are going
er        site           to SUCK a feed from.  You need
                         NNTP READER access to this site.
report    no             Stops the daily email report from
                         being sent to the manager after
                         every expire run.
timezone  NZST           Timezone hh:mm or timezone name
                         Appendix B
too_old   50             Refuse items that were created
                         more than this many days in the
                         past, this prevents old items
                         from being re-distributed when a
                         machine dumps old news items onto
                         the network.
spool     \dnews\spool   Disk name (or logical) for news
                         articles
spool_min 5              Pause if less than `n' megabytes
                         free
update_at *0,*5  *       Check for new items every time
                         the minutes end in a 5 or a zero
                         and at any hour, e.g. every 5
                         minutes..
workarea  \dnews\spool   Directory for work files
                         (active.dat, *.feed, etc)
workarea_ 5              If less than `n' megabytes are
min                      free on this disk then pause the
                         news system, (stop accepting new
                         articles)

access.conf
  This file controls access to your system, you can
  control access by IP name, IP number or even by
  individual user using password protection.
  
<host>:<perm>:<user>:<pass>:<groups>
Paramet Example         Description
er
<host>  *.my.domain     A wildcard name or number, this
        161.29.4.*      rule is only used if the
                        connection matches this address
<perm>  Read, Post,     Allow any combination of reading
        Ihave           posting or ihave feeding from this
                        site.
<user>  chrisp          Some news readers can send a user
                        name, if so then it will be
                        matched here, and the password can
                        be checked.
<pass>  rumplestiltski  The password in plain text
        n
<groups *,!*.erotic.*   Allow access to groups matching
>                       this wild card
Notes:
  Unlike other news implementations, you can permit
  reading and posting to different combinations of
  news groups, for example you may wish to allow
  students to read all groups but only post to local
  news groups.
  

expire.conf
  The expiration file is very different from INN and
  CNEWS implementations,  Rather than a simple set of
  rules, the DNEWS expire rules match both news group
  names and current disk usage, so as use increases
  the rules can become more strict.
  
  In addition rules can specify minimum or maximum
  numbers of items, this allows a single rule to apply
  to groups which get 20 items a day, or 20 items a
  month.
  
  Each line of the file must have the following
  format:
  
     UPTO x GROUPS wild KEEP n DEFAULT n PURGE n MAXITEMS
     n MINITEMS n
Symbol  Example         Description
upto    20%             This rule applies if less than 20%
                        of the disk space is full.
groups  alt.*,comp.bin  This rule applies if the group
        aries.*         matches this list
keep    2               Keep items for this many days even
                        if they have already expired.
                        (From the expire date in the
                        article header)
default 10              Keep items this long and then
                        delete unless the expiration date
                        says to keep it longer.
purge   35              Delete after this many days even
                        if the expire header says to keep
                        it longer.  This should be set
                        long enough to keep FAQ's and no
                        longer to prevent abuse.
maxitem 1000            Delete old items if the group has
s                       more than this many items in it.
                        Good for controlling high volume
                        groups.
minitem 10              Don't apply any other rules if the
s                       group has less than this many
                        items in it,  this is good for
                        making `low volume' groups
                        useable.
Example:
      # Default rule
      upto 10000% groups * keep 0 default 1 purge 10
      maxitems 0 minitems 0
      # Start to panic a little
      upto 90% groups * keep 0 default 2 purge 33
      maxitems 100 minitems  0
      # Normal operation, put your meaningfull settings
      here.
      upto 60% groups * keep 2 default 5 purge 33
      maxitems 1000 minitems  10
      upto 60% groups comp.* keep 2 default 10 purge 33
      maxitems 2000 minitems  10
      # Lots of space, just stop things getting silly
      (e.g. 10000 items in...)
      upto 30% groups * keep 2 default 17 purge 33
      maxitems 3000 minitems  100
      upto 20% groups * maxitems 2000

newsfeeds.conf
  This file controls feeds out of DNEWS to other
  sites, it also controls the feed `into' DNEWS via
  the same mechanism.
  
Symbol  Example         Description
site    me              The name of the site to feed,
        $NNTP_FEEDER    usually it's full internet name.
        my.leaf.site    The `me' feed must be the first
                        one in the file.
builtin (flag, no       Specifies the builtin feeding
        value)          mechanism should be used.  This is
                        only intended for sending local
                        postings up stream, it is not fast
                        enough to send a full feed on to
                        another site.
posting (flag, no       Specifies that the nntp `post'
        value)          command should be used to send
                        items upstream.  This gives your
                        feeder site the job of deciding
                        how to email postings to moderated
                        groups.
exclude feeder.real.na  Use this if your feeder site is
        me              `name stamping' articles with a
                        name other than it's ip name.
                        This MUST be right or DNEWS will
                        attempt to echo everything it gets
                        back to the feeder site. (check
                        the path header)
smtp    (flag, no       Specifies this is not really a
        value)          feed, but on a vax it is actually
                        the email queue used to send
                        articles to moderated groups, this
                        is only needed on VMS and then
                        only if you are not using the
                        `POSTING' mechanism to feed
                        upstream.

moderators.conf
  You won't need to touch this file unless you want to
  add a local group and make it moderated.  In that
  case add your groups at the top of the file as the
  first match is used.
  
  Format:
  
      newsgroup:email-address
  If the email address contains a "%s" then that is
  replaced by the news group name with the dots
  changed into dashes.
  
  Example:
  
      local.gossip.moderated:chrisp@marc.cri.nz
      gnu.*:%s@tut.cis.ohio-state.edu
      *:%s@uunet.uu.net

control.conf
  This file controls the action taken when control
  messages are received.  This is the secret to the
  administration of news.  The following control
  messages are checked by this file:
  
         newgroup
       
         rmgroup
       
    version
    checkgroups
    ihave
    sendme
    sendsys
    senduuname
   
   
  However only the following three are implemented.
  
         newgroup
       
         rmgroup
       
    version
   
   
  Blanks are not allowed, e.g. :: would be
  misinterpreted.
  
  For each type of control message, you can specify
  based on who sent it, whether or not to do what the
  message says, just log it, or email the message to
  the news administrator.  The log file that DNEWS
  creates can be used to action the control messages
  at a later date as it contains valid commands.
  
  All control messages are logged to
  `control_(message).(action)'
  
  Format:
  
      message-type:email-address:action
      message-type   rmgroup, newgroup, version
      email-address  A wildcard email address, e.g.
      news@trusted.site
      action         "drop", "log", "mail", "doit",
      "doit,mail"
Example:
      all:*:*:mail
      ihave:*:*:drop
      sendme:*:*:drop
      sendsys:*:*:drop
      senduuname:*:*:drop
      newgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,s
      ci.*,soc.*,talk.*:doit
      rmgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sc
      i.*,soc.*,talk.*:doit

How news gets in and out of your system

FEEDING news INTO your system
  With DNEWS you have two choices, you can push the
  news into your system using an NNTP IHAVE sending
  program or a SUCKING feed. This is run from the
  server which provides you with a feed.  This is the
  standard way of sending news but it has two
  disadvantages:
  
     1.   An NNTP IHAVE feed comes as a random selection of
       items from various news groups, this prevents any
       optimization when creating indexes and storing items.
     2.   An NNTP IHAVE feed must be setup from the other end.
       This prevents auto configuration of what is fed, it also
       makes configuration difficult as you may have limited or
       virtually no access to the feeder site configuration.
Feeding using an NNTP IHAVE feed.
  If you use this method then you must take a full
  feed, or at least a fixed subset of feeds, you can't
  use the DNEWS dynamic system.
  
  To set this up simply modify the access.conf file to
  allow the site that is feeding you to have IHAVE
  access.
  
      news.feeder.site:ihave:::*
  Then the job is done apart from setting the feed up
  from the other end which is entirely your problem!
  
Feeding using a SUCKING feed (default)
  This is extremely easy to setup, in the file
  NEWS.CONF define the variable NNTP_FEEDER to point
  to a site where you have NEWS READER access.
  

FEEDING news OUT OF your system
Sending news up line using a POSTING feed (default)
  If you are a LEAF site. (A leaf site is where you
  don't feed news on to anyone else) then you have an
  easy option, you can pass the job of `posting' an
  item up stream to your feeder site.
  
  Using this system DNEWS essentially pretends to be a
  NEWS READER which is posting your item directly on
  your FEEDER site.  Any error message will be emailed
  to you.
  
  In the file NEWSFEEDS.CONF define one feed as
  follows:
  
      site $NNTP_FEEDER
      groups *
      builtin
      posting
   
   
  If your feeder site is stamping each news item with
  a name different from it's IP name that you used in
  your NEWS.CONF file then you will have to add an
  exclude line to this feeding definition to stop the
  feed from trying to send every item that comes in
  back to the feeder.
  
      exclude feeder.name.stamp
  The special commands `builtin' tells DNEWS to use
  it's own internal NNTP link to send any articles to
  this feed and the command `posting' tells DNEWS to
  POST articles rather than pass them up using the
  IHAVE mechanism.
  
  In order to get email confirmation of each post as
  it is really posted use the CONFIRM variable in
  news.conf to match all local email addresses.
  
Sending news up line using an NNTP-IHAVE sender
  To do this you setup a feed in the newsfeeds.conf
  file, and then setup an XMIT process to actually
  transmit the items. See the section "How do I setup
  Xmit" in the FAQ section of this manual.
  

Appendix A, What is USENET

What is USENET News?
  USENET News is a world wide bulletin board.  It has
  no management or central system.  It is a large
  number of computers and networks connected together.
  
News groups
  The news is divided into approximately three
  thousand groups.  These groups are chosen by mutual
  agreement using a complicated voting system.
  
How your article will get to the rest of the world
  When you post an article, it travels from your
  machine to all the NEWS servers which your machine
  is connected to, (usually just one other machine,
  but in the case of a university, you may be
  connected to three or four other `news' machines).
  Each of these servers in turn pass on your `article'
  to all the machines that they are connected to.  In
  this way your message eventually gets to every other
  news machine in the world.
  
  There are some very clever built in systems to
  prevent an ariticle from travelling in a loop but
  these need not concern you.  The important point is
  there is built in redundancy, so once your message
  gets past your local system a single faulty system
  will not stop it from getting to the rest of the
  world.
  
What to read first
   There are a number of postings in the news group
   "news.announce.newusers" that should be read and
   followed by all  users using news for the first
   time.
   
What is an FAQ?
   FAQ stands for Frequently Asked Questions.  These
   are questions that every one asks when they first
   become interested in a topic,  the `old timers' in
   a news group get sick of answering them again and
   again so they create an FAQ.  This is a list of all
   the questions and answers.  Always look for an FAQ
   before posting a question.
   
Be careful posting
   Remember when you ask a stupid question on NEWS you
   have just annoyed approximately ten to one hundred
   thousand people, depending on the news group.  So
   always consider very carefully before posting.
   
How big is it?
   An item in a widely distributed news group will
   reach an estimated  24,000 sites world-wide hosting
   1,000,000 potential readers.  Most  sites are
   educational institutions, but many research
   organizations,
   
   companies, and government departments are also part
   of USENET.  This number is growing exponentially,
   as many as 20,000,000 users are on the internet and
   most `private' individuals will only begin to
   connect over the next couple of years.
   

Appendix B, Time Zone Names
          gmt  Greenwich Mean
          ut     Universal
          utc  Universal Coordinated
          cut  Coordinated Universal
          wet  Western European
          bst  British Summer
          nst  Newfoundland Standard
          ndt  Newfoundland Daylight
          ast  Atlantic Standard
          adt  Atlantic Daylight
          est  Eastern Standard
          edt  Eastern Daylight
          cst  Central Standard
          cdt  Central Daylight
          mst  Mountain Standard
          mdt  Mountain Daylight
          pst  Pacific Standard
          pdt  Pacific Daylight
          yst     Yukon Standard
          ydt  Yukon Daylight
          akst Alaska Standard
          akdt      Alaska Daylight
          hst  Hawaii Standard
          hast Hawaii-Aleutian Standard
          hadt      Hawaii-Aleutian Daylight
          ces  Central European Summer
          cest      Central European Summer
          mez  Middle European
          mezt      Middle European Summer
          cet  Central European
          met  Middle European
          eet  Eastern Europe
          msk  Moscow Winter
          msd  Moscow Summer
          wast      West Australian Standard
          wadt      West Australian Daylight
          hkt  Hong Kong
          cct  China Coast
          jst  Japan Standard
          kst  Korean Standard
          kdt  Korean Daylight
          cast      Central Australian Standard
          cadt      Central Australian Daylight
          east      Eastern Australian Standard
          eadt Eastern Australian Daylight
          nzst      New Zealand Standard
          nzdt      New Zealand Daylight

Appendix C, NNTP Summary
authinfo [user Name]|[pass Password]
  Used to authenticate individual users.  The command
  is first sent to define a user and then sent a
  second time to give the password.  Older news
  readers may not allow the use of this feature. On
  the server side add entries to access.dat using an
  editor.
  
article [MessageID|Number]
  Responds with the article, if no second parameter is
  given then the current article is sent.
  
  News readers should avoid using MessageID as it
  generates extra work for the server.
  
body [MessageID|Number]
  Sends the body of the message.
  
date
  Responds with the current time from the servers
  point of view, (not standard)
  
group newsgroup
  Sets the current group
  
head [MessageID|Number]
  Sends the header of a message.
  
help
  Sends a list of valid commands.
  
ihave <message-id>
  Used by another news system to `offer' new items to
  this news system.
  
last
  Sets the current news item to one item lower.
  
list [active]
  List on it's own or with the active qualifier
  responds with a list of known news groups.
  
list active.times
  Responds with a list of news groups and the date and
  time they were created. This file may or may not be
  complete depending on how the system was installed
  and how long it has been running.
  
list newsgroups
  Responds with a list of news groups and a short
  description of each one.  This list may or may not
  be complete or even available depending on how your
  system is installed.
  
listgroup [newsgroup] (extension)
  Gives a list of valid items in a news group.  This
  is currently the only efficient way for a news
  reader to establish which items in a group actually
  exist.
  
mode reader (extension)
  Does nothing, this command only exists for
  compatibility with INN.
  
mode stream (extension)
  Responds with a success status to signify that the
  streaming extensions are supported.
  
newgroups yymmdd hhmmss [GMT] [<distributions>]
  Lists news groups created since the given date.
  
newnews newsgroups yymmdd hhmmss [GMT] [<distributions>]
  Lists message-id's of news items that arrived after
  the specified date.
  
next
  Sets the current point to the next item.
  
post
  Used by news readers to post a new item.
  
slave
  Has no affect.
  
stat [MessageID|Number]
  Checks an item exists, responding with it's message
  id.
  
check [MessageID] (extension)
  Checks an item exists.  This is one of the STREAMING
  extensions to NNTP. It is different from the stat
  command in that it will respond that it still has a
  message even after the message has expired.
  
takethis [MessageID] (extension)
   This is the other half of the streaming extension
   to NNTP, this command behaves like the IHAVE
   command but doesn't have a refusal stage so it's
   return status doesn't need to be checked before the
   next item is sent.
   
xgtitle [group_pattern] (extension)
  Extension used by ANU-NEWS to actually use the
  newsgroups file to respond with a list of newsgroups
  that matches the pattern, and gives their one line
  descriptions.
  
xhdr header [range|MessageID] (extension)
  Lists the requested header of all items that fall
  within the given range.
  
xover [range] (extension)
  Lists all the items within range giving a fixed set
  of headers in return.  Under DNEWS this command is
  implemented in software, no actual database is
  required as the DNEWS database is efficient enough
  to produce this information on the fly.
  
xpat header range|MessageID pat [morepat...] (extension)
  Weird extension, don't use this.  In shell syntax it
  is roughly equivalent to:
  
  xhdr header range | grep pat
  
xpath MessageID (extension)
  This command is not implemented, as their is no
  internal file name that can be returned and frankly
  the command should never have existed as it breaks
  every rule of information hiding and abstraction.
  But hey, that's UNIX!
  
          
          
