home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / dnew54c3.zip / INSTALL.TXT < prev    next >
Text File  |  1996-11-16  |  91KB  |  2,104 lines

  1.             DNEWS Installation, a brief guide by NetWin World
  2.             -------------------------------------------------
  3.  
  4. DNEWS is a dynamic news server system, it is not a news reader but rather
  5. it is the server which a news reader reads news from.
  6.  
  7. DNEWS is not freeware, see license.txt for details.
  8.  
  9. Index to this document:
  10.  
  11. (1) DNEWS Feature list
  12. (2) Installation VMS
  13. (3) Installation for UNIX
  14. (4) Installation for Windows NT (& Windows 95)
  15. (5) Installation for NETWARE 
  16.     (see install.os2 for OS2 specific installation instructions)
  17. (6) Installing a full feed
  18. (6b) Example of full feed from UUNET 
  19. (7) Recommended news readers
  20. (8) FAQ and What if it doesn't work
  21. (9) Using other TCPIP stacks on VMS
  22. (10) Mailing lists
  23. (11) Notes on compiling and porting DNEWS (unix)
  24. (12) Updates, List of bugs fixed for each version.
  25.      See the FAQ section for "Creating local news groups"
  26.      See the FAQ section for "Gatewaying Mailing lists"
  27.  
  28.  
  29. -----------------------------------------------------------------------------
  30. (1) DNEWS Feature list:
  31.     Dynamic sucking feed.
  32.         A sucking feed may use as little as 10% of the normal
  33.         disk space and network bandwidth.
  34.         By only getting news items that people usually read 
  35.         very large savings are possible particularly for small
  36.         sites & workgroups.  A hundred users can be supported
  37.         on 100 MB depending on their reading habbits!
  38.         I run a single user server on my NT as a background
  39.         service, it's using less than 5MB.
  40.     Flexible expire settings 
  41.         By allowing expiration by 'number of items' low volume groups
  42.         become much more useful.  Also by allowing settings 
  43.         which change with disk space the system is much more
  44.         stable to large influxes of news.
  45.     Flexible access restrictions
  46.         Reading and Posting access can be given separately to
  47.         to different users and selections of news groups.
  48.     Binarys available for common platforms
  49.         On many platforms you do not need to build the binary
  50.         yourself, e.g. VMS, (VAX & ALPHA), Solaris, Linux, Windows NT
  51.     Email confirmation of posts
  52.         DNEWS can be configured to send email confirmations as it
  53.         sends items up to a main news server.  This gives users 
  54.         a clear record of a posted item and it's successful 
  55.         transfer into the 'net'.
  56.     Items stored in a database
  57.         Items are stored in a database which puts items together
  58.         in blocks of 100.  This saves directory entries, inodes,
  59.         and the empty space usually wasted due to blocking factors.
  60.         Also file open and closes are minimized, this is essential
  61.         on systems where this is a 'costly' operation, e.g. VMS.
  62.     Compiling and porting relatively easy
  63.         DNEWS was designed to be portable from the ground up, it 
  64.         does not rely on obscure UNIX features.
  65.     Installation easy, totally configurable without recompiling
  66.         DNEWS can be configured without recompiling and all
  67.         the configuration scripts have been simplified where 
  68.         possible.
  69.     Documentated
  70.         A user manual is available.
  71.     Supported
  72.         EMAIL support is available for help with installation
  73.         and management.
  74.     Speed
  75.         On comparable systems DNEWS typically out performs other
  76.         news software, (even the likes of CNEWS and INN in some
  77.         instances), other VMS news servers don't even come close.  
  78.         This is partly because DNEWS uses a more advanced database
  79.         to store the news items.  The difference is also very 
  80.         noteable on smaller systems (e.g. Linux)
  81.     XOVER implemented in software
  82.         No xover database is created, the normal DNEWS database
  83.         is fast enough to create this information 'on the fly'
  84.     Streaming support
  85.         Streaming NNTP extensions are built in.
  86.     Strictly limited machine impact due to single threaded nature.
  87.         DNEWS runs on a single process, this speeds up connect
  88.         time as a process does not need to be created, and it
  89.         self-limits the impact on the system.
  90. Limitations:
  91.     DNEWS does not store items in the same file structure as used by
  92.     INN and CNEWS, so old software which accesses these files directly
  93.     will not work.      
  94. -----------------------------------------------------------------------------
  95. These instructions describe how to setup a sucking news feed, see the manual
  96. for setting up a traditional feeding mechanism.
  97. -----------------------------------------------------------------------------
  98. (2) Installation VMS: (see below for UNIX and Windows NT)
  99.     1) FTP the files from ftp.std.com ftp/vendors/netwin/dnews...
  100.         extract.com    (ascii)
  101.         install.txt    (ascii)
  102.         dnews.bck_z    (binary)
  103.     2) @extract      Extracts the required files from the saveset
  104.     3) Modify REGISTER_USER.COM to register a user DNEWS$SERVER 
  105.     4) @REGISTER_USER.COM
  106.     5) Modify DNEWS_START.COM to define the disks news should use.
  107.        (don't run it yet!)
  108.     6) $ edit sys$manager:systartup_v5.com    Add a call to dnews_start.com
  109.     7) $ edit sys$sylogin:           Add the symbol, see dnews_login.com
  110.     8) $ edit dnews_top:dnews.conf    
  111.         Modify the file DNEWS.CONF to describe your
  112.           system by defining the following symbols
  113.             SYMBOL        EXAMPLE
  114.             manager        system      
  115.                     (email address or user@site.com)
  116.             nntp_feeder    news.feeder.site
  117.             myname        news.this.place
  118.             timezone    nzst
  119.                     (new zealand standard time)
  120.             diskspace    100
  121.                     (space available in megabytes)
  122.             mail        smtp
  123.                     (the foreign email protocol name)
  124.             confirm        *.this.place  Enable email confirmation
  125.                     when item is passed up to a feeder site.
  126.     9) If your news feeder stamps news items with a name other than
  127.         the ip name you specified above, then you will need to add an
  128.         exclude field to the file newsfeeds.conf to prevent your system
  129.         echoing all news back to the feeder!!!
  130.         (check the path header of an item to see what it is doing)
  131.     10) $ edit access.conf          Grant an ip range access to your users.
  132.                     by name or number, e.g.
  133.             *.this.place:read,post:::*
  134.             161.23.4.*:read,post:::*
  135.      
  136.     11) $ @dnews_start           Start the system
  137.          $ @dnews_login         (to define the symbol tellnews)
  138.      The system will now try and get a list of news groups from your
  139.        feeder site, while this is happenning it will not respond, but you
  140.      can check it's progress by:
  141.         $ type dnews.log
  142.      When it has finished (give it 10-20 minutes), you can then try:
  143.         $ tellnews status
  144.  
  145.     12) Go to a PC and try out your news reader software pointed 
  146.         at the new system.
  147. -----------------------------------------------------------------------------
  148. (3) Installation for UNIX:  (Sucking feed)  See below for Windows NT
  149.     1) FTP the files from ftp.std.com ftp/vendors/netwin/dnews...
  150.         dnews_MACHINE.tar.Z        (binary)
  151.         (e.g. dnews_linux.tar.Z    )
  152.     2) Extract to a temporary directory in your own account
  153.         uncompress dnews_linux.tar
  154.         tar -xvf dnews_linux.tar
  155.     3) EDIT dnews.conf
  156.         Modify the file DNEWS.CONF to describe your
  157.           system by defining the following symbols
  158.             SYMBOL        EXAMPLE
  159.             manager        system      
  160.                     (email address or user@site.com)
  161.             nntp_feeder    news.feeder.site
  162.             myname        news.this.place
  163.             diskspace    100
  164.                     (space available in megabytes)
  165.             df        The path and flags for df
  166.             sendmail    The path and flags for sendmail
  167.             confirm        *.this.place  Enable email confirmation
  168.                     when item is passed up to a feeder site.
  169.     4) Edit your system startup script, the name will vary:
  170.         On LINUX /etc/rc.d/rc.local
  171.         Add a line:
  172.             /usr/local/dnews/dnews_start.sh
  173.     5) If your news feeder stamps news items with a name other than
  174.         the ip name you specified above, then you will need to add an
  175.         exclude field to the file newsfeeds.conf to prevent your system
  176.         echoing all news back to the feeder!!!
  177.         (check the path header of an item to see what it is doing)
  178.     6) Edit access.conf         Grant an ip range access to your users.
  179.                     by name or number, e.g.
  180.             *.this.place:read,post:::*
  181.             161.23.4.*:read,post:::*
  182.     7) If you have changed any of the default directories, then edit
  183.        all the .sh scripts to reflect the changes.
  184.     8) Run the installation script
  185.         su root   (You need priv to install the files start dnews)
  186.         ./install.sh
  187.     9) Start the system
  188.         ./dnews_start.sh
  189.      The system will now try and get a list of news groups from your
  190.        feeder site, while this is happenning it will not respond, but you
  191.      can check it's progress by:
  192.         more dnews.log
  193.      When it has finished (give it 10-20 minutes), you can then try:
  194.             > tellnews status
  195.  
  196.     10) Go to a PC and try out your news reader software pointed 
  197.         at the new system.
  198.  
  199.     LINUX slackware: Comes with a dummy nntp daemon installed, you must remove 
  200.     this so dnews can bind to the socket.  (so it 
  201.     won't even start up)
  202.         edit /etc/inetd.conf
  203.         (comment out the NNTP line)
  204.         kill -HUP <pid of inetd process>
  205.  
  206.     Some brands of unix (BSDI, Unixware) have process limits, the 
  207.     two that will hurt dnews are memoryuse/datasize, and 
  208.     openfiles.  The following commands can remove these limits
  209.     you will need to do this for root and news users.
  210.         limit memoryuse unlimited
  211.         limit openfiles 256
  212.         limit datasize unlimited
  213.     To test these limits are really removed use the commands:
  214.         tellnews test_mem
  215.         tellnews test_files
  216.     You must stop and restart dnews after running these tests.
  217.     You should see about 200 free file handles and about 30MB or more
  218.     of memory that can be allocated, if you see less then you haven't
  219.     removed the limits.    
  220.     
  221.  
  222. -----------------------------------------------------------------------------
  223. !!! Notes for Windows 95 !!!
  224.   Follow the instructions for Windows NT and mostly it will work
  225.   except for:
  226.       1) Services don't exist, so you have to run dnews from a 
  227.          DOS prompt.  You can put this into your STARTUP group to
  228.          make it start automatically like an NT service.
  229.       2) The DNEWS MANAGER start and stop service buttons won't work.
  230.          You can stop the service by sending the EXIT command, it 
  231.          may give an error when you do this, but check the log and
  232.          it will probably show it has shut down.
  233.       3) NetWin do not recommend the use of Windows 95 as a full
  234.          news server for large numbers of users. Use NT if possible.
  235.  
  236. ---------------------------------------------------------------------
  237. (4) !!! UPGRADING NT!!! 
  238.     Shutdown the server and exit from DNEWS Manager
  239.     Run the self extracting archive
  240.             dnews23c.exe (or whatever version)
  241.         When installation is complete start DNEWS Manager
  242.     from the DNEWS Program Group. And click on 
  243.             'Start Service'
  244.  
  245. (4) Installation for Windows NT !!! on a new system !!! (Sucking feed) 
  246.     1) FTP the files from ftp.std.com ftp/vendors/netwin/dnews...
  247.         dnews23c.exe (binary transfer)
  248.     2) Run the self extracting archive and installation
  249.            procedure
  250.         dnews23c.exe
  251.         3) Run DNEWS Manager to modify the setup further
  252.            and to start the service
  253.     4) Point your news reader software at your NT and try out your new
  254.         fast news system.
  255.  
  256.     5) Join the mailing lists for advice an update information, 
  257.      and don't forget to register :-)
  258.             Open DOS Window
  259.             then type TELLNEWS REGISTER
  260.  
  261.  
  262.     If it fails, look in
  263.         type \dnews\dnews.log
  264.     Then check the FAQ file DNEWSFAQ.TXT
  265.     Then send email to us if you think you've found a bug, or to
  266.     the mailing list if you just want advice from other DNEWS 
  267.     managers.
  268. -----------------------------------------------------------------------------
  269. (5) Installation for NETWARE 4.x
  270. WARNING: MEMORY
  271.   DNEWS expects virtual memory, as netware has none you
  272.   have to make sure your system has sufficient REAL memory, 
  273.   for a sucking feed you will need 8MB free, for a full IHAVE 
  274.   feed you will need 16MB of free memory (these are estimates)
  275. WARNING: GROUPS
  276.   This release for NETWARE is limited to 10,000 groups, 
  277.   this is heaps if you take care with the 'ME' setting 
  278.   in feeds.con
  279. WARNING: BETA RELEASE
  280.   This is a beta release, NetWin do not recommend that you
  281.   install this on a mission critical server.  Please report
  282.   any problems you find.
  283.     
  284.     attach myserver
  285.     File, Run, dnewsnw23f.exe  (or whatever the latest version is)
  286.     Answer the configuration questions.
  287.     
  288.     In your autoexec.ncf script add the following lines.
  289.         load dnews
  290.     Load the server by hand.
  291.          load dnews
  292.     
  293.     Go to a PC and try out your news reader software pointed 
  294.     at the new system.  On windows 95 you can run the DNEWSMAN 
  295.     configuration utility to setup or modify your configuration.
  296.  
  297.     Use the command:
  298.         load tellnews status        To see what it's doing
  299.         load tellnews register        To see what it's doing
  300.         load tellnews exit        To shutdown dnews nicely
  301.         load tellnews help        For other commands.
  302.  
  303.     NEVER shutdown the service with the 'unload' command. Always use
  304.         load tellnews exit
  305.     instead.
  306.  
  307.  
  308. -----------------------------------------------------------------------------
  309. (6) Installing a full feed:
  310.  
  311. In access.conf, give your feed site access to send you ihave messages:
  312.     my.feeder.site.com:ihave:::*
  313. In dnews.conf, comment out the nntp_feeder definition and add a line:
  314.       cachedall true 
  315. In newsfeeds.conf
  316.     Replace
  317.         site $NNTP_FEEDER
  318.             groups *
  319.             builtin
  320.             posting
  321.     With
  322.         site my.feeder.site
  323.             groups *
  324.             builtin
  325.     And correct the ME feed, the default one does not 
  326.     allow any binary groups in, if you really want a 
  327.     full feed fix this by removing the !*binary*
  328.  
  329. **** You must get an active file ***
  330. You MUST get a copy of active.dat from your provider, the file is simply
  331. called the 'active' file on INN or CNEWS, you need to FTP the file and copy it
  332. to \dnews\spool\active.dat while the server is NOT running.
  333.  
  334. Copying important files from an existing system:
  335.     With a sucking system you can do this with the commands:
  336.         tellnews getnames
  337.     The active file will be fetched automatically.  But if you are setting
  338.     up an IHAVE feed so you don't have 'reader' access this WILL NOT WORK, you
  339.     must FTP the active file from your provider if possible, or from
  340.     ftp.std.com /ftp/vendors/netwin/dnews/active.dat_sample and copy it
  341.     to  /dnews/spool/active.dat  (the workarea directory)
  342.  
  343.     If you are replacing a news system then you want
  344.     the active file from the one you replace, not from your
  345.     feeder site:
  346.  
  347.     You can safely copy these files:
  348.  
  349.     active        -> active.dat
  350.     active.times    -> active.times
  351.     newsgroups     -> active.names  (may be changed in future)
  352.     
  353.     If you copy the active file, you must reset it so that
  354.     it doesn't think it has any items, do this with the command
  355.         tellnews resetall
  356.  
  357.      The only way to get the actual news items from an existing system is to
  358.     setup DNEWS on a second system (or on the same system on a different
  359.     PORT) and then suck the entire database via nntp.  Obviously to do this
  360.     you need a lot of free disk space.
  361.     
  362. Renaming a volume (on unix):
  363.     You may wish to rename a current volume /var/spool/news
  364.     to be /var/spool/dnews, to do this:
  365.  
  366.     cd /var/spool/news
  367.     mkdir OLD
  368.     mv * OLD
  369.     umount /var/spool/news
  370.     emacs /etc/vfstab (or /etc/fstab)
  371.         (change /news into /dnews)
  372.     mount /var/spool/dnews
  373.     
  374.     When you are happy with the new system, or you need the space:
  375.  
  376.         rm -r /var/spool/dnews/OLD
  377.     
  378.  
  379. (XMIT (Setting up full feeds)
  380.     This is necessary when you want to send a full feed onto another site.
  381.     If you are a leaf site then you DONT NEED TO DO THIS !!!!!!
  382.     First add entries to your NEWSFEEDS.CONF file, this creates the
  383.     file site_name.feed, then you need to setup a timed job to send those
  384.     items to the other sites using NNTP IHAVE (or streaming extensions)
  385.  
  386.     You should set all groups as cached, in dnews.conf add  a line:
  387.              cachedall true
  388.  
  389. XMIT (On unix)
  390.     Add lines to your rc.local procedure, e.g.
  391.         cd /usr/local/dnews
  392.         ./xmit send.to.site.name -at "*2" "*"
  393.         ./xmit send.other.site.name -at "*7" "*"
  394.  
  395. XMIT (On Windows NT)
  396.     On windows NT you need to setup each xmit job as a service, to do this
  397.     use the program ADDSVC.EXE which came with the dnews distribution to
  398.     add a service for each outgoing feed, e.g. (see setupsvc.cmd)
  399.         addsvc -add dxmit1 xmit.exe "dxmit1 site.name.edu -at *5 *"
  400.         addsvc -add dxmit2 xmit.exe "dxmit2 site2.name.edu -at *5 *"
  401.     Then from CONTROL PANEL, SERVICES, and start the feeds.
  402.  
  403. XMIT (On VMS)
  404.     See RUNXMIT.COM
  405.  
  406. ------------------------------------
  407. (6b) Example of full feed from UUNET
  408.  
  409.  
  410. -------dnews.conf---------
  411. In  dnews.conf  comment out nntp_feeder by putting a HASH in 
  412. front of the line, and add cachedall true, e.g.
  413.     # nntp_feeder    your.feeder.ohio.edu
  414.     cachedall true
  415.  
  416. ------newsfeeds.conf cut here ----------
  417.     site me
  418.         groups *
  419.     site news.uu.net
  420.         groups *,!local.*
  421.         exclude uunet
  422.     site YOUR.MAIL.GATEWAY
  423.         smtp
  424. ------access.conf cut here and change your domain and ipnumbers ------
  425. # Don't let the world connect :-)
  426. *:logoff:::*
  427.  
  428. # Do let your domain and ip range connect    **** CHANGE THIS BIT ***
  429. *.your.domain:Read,Post:::*
  430. 161.232.32.*:read,post:::*
  431.  
  432. # Do let your news feed from UUNET send you items
  433. news*.uu.net:ihave:::*
  434. -----------------------------------------------------------------------------
  435. (7) Recommended news readers:
  436.     For PC's
  437.         Netscape's built in reader.
  438.         WINVN
  439.         Trumpet (old versions are slow, get a new version)
  440.         Freeagent
  441.     For VMS
  442.         FNEWS
  443.  
  444. Testing DNEWS or your FEEDER site or your OWN site by hand:
  445. VMS    $ telnet feeder.site /port=119
  446. UNIX    > telnet feeder.site 119
  447.     group comp.os.vms    (select a group)
  448.     head            (display the header)
  449.     body            (display the body)
  450.     next            (next item please)
  451.     help            (show valid commands)
  452.     quit            (exit the connection)
  453.     $ 
  454.     
  455. -----------------------------------------------------------------------------
  456. (8) FAQ and What if it doesn't work:
  457. -----------------------------------------------------------------------------
  458. Index to FAQ section:
  459.     Calculating Memory use
  460.     Setting your EXCLUDE parameter correctly
  461.     Posting to a moderated group
  462.     Can't BIND, and tellnews sais "I can't talk to you"
  463.     TELLNEWS fails 
  464.     TELLNEWS gives unusual error message
  465.     TELLNEWS GETOLD * gives a core dump
  466.     Transfer permission denied.
  467.     Creating local news groups:
  468.     What if DNEWS Crashes !!!
  469.     Gatewaying Mailing Lists
  470.     Windows NT operating system bug
  471.     Setting up a UUCP feed out of DNEWS
  472.     Setting up a UUCP feed into DNEWS
  473.         Message aren't going upstream/ 435 Duplicate error
  474.  
  475. Calculating memory use
  476.     This is a rough guide to calculating how much memory    
  477.     dnews will use.  This is VIRTUAL memory, you dont' need this
  478.     much physical memory (but it will go faster if it does :-)
  479.  
  480.         (Concurrent connections) * 200K
  481.         (Articles in history file - see expire processed) * 12
  482.         (Spool Gig's) * 1MB
  483.         (Max article size accepted) * 2
  484.         (Number of news groups) * 100
  485.         head_cache (default 200) * 3k
  486.         xover_cache (default 3000) * 300 
  487.         Program static data 4mb
  488.      
  489.     So lets take a smallish system with 20,000 news groups, 
  490.     10 concurrent connections, 200,000 lines of history data, 
  491.     1 Gig of spool, 1MB articles.
  492.  
  493.         10 * 200K = 2MB
  494.         200,000 * 12 = 2.4MB
  495.         1Gig = 1MB
  496.         1MB Artilces = 2MB
  497.         20,000 News groups,  = 2MB
  498.         head_cache (default 200) * 3k = 600K
  499.         xover_cache (default 3000) * 300 = 900K
  500.         Program static data = 4mb
  501.         Total memory use = 14.9MB
  502.     NOTE you DO NOT NEED THIS MUCH RAM, dnews is designed to 
  503.     deal with multiple full feeds and 100's of users, if you
  504.     are running a smaller system you don't need all this as REAL
  505.     ram, that's what virutal memory is for, it just slows down
  506.     a little.
  507.  
  508.     Typically on a small system where you wish to reduce the 
  509.     memory use you need to look at:
  510.         Total groups
  511.         History remember setting.
  512.         Maximum article size
  513.  
  514.     You can drastically reduce memory use with these settings:
  515.         (in expire.conf) remember 4
  516.         (in dnews.conf) item_max 200000  (stops large binary items!!!)
  517.         (in newsfeeds.conf change your ME feed to only
  518.         allow groups that really exist in your country-area)
  519.             site ME
  520.                 groups !*,rec.*,comp.*,alt.*,news.*,soc.*,bit.*,bionet.*,sci.*
  521.         tellnews matchfeed
  522.         tellnews purgegroups
  523.         (restart dnews to free up the memory)
  524.         
  525.     As a rule of thumb to avoid calculations with unix and NT, 
  526.     create a 100MB swap/page file as a first step.  If you 
  527.     are running a big system, then 200mb would be a wise choice.  
  528.  
  529. Setting your EXCLUDE parameter correctly:
  530.      In newsfeeds.conf you must set your exclude parameter to 
  531.     stop DNEWS from sending incoming messages back
  532.     to your feed site.  Lets assume your feed site is     
  533.     called fastfeed.world.net. You need to find out what it 
  534.     stamps onto news articles, to do this read a news article
  535.     (and show all headers so you can see the PATH header)
  536.  
  537.     e.g.
  538.     Newsgroups: alt.winsock.trumpet
  539.     Subject: Sportster Si does not seem to work with TRUMPET
  540.     Date: Thu, 26 Oct 1995 22:44:08
  541.     Organization: Personal
  542.     Lines: 8
  543.     Message-ID: <moleski.2.0016BD02@sasknet.sk.ca>
  544.     NNTP-Posting-Host: eagle28.sasknet.sk.ca
  545.     X-Newsreader: Trumpet for Windows [Version 1.0 Rev A]
  546.     Path: fast1.world.net!world.net!news.icix.net!esol.intermedia.com
  547.  
  548.     Look thru the path, left to right, and find the first or most generic 
  549.     name for your feed site, in this case 'world.net' looks like
  550.     the best name to choose. 
  551.  
  552.     So here is the entry you should put in newsfeeds.conf, you may
  553.     need the builtin and posting settings as well but that is up to you.
  554.  
  555.     site fastfeed.world.net
  556.                groups *
  557.         exclude world.net
  558.         builtin
  559.     
  560.     You may need to delete your .feed and .sending
  561.     files from the spool directory to clear out
  562.     the backlog of articles queued.
  563.  
  564. Posting to a moderated group
  565.     Note: You can only do this to your own moderated local groups.
  566.     Get the FreeAgent news reader.
  567.         In agent.ini change showallfields to 1, e.g.
  568.  
  569.         [Message]
  570.         ShowAllFields=1
  571.  
  572.     Then re-post the article after putting your mail address
  573.     in the approved header using freeagent.
  574.  
  575.  
  576. FTP the complete manual in MS word 6 format from:
  577.     ftp.std.com ftp/vendors/netwin/dnews/dnewsdoc.zip
  578.  
  579. HINT: when reading the log files, it is easy to confuse an error message
  580. from DNEWS with an error message that dnews got while talking to 
  581. your feeding site.   Usually if the error looks like:
  582.    Status {223 transfer permission denied}
  583. then it came from somewhere else, not your system.
  584.  
  585. Can't BIND, and tellnews sais "I can't talk to you"
  586.     LINUX slackware: Comes with a dummy nntp daemon installed, you must remove 
  587.     this so dnews can bind to the socket.
  588.         edit /etc/inetd.conf
  589.         (comment out the NNTP line)
  590.         kill -HUP <pid of inetd process>
  591. TELLNEWS fails 
  592.     The DNEWS process may take 1-2 minutes to initialize, so wait a bit
  593.     before panicking.
  594.  
  595.     Check if the process is running
  596.         (linux) ps -axl | grep dnews
  597.         (sunos) ps -ef | grep dnews
  598.         (nt) Look at services in control panel
  599.     
  600.     Check the log files
  601.         more /usr/local/dnews/dnews.log
  602.         (nt) type /dnews/dnews.log    
  603.  
  604.     If it gets started up with the wrong PID you will get all sorts of
  605.     protection problems,  all the files in
  606.         /var/spool/dnews/...  (including var/spool/dnews)
  607.     must be owned by the same user, normally 'news'
  608.     Also all the files in:
  609.         /var/local/dnews/*
  610. TELLNEWS gives unusual error message
  611.     On vms, if the symbol tellnews is not defined, it will try and run
  612.     telnet instead, this can be confusing.
  613.     On Windows NT if you left the disk name out of the config file and
  614.     you run the tellnews command from a different default disk then
  615.     it won't be able to find all the files it needs to work.
  616. TELLNEWS GETOLD * gives a core dump
  617.     Try 
  618.         tellnews getold "*"
  619.     Need I say more?  This gets me every time too :-)
  620. Transfer permission denied.
  621.     This can come from one of two directions,  DNEWS can give this error
  622.     when a site tries to feed it new items.  
  623.  
  624.     If you are using a sucking feed then you should stop the
  625.     site that is trying to send to you from sending as DNEWS
  626.     will ask for any items it wants. 
  627.  
  628.     If you do want to allow incoming IHAVE messages, 
  629.     then add an IHAVE record for this ip address in the 
  630.     ACCESS.CONF file, and also remove the 'POSTING' flag from
  631.     the NEWSFEEDS.CONF file for the ME site.    
  632.     
  633.     The last possibility is that this error is coming 
  634.     from your feeding site, in which case that system manager 
  635.     has to fix the problem for you.
  636. Creating local news groups:
  637.     If you wish to have local groups on your server, that are not on the
  638.     server you 'suck' from, then you should remove the 'POSTING' flag
  639.     from the feed to your feeder site (in newsfeeds.conf).  But 
  640.     only if you can get ihave or transfer permission to send 
  641.     articles up stream rather than simple 'posting' access.
  642.  
  643.     You can add groups with the TELLNEWS NEWGROUP command, e.g.
  644.         tellnews newgroup here.chat y myname Local group for chatting
  645.         
  646.         here.chat = name of group
  647.         y = Normal group (m = moderated)
  648.         myname = Just a record of who created the group (one word)
  649.         Local group for chatting = description for active.names file. 
  650.  
  651.     To stop your local group from being sent up stream, you would
  652.     change the line in your newsfeeds.conf file:
  653.         groups *,!here.chat,!here.secret.*
  654.     NOTE: KNOWN BUG, with version 2.0 items will still be sent upstream if 
  655.     you have left the 'POSTING' keyword in your feed.  This will probably
  656.     be fixed in a future version
  657.  
  658. Giving DNEWS access to an INN news system.
  659.     1) Give normal NEWS READER access to the dnews machine by adding a 
  660.     line to your nnrp.access file
  661.              dnews.ip.name:read post:::*
  662.  
  663.     2) Give DNEWS ihave access to your server 
  664.     Add a line to  hosts.nntp
  665.             dnews.ip.name
  666.  
  667. What if DNEWS Crashes !!!
  668.     Don't Panic! (in large friendly letters)
  669.     It is a design goal of DNEWS that it should never never never
  670.     never never crash.
  671.     
  672.     We have now built in some special debugging options so you can
  673.     help us track down the problem if this should happen on your
  674.     machine.
  675.  
  676.     So, if it crashes, do this:
  677.         Edit dnews.conf and change the debugging lines to:
  678.             loglvl flush
  679.             debug_rotate 2000
  680.     Then start the system, and the next time it crashes, email
  681.         dnews.log  & dnews.conf & newsfeeds.conf
  682.     To us at:  netwin@world.std.com
  683.     Together with any other facts that you can give us, e.g.
  684.         If you are sucking news or getting a full feed.
  685.         If you are using xmit
  686.         What systems and news readers are reading from you,
  687.         (e.g. tin, trumpet, pc's only, whatever...)
  688.         At what time of day it crashes. any other clues...
  689.     
  690.     Many thanks for your assistance in this.
  691.  
  692. Gatewaying Mailing Lists
  693.     CAUTION, gatewaying mailing lists to public news groups is 
  694.     a little risky, don't do it lightly.
  695.  
  696.     Two gateways are needed to make a news group and a mailing list 
  697.     'identical', you must setup both so that a news post gets sent to the
  698.     mailing list and so a mailing post gets posted to the news group.
  699.     
  700.     Setting up a gateway from a "NEWS group" to a "MAILING LIST"
  701.         In newsfeeds.conf add a feed for the group you wish to gateway, the
  702.     'site' name can be anything meaningful to you.
  703.     
  704.         site juggling
  705.                 groups rec.juggling
  706.  
  707.     (This will make dnews create juggling.feed in the workarea directory)
  708.  
  709.     Now to actually send the items, setup an xmit process for each mailing
  710.     list.  To do this edit addmail.cmd (which will be in /dnews with luck)
  711.  
  712.     notepad addmail.cmd
  713.         Change the -name to be the name in newsfeeds.conf
  714.         Change MAIL.HERE.COM to point to your mail server
  715.         Change JUGLIST@HERE.COM to point to the actual mailing list
  716.         addsvc -del dxmail1
  717.         addsvc -add dxmail1 xmit.exe "dxmail1 MAIL.HERE.COM -at *5 *
  718. (cont. but should be on one line)   -mail JUGLIST@HERE.COM -name juggling"
  719.  
  720.     addmail.cmd  (run the script to add the service)
  721.  
  722.          Restart things:
  723.          tellnews reload
  724.          Start the xmit service in Control Panels (for nt)
  725.  
  726.     Test the mailing list, if a loop occurs, disable it quickly and figure 
  727.     out why.
  728.  
  729.     Setting up a gateway from a MAILING LIST to a NEWS GROUP  (Windows NT only)
  730.         First setup DROBOT to run from ntmail, in control panels run the 
  731.     NTMail admin tool.  Click on 'executables' and enter a name for this
  732.     gateway, e.g.
  733.         juglist-robot
  734.     (You will then need to add this user to your juglist mailing list, e.g.
  735.      juglist-robot@here.com, so that this robot will get all messages that
  736.      are posted to the mailing list)
  737.  
  738.     In the command line box type in:
  739.         drobot -dir c:\ntmail\news -groups rec.juggling
  740.     
  741.     Now, setup the service to post these items.
  742.         addsvc -del dposter
  743.         addsvc -add dposter dposter.exe "dposter -dir c:\ntmail\news
  744.             -to news.here.com"
  745.  
  746.     Now start the services (from control panel) and then test 
  747.     posting a message and mailing a message to the mailing list and 
  748.     see if the newsgroup and mailing list are kept inline.
  749.  
  750. Windows NT operating system bug
  751.  
  752. >Situation:
  753. >- In ControlPanel->Network->Server->Configure the optimization is set by
  754. >default to "Maximize Throughput for File Sharing". - Most of the time this
  755. >has no apparent effect, but when copying a single file that is large, all
  756. >available ram is allocated to the disk cache, and when the ram runs out, it
  757. >starts paging like crazy. This is stupid behaviour, and is a bug. If this
  758. >goes on for any length of time, you'll probably have to reboot. - When (if)
  759. >that file copy ends, the ram is released and the system resumes normal
  760. >operation. - If you copy lots of smaller files, you will not observe this.
  761. >It happens on a file by file basis. Presumably the same thing happens with
  762. >all files, but if they're not huge, you probably won't notice because the
  763. >ram doesn't run out before the file operation finishes.
  764. >
  765. >Workaround:
  766. >- Set optimization to "Maximize Throughput for Network Applications". This
  767. >causes memory to be more intelligently managed, and the avail free memory
  768. >is kept above 4Mb as much as possible. It will still dip low, depending on
  769. >what's running, but will come back up quickly.
  770.  
  771. Setting up a UUCP feed into DNEWS
  772.     In dnews.conf add
  773.         suck_uucp c:\uucp\in\*.bag
  774.         
  775.     The BAG/UUCP file format is:
  776.  
  777.     #! rnews nnnn
  778.     ...(article, exactly nnnn bytes, counting each end of line as one byte)
  779.     #! rnews nnnn
  780.     ...(next article)...
  781.        
  782. Setting up a UUCP feed out of DNEWS
  783.    In newsfeeds.conf add a feed, e.g.
  784.                site site1.name.uucp
  785.             type uucp
  786.             uucp_dir c:\uucp\out
  787.                    groups *
  788.  
  789.  
  790.    This will create files called news000n.bag in the directory c:\uucp\out
  791.    It's your job to uucp copy these to the destination sites, and delete them.
  792.    If you want you can compress them first.  :-)
  793.  
  794.    The format of the file is:
  795.  
  796.     #! rnews nnnn
  797.     ...(article, exactly nnnn bytes, counting each end of line as one byte)
  798.     #! rnews nnnn
  799.     ...(next article)...
  800.  
  801.  
  802. Message aren't going upstream/ 435 Duplicate error
  803.         The problem is your exclude paramter is wrong, this
  804.     results in dnews sending all items it gets back upstream
  805.     which results is a clogged queue so your local posts
  806.     never get sent.
  807.  
  808.     Read the section above:
  809.               Setting your EXCLUDE parameter correctly:
  810.         
  811. -----------------------------------------------------------------------------
  812. (9) Using other TCPIP stacks on VMS
  813. -----------------------------------
  814.     Only the multinet driver has been tested.  The ucx driver has been
  815.     compiled and will probably work with very little effort.
  816.  
  817. To build a new TCPIP driver:
  818.     $ edit nntp.c
  819.     (Add a section to include the header files for your version
  820.     of tcpip, ifdef it in some obvious way). e.g.
  821.         #ifdef MULTINET
  822.             #include "multinet_root:[multinet.include.sys]socket.h"
  823.             ...
  824.         #endif
  825.  
  826.     $ edit n.com
  827.     (Change the compile line so it defines the symbol that you
  828.     used above to distinguish your tcpip software AND change the
  829.     name of the object file too) e.g.
  830.         $ cc nntp.c /define=("MULTINET"="TRUE") /obj=nntp_multi.obj
  831.     
  832.     $ edit l.com
  833.     (Add a section to link to your tcpip stack, you will need to change
  834.     the name of the nntp_XXX.obj file name and probably the socket library
  835.     name.) 
  836.  
  837.     Try and compile it and link it:
  838.         $ @N
  839.         $ @l multinet all
  840.  
  841.     Most likely it will fail because of some conflict between names
  842.     e.g. socket_close(), or simply close(),  add ifdefs to NNTP.C to
  843.     correct for this.
  844.  
  845.     Once you have it working, email the files nntp.c and l.com and n.com
  846.     to us and we will maintain and distribute these changes for
  847.     others.
  848.                 netwin@world.std.com
  849. -----------------------------------------------------------------------------
  850. (10) Mailing list  (Announcements)  (discussion list below)
  851. ---------------------------------------------------
  852.     You can join the dnews mailing list by sending a message to:
  853.         dnews-announce-request@netwin.co.nz
  854.     Containing one line:
  855.         join dnews-announce
  856.  
  857. This is a moderated mailing list, it's only function is to announce new
  858. versions of dnews and to disseminate up to date information on installation
  859. problems, bugs, new features etc to people who manage news systems.
  860.  
  861. You will not be flooded with mail from this mailing list, it will probably
  862. average 1-2 messages a month or less!
  863.  
  864. Mailing list, (Discussion)
  865. --------------------------------------
  866. If you want to 'chat' about DNEWS with other DNEWS users, discuss possible
  867. new features, complain or praise the wonderful support we give or generally
  868. natter to other people running similar systems,  then you can join the 
  869. DNEWS discussion list which is kindly hosted by Stephen White:
  870.  
  871. To subscribe send a message to:
  872.         dnews-request@adam.com.au
  873.  
  874. Containing one line:
  875.         subscribe
  876.  
  877. To send messages to the list send to:
  878.         dnews@adam.com.au
  879.  
  880. -----------------------------------------------------------------------------
  881. (11) Notes on compiling and porting DNEWS (unix)
  882. ------------------------------------------------
  883.     Uncompess and untar the saveset
  884.     Copy a config file which matches your machine, if one does not match
  885.     then find the closest one you can. e.g.
  886.     (for SunOS)    > cp config.solaris config.i
  887.     (for LINUX)    > cp config.linux config.i
  888.     
  889.     Edit and modify config.i as necessary.
  890.     Type in make all.
  891.             > make all
  892.     Now follow the normal installation instructions.
  893.  
  894.     If you have to make changes to the config.i file, then email it to
  895.     us, specifying what type of machine & OS it is for and we
  896.     will include it in the next distribution.
  897.  
  898.     If you change source code then email us the entire source files
  899.     that were changes, please don't send diff or patch files these
  900.     are extremely difficult to merge from multiple sources.
  901.  
  902.     When making machine specific changes, IFDEF all the changes 
  903.     and where possible use 'feature' like ifdefs rather than 
  904.     'machine' related ifdefs, e.g.
  905.  
  906.         #ifdef NEEDS_STRDUP
  907.             ...
  908.         #endif
  909.     (then define NEEDS_STRDUP in the config.i file)
  910.     Rather than:
  911.         #ifdef LINUX
  912.             ...
  913.         #endif
  914.     
  915. Enabling the DNEWS Full Text Searching engine
  916. ---------------------------------------------
  917. Warning: This is a beta release of the Full Text Searching mechanism which
  918. was more than a little difficult to implement, it is still experimental at this
  919. time! We will be keen to hear how it performs in the 'real world' your feedback 
  920. is always valuable.  
  921.  
  922. Warning!!! To build a really complete index will require free space
  923. of about 10-50% the size of your spool area, it will also gobble up
  924. signficant processor & memory resources.  See the file fts.conf to control how
  925. much of each item is actually indexed, and limit the list of groups that
  926. you send to the indexing service.
  927.  
  928. You can 'index' a subset of groups, possibly just your local
  929. news groups which are important to you, this will require very little 
  930. resources.
  931.  
  932. What to do:
  933.     1) In dnews.conf define the directory to use to build indexes, it
  934.        must be a disk with lots of free space :-)
  935.         fts_dir c:/dnews/fts           (NT) 
  936.         fts_dir /var/spool/dnews/fts   (Unix) 
  937.     2) Create the directory and move or copy fts.conf into it.
  938.         (NT)
  939.           mkdir c:/dnews/fts
  940.           copy /dnews/fts.conf c:/dnews/fts
  941.           del /dnews/fts.conf (so you don't mix it up with the real one)
  942.         (UNIX)
  943.           mkdir /var/spool/dnews/fts
  944.           copy fts.conf /var/spool/dnews/fts   
  945.     3) Install an xmit service to build the indexes:
  946.         (NT) 
  947.           addsvc -del dfts 
  948.           addsvc -add dfts xmit.exe "dfts ftsfeed -fts -at *5 *"
  949.         (UNIX)
  950.           nohup xmit ftsfeed -fts -at "*5" "*" &
  951.           (put that in a startup file)
  952.     4) Add an ftsfeed to newsfeeds.conf to send items to the xmit service.
  953.        Select a list of groups that seem sensible to index, don't index
  954.        the binary groups :-)  (add this to the end of newsfeeds.conf)
  955.         site ftsfeed
  956.             groups !*,comp.*,rec.*,local.*
  957.     5) Install dnewsweb, and in dnewsweb.ini tell it that fts is enabled
  958.         search true
  959.     6) From Program Manager start the xmit fts service:
  960.         In Control Panel, Services, Start the DFTS Service
  961.         (UNIX) nohup xmit ftsfeed -fts -at "*5" "*" &
  962.     7) Wait for the indexes to start being created, if you have a small
  963.        system you might want to send your current items into the database
  964.        we DO NOT RECOMMEND using this command, it WILL lock up dnews
  965.        for several minutes:
  966.             tellnews refeed ftsfeed   (DO THIS AT YOUR OWN RISK)
  967.     8) Try the system out:
  968.  
  969.     Notes:
  970.         1) New items will not appear immediately as DNEWS does
  971.            not reload the database very often.
  972.  
  973. /* ---------------------- Example code darchiv.c -------------------- */
  974. /* This sample archiver just writes all the articles to a single file */
  975.  
  976. #include <stdlib.h>
  977. #include <stdio.h>
  978. #include <string.h>
  979. #include <ctype.h>
  980. #ifndef FALSE
  981. #define FALSE 0
  982. #endif
  983. #ifndef TRUE
  984. #define TRUE (!FALSE)
  985. #endif
  986.  
  987. #define MAX_LINE 20000
  988. void main(int argc, char *argv[])
  989. {
  990.     FILE *f;
  991.     char bf[MAX_LINE];
  992.     int inarticle= FALSE;
  993.     f = fopen(argv[1],"a");
  994.     if (f==NULL) {perror(argv[1]); return;}    
  995.  
  996.     for (;!feof(stdin);) {
  997.         if (fgets(bf,MAX_LINE-1,stdin)==NULL) break;
  998.       if (!inarticle) {
  999.           if (strncmp(bf,"ARTICLE",7)==0) {
  1000.             inarticle = TRUE;
  1001.             continue;
  1002.         } else {
  1003.             fprintf(f,"--- Unknown Command {%s} \n",bf);
  1004.             continue;
  1005.         } 
  1006.       } else {
  1007.         if (strcmp(bf,".\n")==0) { /* single full stop is end of message */
  1008.             fflush(f); 
  1009.             fprintf(f,"-------------Next Message----\n");
  1010.             inarticle = FALSE;
  1011.             continue;
  1012.         }
  1013.         if (strcmp(bf,"..\n")==0) strcpy(bf,".\n"); /* message contained a full stop so it was translated */
  1014.          fwrite(bf,1,strlen(bf),f); /* Write message to archive */
  1015.        }
  1016.     }
  1017.     fclose(f);
  1018. }
  1019. /*------------ End of sample program --------*/            
  1020.  
  1021. -----------------------------------------------------------------------------
  1022. (12) Updates, List of bugs/features for each version.  (in reverse order)
  1023. -----------------------------------------------------------------------------    
  1024. 2.7p
  1025.     + Fixed error in newgroups date processing.
  1026.     + Made uucp_suck more flexible if rnews lengths are not exactly correct
  1027.     + Fixed bug with maxsize limit for individual feeds
  1028.     + Fixed bug in Full Text Searching on non NT systems (causing crash in xmit)
  1029. 2.7o (12-Nov-96)
  1030.     + Wide release of beta
  1031. 2.7n
  1032.     + Expire speeded up, on a large system (15 Gig spool area) we 
  1033.     measured it went from 10 hours to 2 hours.  Your mileage may vary.  :-)
  1034.      + FTS patch
  1035.     + Database flushing modified.
  1036. 2.7k
  1037.     + used.log file moved to log directory, and renamed to
  1038.       u_yymmdd.log this is to make accounting procedures simpler.
  1039.       Also the full date has been added to each line inside the file
  1040.       as well as the size of the article read.
  1041.       We applogize if this breaks any existing software.
  1042.     + If reverse dns produces a hostname with no '.'s in it, then 
  1043.       the ip number is used to tag local posts instead of the name.
  1044.     + Added dnews.conf paramter STR_START this defines the inital string
  1045.       space, you can use this to tune dnews, after it's been running for
  1046.       a few days check the second value in the str memory use shown in the 
  1047.       status output, e.g.   History:... Str 6040k/7050k/10060k
  1048.       Use a number larger than the second number.  Add 1 or 2MB e.g.
  1049.           str_start 8000000
  1050.       Don't use this parameter on WINDOWS NT, it isn't needed.
  1051.     + newsfeeds.conf parameter PENDING_MAX added, the default is 10000000 (10mb)
  1052.       If a feed file gets larger than this setting it is automatically 
  1053.       deleted, this helps to support many outgoing feeds where often one
  1054.       machine is down for several days and you don't want to run out of
  1055.       disk space.
  1056.      + Added variables to newsfeeds.conf $nntp_suck2...$nntp_suck4
  1057.     + Updateone now inserts new items 'above' normal items in the que, in this
  1058.       way you can schedule some groups to be updated at a higher priority by
  1059.       setting up a cron job to issue a command
  1060.            tellnews updateone "rec.humor.*" 
  1061.     + Fixed occasional synchronization loss with live feeds on large items
  1062.     + Fixed loop in streaming sucking (introduced in 2.7)
  1063.     + Fixed rare bug in hist_hash() which could cause crashes with very long 
  1064.     message id's. 
  1065.     + UUCP files flushed before reload to prevent errors.
  1066.     + Fixed live feed of missing items to ANU news server. (Feeds would block)
  1067. 2.7j
  1068.     + in_size added to dnews.conf, set to 500 if you are trying to 
  1069.     limit the speed of incoming messages via a modem.
  1070.     + fixed bug if live feeds with rejected items
  1071.     + fixed bug in live feeds with very long message id's.
  1072. 2.7i
  1073.     + Bug fixes in feeding channel closes
  1074. 2.7h
  1075.     + Fixed bug in uucp caching.
  1076.     + Fixed rare crash bug in live code.
  1077.     + Fixed bug with item_max being exceeded with streaming feeds
  1078. 2.7g
  1079.     + Modified 'resetall' so it doesn't set all groups to cached.
  1080.     (warning, NEVER user RESETALL on a running dnews server, it is only
  1081.     intended to be used during the initial installation)
  1082.     + Added tellnews command  logchan n  and  logfeed  feedname
  1083.     Enables logging of that channel/feed to a file chan_n.log
  1084.     + Improved speed of uucp outgoing feeds and normal multiple outgoing 
  1085.     feeds.
  1086. 2.7f
  1087.     + Fixed crash if live channels are closed in mid message.
  1088. 2.7e
  1089.     + Fixed problem with builtin uucp feed not writing enough items to each file.
  1090.     + Fixed bug with multiple sucks for identical groups if they were
  1091.     scheduled to run at the same times.
  1092. 2.7d      + Added dnews.conf setting tcp_nodelay true, this will slow dnews down
  1093.     but may solve problems with buggy news readers (as it stops packets
  1094.     being split up in mid record)
  1095.     + Fiddled newgroups command output to make Newswatcher happy.
  1096.     + Fixed live feeds to INN 1.4unoff4
  1097.     + 
  1098. 2.7c
  1099.     + Added dnews.conf setting uucp_crlf which writes uucp bag files
  1100.     with 'crlf' (text mode) instead of just 'lf' termination.
  1101.     (changed default to 'lf' termination for unix compatibility )
  1102.     + Fixed bug with dnewsman rejecting uucp_size and uucp_n settings.
  1103. 2.7b
  1104.     + Fixed bug rejecting items if item_max exceeded.
  1105.     + Made item_max dynamic (i.e. a reload changes it :-)
  1106.     + Added NNTP extension 'LIST SUBSCRIPTIONS' sends the file
  1107.        dnews/spool/subscrip.dat
  1108.       This is typically a list of default news groups that you wish
  1109.       new users to be subscribed to.  (Not all news readers will support
  1110.       this function yet).
  1111. 2.7a
  1112.     + Major features of 2.7a
  1113.         + Lower memory use
  1114.         + Live high speed outgoing feeds (to replace xmit) these stream
  1115.           and allow multiple channels, and send articles as they are
  1116.           received to reduce system impact.  This makes DNEWS ideal
  1117.           for easily sending out large feeds to many customers.
  1118.           (Assuming they haven't seen the light and switched to 
  1119.           sucking feeds yet :-)
  1120.         + Support for writing UUCP files directly (much faster)
  1121.         + Support for reading UUCP files directly (much faster)
  1122.         + Shotgun posting, to spread your local posts faster.
  1123.         + PIDENTD support for unix systems.
  1124.         + Many minor improvements / config settings / management commands.
  1125.     + Before playing with the new commands for removing groups, copy your
  1126.       ACTIVE.DAT file (just incase :-)
  1127.     + tellnews group_nodup  removes duplicate groups if they exist
  1128.     + Reduced memory use of large incoming items especially from multiple
  1129.       ihave feeds
  1130.     + Reduced memory use of group information.
  1131.     + Increased OS2 open files to 10, You should put FILES=40 or more 
  1132.       in config.sys  (Thanks to Jean-Louis Noel for OS2 code fragments)
  1133.     + Print error if history file is unreadable
  1134.     + uucp output is now a builtin option for dnews, in newsfeeds.conf
  1135.         site uucp1
  1136.             groups *
  1137.             type uucp
  1138.             uucp_dir c:\uucp1
  1139.             uucp_size 4000000
  1140.             uucp_n 500
  1141.       This will create bag files in the uucp1 directory, and switch every
  1142.       4MB or 500 items. 
  1143.     + Live links for sending out feeds.
  1144.         site downstream.site.name
  1145.             type live
  1146.             live_nchan 3
  1147.             groups *
  1148.     + On unix, err closed = 150, on slow sucking feeds fixed.
  1149.     + Change to license key processing (2-4) while waiting for key entry.
  1150.     + Fixed bug in the '.in' log files rotated file names
  1151.     + Added tellnews command
  1152.         tellnews trimgroups [n]  
  1153.       which removes groups from your local machine that are not 
  1154.       available on the machine you suck from.  (n is the suck number)
  1155.       After doing this check dnews.log,  then use the purgegroups command
  1156.       below if necessary.  BEFORE doing this make sure your list of 
  1157.       groups in nntp_feeder, or nntp_suck2-4 excludes your local groups
  1158.       or they too will be deleted (if you mess this up then use the
  1159.       undelete command from tellnews to get them back)
  1160.       e.g.
  1161.                  nntp_feeder main.sucking.site *,!microsoft.*,!local.*
  1162.                  nntp_suck2 msnews.microsoft.com !*,microsoft.*             
  1163.     + Added tellnews command
  1164.         tellnews purgegroups [wildcard]
  1165.       'kill' groups that have been marked for delete.  This command sets them
  1166.       to actually be forgotten.  Always restart dnews after using this
  1167.       command. 
  1168.       Note: If you do this on a sucking feed where you have removed several groups
  1169.       by hand that 'do' exist on the site you suck from, then the groups
  1170.       will re-appear.   This is because dnews adds groups it doesn't know about
  1171.       when sucking.  They should be left as 'marked for delete' if you don't
  1172.       want them to re-appear.
  1173.     + Added tellnews commmand 
  1174.         tellnews checkgroups check.txt
  1175.       This processes a file check.txt, which must be a checkgroups message
  1176.       with header lines followed by one blank line, followed by the list of 
  1177.       news groups with descriptions.
  1178.       Missing groups will be added, extra groups will be deleted.
  1179.     + Added support for checkgroups control message.
  1180.     + Problem with cachedonly true and sucking fixed  (items were 
  1181.       rejected until the user read an item )
  1182.     + Added support for pipe based programs to accept feeds directly from dnews.
  1183.             site prog1
  1184.             groups local.*
  1185.             type program
  1186.             prog_name \dnews\darchiv
  1187.             prog_args \dnews\darchiv.log
  1188.  
  1189.       When items arrive a pipe will be opened to the darchiv program, which
  1190.       must read articles from stdin and do something with them.  The articles
  1191.       are sent in the following format:
  1192.  
  1193.         ARTICLE group:item_number <messageid>
  1194.         (Actual header and body of article)
  1195.         .  (single full stop is end of article) 
  1196.         ARTICLE group:item_number <messageid>
  1197.         (Actual header and body of article)
  1198.         .  (single full stop is end of article) 
  1199.  
  1200.       A sample 'c' program is provided in this file to assist you
  1201.       in writing or modifying existing software.
  1202.  
  1203.     + Tellnews killitem (modified to show if it succeeds)
  1204.     + expire_minutes, bug fixed
  1205.     + Decreased group_write to 10 minute intervals
  1206.     + Improved output of chan[] status lines. e.g.
  1207.       Chan[0:72] B o=0 in=54/s out=2788/s 161.29.2.1 161.29.2.1 C_CMD
  1208.        B     The channel is busy processing a command
  1209.        o=0  No bytes are waiting to be sent
  1210.        in=54/s The channel has been reading at about 54 characters / second
  1211.        out=2788/s The channel is writing at about 2788 per second.      
  1212.     + LOG_AGAIN true,  Creates second log file using unxi fflush() that 
  1213.       never closes (purely for debugging use)
  1214.     + Fixed tellnews log command if log file is empty
  1215.     + Added channel closing logic for outgoing channels.
  1216.     + Mail messages will now be sent even if the suck queue is paused.
  1217.     + Added log_inline (default true, item ok messages in log file)
  1218.     + Added log_nntp (default true, nntp commands in log file)
  1219.     + Tellnews status feed[] now shows the size of the waiting feed file.
  1220.     + ADDEd dnews.conf  
  1221.         org Your Company Name
  1222.     + Added dnews.conf  
  1223.         org_replace true  (forces your organization name on all posts)
  1224.     + Added tellnews command   reject <messageid> 
  1225.       which will somtimes be useful in unblocking blocked feeds.
  1226.     + Increased max_chan to 800, this may allow up to 800 concurrent sessions
  1227.       on a machine with enough RAM etc...
  1228.     + Added output bandwidth limiting.  MAX_OUT 10000     
  1229.       Controls bytes/second per channel
  1230.       A value of between 2000 and 30000 is sensible.   (3000 would limit
  1231.       connections to 'modem speed')
  1232.     + Changed mail processing so messages are sent immediately
  1233.     + Made suck automatically fix upto counters if they are too high.
  1234.     + If posting feed fails to connect, it shouldn't retry straight away, this
  1235.       should allow the suck'ing to continue from an alternate host.
  1236.     + Dnewsweb: Now requires subject header's for post
  1237.     + Shotgun posting
  1238.       It is now possible to 'shotgun post' using the 'posting' mechanism
  1239.       as it will send to ALL matching feeds in newsfeeds.conf.
  1240.     + Routing messages into a posting feed, Set 
  1241.           post_route true
  1242.       and then incoming 'ihave' messages will be routed to outgoing
  1243.       posting feeds.  Do this at your own risk, it is somtimes justified,
  1244.       for example if you have a BBS running 10 groups attached to your
  1245.       dnews server then it may need to send into your machine via IHAVE and
  1246.       you need to 'route' the messages upstream.
  1247.     + DNEWS now responds correctly to cancel messages, it previously 
  1248.       gave a 'rejection' status if the message did not exist locally, although
  1249.       reasonable this is not 'normal' behaviour so we have changed it to
  1250.       match other news servers.  
  1251.     + DNEWSMAN upgraded to allow all the new feeding options
  1252.     + Minor changes to sucking logic
  1253.     + Added to dnews.conf pident authentication 
  1254.           pident true
  1255.       Which if tells dnews to attempt to verify a 'username' for every
  1256.       connected session.  (This is only meaningful on unix systems where
  1257.       the 'ip address' alone does not identify the user) If successful then
  1258.       the users name is added to any message that they post.
  1259.         + Fixed bug with nntp_feeder being undefined causing lockups.
  1260.     + Fixed bug if expire encounters history line over 8K long.  
  1261.     + Added dnews.conf parameter
  1262.         suck_uucp c:\uucp\*.bag
  1263.       This replaces the dposter service for reading in uucp feeds, it 
  1264.       will read in messages a LOT faster than the dposter service could.
  1265.     + New command tellnews disconnect n, where n is the channel number
  1266.       shown in tellnews status.    
  1267.     + Fixed bug with solaris closing channels for no reason.
  1268.     + Fixed intermittent bug in expire if usage was over 89%  
  1269. 2.6q
  1270.     + Patch for dnewsweb for BSDI and OSF
  1271.     + Added dnewsweb.ini setting
  1272.         cgi_path dnewsweb
  1273.     This parameter is needed with some CGI wrapper programs
  1274.     which fail to pass the correct path thru.  The above
  1275.     example will usually fix it.
  1276.     + Added code to deal with buggy select call in solaris
  1277. 2.6o    
  1278.     + Fixed xmit to mailing list gateway, it was not sending once it
  1279.     got an error.
  1280.     + Reduced number of open files in OS2, their is a limit of 8 for some
  1281.     unknown reason in the watcom C library.
  1282. 2.6n    
  1283.     + Minor mod to db code re expire processing.
  1284.     + string compress fix for non nt versions
  1285.     + built new OS2 version, dposter should work now.
  1286. 2.6m
  1287.     + Forced addition of posting host header.
  1288.     + Increased timeout from 26 minutes to 1 hour if history.dat is locked
  1289.     (for example by a slow backup process)
  1290.     + Fixed a bug in the refeed command.
  1291. 2.6k         
  1292.     + Fix for tellnews group_merge command, the groups in the active.add
  1293.     file were not being added to the active.times file. 
  1294.     + Fixed bug in email confirmations and reports 
  1295.     + Fixed refeed command so it runs without stopping dnews
  1296.     + Added tellnews log [nnn] to show the last few lines of the log file.
  1297. 2.6j
  1298.     + NOTE: you must delete *.fts before starting this new FTS system if
  1299.     you were testing the previous beta version of FTS. (full text searching)
  1300.     + FTS system re-written to improve performance. Warning it still uses
  1301.     a LOT of memory, figure in 20MB's if you want to index everything.
  1302.     + Fixed bug in the xmit restart after crash code.
  1303. 2.6i
  1304.     + If you create a file post.add in the config directory
  1305.     it will be appended to all local posts (use at your own 
  1306.     risk of attack from free thinking users :-)
  1307.     + Reduced memory use on NT.
  1308.     + Fixed bug with sending articles out via combined ihave/suck feed.
  1309. 2.6h    
  1310.     + Fixed response codes from tellnews, always end in 281 now.
  1311.     + Fixed bug in FTS which could cause a crash (only if you were
  1312.     using fts)
  1313.     + Improved performance of cancel messages (by a large factor)
  1314.     + tellnews killgroup modified to always delete groups even if they are
  1315.     not empty, the files are still left in the spool directory, you can
  1316.     remove them by hand.  This command, and deleting spool files, 
  1317.     should only be used with extreme caution.
  1318. 2.6g
  1319.     + Made the fts-xmit process work much faster with
  1320.     binary articles.
  1321. 2.6f    
  1322.     + Fixed bug in drobot which was loosing the last 2 lines of messages.
  1323.     + Added tellnews command      tellnews reload_fts to re-read the fts
  1324.     database.
  1325.     + Fixed bug in processing feeds which caused xmit to miss an 
  1326.       occasional article
  1327.     + (NT) Increased connection queue length and process it faster to 
  1328.     deal with connection refused messages.
  1329.     + Added config setting,  expire_delay 0,  this can be used to tune the
  1330.     speed the expire runs at.  The default is 0, you might try 1 or 2 to
  1331.     make the expire impact less.
  1332. 2.6e    
  1333.     + Fixed bug in FTS database.
  1334.     + Fixed stats_in display for multiple feeds from the same machine.
  1335.     + Fixed getold so it will not set upto values negative.
  1336. 2.6d (28-Aug-1996)
  1337.     + Fixed problem with expire taking way too long on heavily loaded
  1338.     servers.  
  1339.     Note: the stats_in figure is not accurate if you have more than
  1340.     one simultaneous incoming feed from the same site.
  1341. 2.6c (27-Aug-1996)
  1342.     + Fixed bug in streaming suck option.
  1343. 2.6b (26-Aug-1996)
  1344.     + Added streaming option to sucking feed, to enable it add to dnews.conf
  1345.         suck_stream true
  1346.     This can triple the sucking speed or better on some systems.
  1347. 2.6a (Beta release, 25-Aug-96)
  1348.     Summary of major new featres since 2.5i
  1349.         Full Text Searching added
  1350.         DNEWSWEB now automatically finds and shows images in messages
  1351.         DNEWSWEB improved to allow all the screens to be tailored.
  1352.         Expire on large systems (4Gig and up) is much faster.
  1353.         Performance improved and cpu use reduced.
  1354.         Misc bugs fixed.
  1355.     + Implemented automatic inline decoding of MIME and UUENCODED
  1356.     pictures in DNEWSWEB
  1357.     + Added 'related items' button to DNEWSWEB
  1358.     + Added header and footer files to DNEWSWEB  see dnewsweb.txt for details
  1359.     + Added 'sort by subject' option to dnewsweb.ini
  1360.     + Added Full Text Searching option to DNEWSWEB, this allows a user to
  1361.     search your entire spool disk (3 gig's) in less than a second.
  1362.     (See notes above on enabling the full text searching engine)
  1363.     + Made tellnews key command friendlier.
  1364.     + Added nntp extension XDSEARCH for Full Text Searching
  1365.     + Added nntp extension XDFIND for header searching within a group
  1366.     + Fixed bug in xmit - mailing list gateway with some mail servers.
  1367.     + Added option to dnews.conf  "nocontrol true" which stops the automatic
  1368.     creation of the newsgroups control and control.cancel
  1369.     + Improved speed of listgroup command by factor of about 10-20. 
  1370.     (this can significantly improve free agent response)
  1371.     + Added pc's ip name/number to path if it is empty in posting feed
  1372.     + Fixed expire bug, if 'purge' was not defined it defaulted to 0
  1373. 2.5l (20-August-1996) 
  1374.     + Changed log file names from  dnews.log2 to dnews2.log, dnews3.log.
  1375.     + Added expire_small setting to dnews.conf, and made it auto config
  1376.     to 20*disk_space, (this is used when more than 90% of your disk
  1377.     is full) Made expire_chunk auto configure better too.
  1378.       These settings are not dynamic, you must restart dnews if you change
  1379.       them.
  1380. 2.5k
  1381.     + Added more regular writing of active file with ihave feeds.
  1382.     + Fixed error in dnews generated line count
  1383.     + Modified select call to deal with bug in NT Sockets which
  1384.     caused 'connection refused' errors during expire runs.
  1385. 2.5j
  1386.     + Patched bugs in NetWare version (with long file names)
  1387.     + Replace badly implemented system library calls strchr() 
  1388.     and strstr() with our own versions which are 100 times faster in 
  1389.     some cases, this gives about a 5%-10% increase in performance 
  1390.     on NT.  (this also fixes the problem with 800K local posts locking up 
  1391.     DNEWS for short periods)
  1392.     + Added tellnews showqueue which will show the entire sucking queue.
  1393. 2.5i
  1394.     + Fixed file handle leak on unix versions.
  1395. 2.5h
  1396.     + Added cached life to showcached output.
  1397.     + Added time stamp to last sucking error in status.
  1398.     + Added AUTH_CASE TRUE, which allows case sensitive user/passwords in 
  1399.     access.conf
  1400.     + Minor changes for OS/2 version.
  1401.     + Fixed error in active.names processing which allowed duplicates.
  1402.     + Added tellnews command FIXNAMES which removes historical duplicates
  1403.     + Max_groups increased to 35000 on Windows NT (from 30000) 
  1404.     (really there aren't this many groups, you should put something
  1405.     more restrictive in your 'me' feed and delete some of the rubbish
  1406.     from active.dat) 
  1407.     + Made output from 'key' command easier to 
  1408.     + Changed some sockets to non blocking, added dnews.conf nntp_block true
  1409.     to restore previous operation in event of any problems.
  1410.     + Found bug causing crash after socket closed error.
  1411. 2.5g
  1412.     + Fixed EAGAIN error's (on solaris and osf) so it will wait 1 second
  1413.     before re-trying.
  1414.     + Fixed intermittent crash at end of expire on NT related
  1415.     to error messages like: "(socket_write error.."
  1416. 2.5f
  1417.     + ADded option to dnews.conf:  no_newnews true, which will disable the
  1418.     newnews command.  You may want to do this to stop bad software
  1419.     clogging your network with stupid requests. (The newnews command
  1420.     can essentiall request your history file, all 100MB of it)    
  1421. 2.5e
  1422.     + Added dnews.conf option
  1423.         expire_bits true
  1424.     If you are running a very big system this can smooth out performance
  1425.     during expire runs.
  1426. 2.5d
  1427.     + Patched 2 more socket_write errors for NT.
  1428.     + Added reporting of pc's name when license key fails.
  1429.     + Changed killitem to accept message id's
  1430.     + Fixed bug with rubbish appearing at bottom of downloading message.
  1431. 2.5c
  1432.     + Increased max length of confirm settings
  1433.     + Patch for occasional crash at end of expire run on NT
  1434. 2.5b
  1435.     + DNEWSWEB, fixed bug in html code so it works with netscape 2.x
  1436.     + Fixed BSDI crash
  1437.     + Added rlimit memory code for BSDI
  1438.     + Made system reject users nicely when close to 300 users connect.
  1439. 2.5a    
  1440.     + Added DLIST nntp extension
  1441.     + Added DNEWSWEB, a cgi program to gateway web pages into your
  1442.     news system for both local and non local groups.  See dnewsweb.txt
  1443.     for instructions on installation.
  1444.     + Fixed channel close on write causing signal on
  1445.     BSDI.
  1446. 2.4q
  1447.     + New groups would sometimes not show a downloading message until
  1448.     dnews was restarted, this is fixed.
  1449.     + More minor changes for MAC version.
  1450.         + Improved 'newnews' and 'newgroups' commands to minimize impact and mem used.
  1451.     + 'newgroups' now obeys 'access.conf' settings so users don't see 'new' groups
  1452.     that they cannot actually read.
  1453.     + Fix for outgoing feeds to ports other than 119
  1454.     + Fixed control panel start/stop of xmit service.
  1455.     + Reduced memory use for xmit.
  1456. 2.4p
  1457.     + Improved memory handling some more, changed string allocation
  1458.     method to avoid block fragmentation and free more strings if 
  1459.     a channel closes.
  1460.     + Reduced over allocation for group data.
  1461.     + Fixed bug with SUNOS strstr() routine, result is DNEWS runs
  1462.     about 5 times faster on SUNOS than it used to.
  1463. 2.4o
  1464.     + Added dnews.conf parameter SUCK_TIMEOUT default is 300, only used
  1465.     when sucking an article and the line is inactive for this period then
  1466.     the channel is closed.  (Default was 180 seconds in previous versions)
  1467. 2.4n    
  1468.     + Another memory leak fix, also fixes a bug with xmit which would
  1469.     have existed since 2.4f
  1470. 2.4m (I don't like the letter l)
  1471.     + Fixed bug with article corruption (usually only occured with
  1472.     large articles on tcp links that go up and down alot)
  1473.     + Header cache is cleared after expire, (stops misleading xhdr output)
  1474.     + Minor code changes for MAC version
  1475. 2.4k (Beta)
  1476.     + Fixed dnewsmanager which was writing large dnews.conf files.  You
  1477.       should start dnewsman and click on the 'write' button to 
  1478.       allow the dnews.conf file to be corrected.  (this may save some memory)
  1479.     + Fixed unix crash (only some flavours) if connections closed 
  1480.       while sending to them. (introduced in 2.4f or maybe 2.4g I think)
  1481.     + Fixed problem with newly added groups not showing 'downloading' message
  1482.     + Fixed crash if list of feed groups is more than 500 char long and 
  1483.       status command is run.
  1484.     + added total bytes to stats_in output
  1485. 2.4j (Beta 19/June/1996)
  1486.     + Fixed processing loop after connections close.
  1487. 2.4i (Beta 18/June/1996)
  1488.     + Fixed bug with large cross posted items introduced in 2.4g
  1489. 2.4h (Beta 17/June/1996)
  1490.     + Fixed memory problem if active.times file gets too large.
  1491.     + Fixed bug with multiple sucking which would have caused dnews to
  1492.     re-check items from secondary sucking sites.  
  1493. 2.4g (Beta 16/June/1996)
  1494.     + Made date of fake article 60 days old to ensure the article does not
  1495.     get sent to other news servers successfully.
  1496.     + Fixed Expire Report crash if less than 40 groups existed.
  1497.     + Fixed bug in date parsing, there was a bug in processing some date
  1498.     formats. This could have caused some valid articles to have been rejected.
  1499.     + Prevented memory build up from the following commands:  
  1500.         xover,xhdr,list,article,body
  1501.     + Made default list output only show groups that the user can read.
  1502.     + Added tellnews command "update_clear" to empty the update queue.
  1503.     + Fixed crash if active.names file was larger than memory.
  1504. 2.4f (Beta 6/June/1996)  
  1505.     + xmit, log file now rotated every 10,000 lines.
  1506.     + Fixed memory usage bug, with some news readers dnews was 
  1507.     allowing more requests than the news reader (or modem link) could
  1508.     handle, this caused a large build up of RAM.
  1509.     + Fixed 2.4e bug with updates only occuring once per hour instead
  1510.     of every 10 minutes.
  1511. 2.4e (5/June/1996)
  1512.     + Increased max connections on Solaris to 300, linux to 200
  1513.       (same applies to other rlimit based unix systems)
  1514.     + Enhanced caching logic so it will now deal with a machine 
  1515.       slurping news by message ID and not get confused about which 
  1516.       'groups' are being read due to cross posting confusion.
  1517.     + cachedonly true also works better
  1518.     + Added tellnews commands
  1519.         tellnews update2,3,4  To update from alternate sucks.
  1520.         tellnews updateone rec.humor.* 3    To update one or a few groups from suck3
  1521.         tellnews showcached [rec.*]    To show all cached news groups.
  1522.     + Expire, timing logic changed so it is 'hourly' based, this ensures
  1523.       it is not missed occasionally.
  1524.     + Added option
  1525.          expire_fast true
  1526.       This makes the expire process run at a high priority, the DEFAULT
  1527.       is now LOW priority, so it doesn't interfere with people 
  1528.       reading news
  1529.     + Added dnews.conf option
  1530.              hide_queue true
  1531.          This hides the names of the entries in the sucking queue, so little
  1532.       old ladies are not offended by naughty group names.
  1533.     + Added dnews.conf setting
  1534.          suck_requeue true
  1535.       This tells it to requeue any groups which are not finished due to the
  1536.       batchn, or batchsize settings.
  1537.     + Added dnews.conf setting
  1538.         groups_at 44 1
  1539.       Triggers a fetch for any new group names from the feeder site once
  1540.       per day (1:44 a.m.).   This will be the default for new 
  1541.       installations, for old installations you may want to add this line.
  1542.     + Made 'getgroups' run as a background task so it doesn't impact on
  1543.       performance.
  1544.         + Made xover and xhdr run without blocking other nntp sessions, and
  1545.       smoothed out response.
  1546.     + Added xover cache, default size is 3000 (which will use about 600k)
  1547.       If you have 32MB I would suggest increasing this to about 10000
  1548.       If you have More than 32MB, try about 20000
  1549.       In dnews.conf add:
  1550.           xover_cache 10000
  1551.       At the same time you may want to reduce HEAD_CACHE to about 200 if 
  1552.       your are short of memory as the xover cache is much more efficient 
  1553.       and uses less memory. 
  1554.     + Added tellnews commands
  1555.             tellnews getgroups 2
  1556.       Which will get new groups from 'suck2' automatically.
  1557.       (usually run this once when adding a second sucking feed like
  1558.        the microsoft news groups, warning, it will add all groups
  1559.        that the other server offers, ignoring the 'suck2' group
  1560.        wildcard. (but it does obey the 'me' wild card in newsfeeds.conf))
  1561.     + Fixed bug with multiple reports being sent each night.
  1562. 2.4d (19-5-96)
  1563.     + Fixed crashing bug for sites not doing any sucking (introduced
  1564.     in version 2.4a) 
  1565. 2.4c
  1566.     + Fixed bug in sucking different groups from multiple sites
  1567. 2.4b
  1568.     + Digital Unix bug fix in history memory allocation
  1569.     + Changed default for nntp_slow to FALSE
  1570.     + Added code to correct item start count for a group in the event of
  1571.     files dissappearing.
  1572.     + Made outgoing posting feed work with more than one posting feed, each local
  1573.     post is checked to see which 'posting' feed it should go to.
  1574.     (by matching the 'groups' in newsfeeds.conf)
  1575. 2.4a
  1576.     + Multiple sucking feeds modified, you can now suck one group from
  1577.     several sites.  You MUST change your config file if you are 
  1578.     sucking from more than one site!!!
  1579.     + active.dat file now has 3 extra values, (the end points for the
  1580.     additional sucking feeds)
  1581.         + The UPDATE_GROUPS1,2,3 dnews.conf parameter is now obsolete.
  1582.         + Here is an example setup for taking alt groups from two sites and
  1583.         microsoft groups as well.
  1584.         
  1585.         nntp_feeder main.feeder.site *,!microsoft.*
  1586.         nntp_suck2 alternate.feeder !*,alt.*,!microsoft.*
  1587.         nntp_suck3 msnews.microsoft.com microsoft.*
  1588.  
  1589.         update_at *5 *        #  Get  main groups every 10 minutes
  1590.         update_at2 20 3       # Get missing articles once a day 
  1591.         update_at3 40 9,12   # Get Micrsoft articles at 9:40 and 12:40
  1592.  
  1593.     In newsfeeds.conf you would have
  1594.                site me 
  1595.                   groups *
  1596.         site $nntp_feeder
  1597.             groups *,!microsoft.*
  1598.             builtin
  1599.             posting
  1600.         site msnews.microsoft.com
  1601.             groups !*,microsoft.*
  1602.             builtin
  1603.             posting
  1604.         ...
  1605.  
  1606.     Please don't update every 10 minutes from microsoft, as they could
  1607.     easily get over loaded :-)
  1608.     
  1609.     + Minor change to processing of LIST command which should improve
  1610.     speed if there are lots of deleted groups.
  1611.     
  1612. 2.3p
  1613.     + Fixed behaviour of built in feed for 'duplicate' errors, BUT, this
  1614.     is generally a sign that your EXCLUDE parameter is wrong and should
  1615.     be fixed.
  1616.     + Added dnews.conf setting 'replicate true' which tells dnews to 
  1617.     use the same item numbers as the host it is fetching items from, you
  1618.     should NEVER set this parameter on an already running system, it's purpose
  1619.     is for setting up MIRROR news servers.
  1620.     Both of these settings should be used together:
  1621.              replicate true
  1622.          postonly true
  1623.     And your feed on each of the mirror news servers should be defined as 
  1624.             site $NNTP_FEEDER
  1625.              groups *
  1626.              builtin
  1627.              posting
  1628.     
  1629. 2.3o (12/5/96)
  1630.     + Fixed bug with sucking from multiple sites, it was intermittently
  1631.     sucking groups from the wrong site.        
  1632.     + Added MAX_SPEED setting, this limits the speed of incoming
  1633.     connections in bytes/second.  Useful to smooth out peformance
  1634.     and limit the impact on a wide area line: Here's a typical setting.
  1635.            max_speed 10000 
  1636.     + Added CANCEL_ANYONE true,  enables all cancel messages even
  1637.     if they are not from the original poster
  1638.     + Added CANCEL_USERS me@here, only allows cancel messages from you.
  1639.     + Added LIST_READONLY true to dnews.conf, this stops dnews from
  1640.     reporting groups to a user if the user is not able to read them.
  1641.     (due to access.conf settings)
  1642.     + Added config parameters
  1643.         SUCK_BATCHN 100
  1644.         SUCK_BATCHSIZE 3000000
  1645.     These limit the number and total size of 
  1646.     items to suck from one group at one go.
  1647.     + Fixed config processing which could cause
  1648.     errors with blank parameters.
  1649.     + Made rmgroup/killgroup work for mixed case groups.
  1650.     + Added 'n groups deleted' to output from rmgroup/killgroup
  1651.     + Modified buffering of output to improve compatibility with faulty
  1652.     news reader software. 
  1653. 2.3n (5/5/96)
  1654.     + Increased connection limit on NT from 128 to 300
  1655. 2.3m (3/5/96)
  1656.     + Added config SEND_AT and SEND_LATER
  1657.         SEND_AT *5 *        Sends mail and builtin feeds every 10 minutes
  1658.         SEND_LATER TRUE     Stops dnews from trying to send immediately a post is sent
  1659.     + Fixed netscape/freeagent (old version)/dnews bug where messages 
  1660.     posted with bad headers gave 'no such newsgroup' errors when the
  1661.     user tried to read them.
  1662.     + Fixed bug with dposter processing large messages, where dposter
  1663.     would somtimes lock up. (probably only on NT)  
  1664.     + Fixed scroll bars on Dnews Manager status windows (yay!)
  1665.     + Registration codes changed, this should not affect any registered
  1666.     users, however, if you have a problem please contact netwin@world.std.com
  1667.     and we will provide you with a new registration key.  
  1668. 2.3l (19/4/96)
  1669.     + Fixes bug with cancel processing
  1670.     + Fixed bug with Netscape access using usernames and passwords
  1671.         It is important to have access.conf lines in the correct order
  1672.         the following example which used to work will no longer work:
  1673.         
  1674.                *:logoff:::*
  1675.                *.my.domain:read,post:::*
  1676.                *:read,post:joe:joepassword:*
  1677.  
  1678.          This is because the username line will be matched in anticipation
  1679.          of the user/password info being sent.  So these lines should
  1680.          now appear ABOVE wildcard matching lines, e.g.:
  1681.  
  1682.                *:logoff:::*
  1683.                *:read,post:joe:joepassword:*
  1684.                *.my.domain:read,post:::*
  1685.  
  1686.         So the logic is now: If he is in MY domain, he can read
  1687.         and post, but if he isn't in MY DOMAIN then he can connect
  1688.         but cannot do anything until I see a user/password combination.
  1689.  
  1690. 2.3k
  1691.     + Fixed bug with not sending AUTHINFO when posting upstream.
  1692. 2.3j
  1693.     + Fixed occasional crash if sucking connection closes unexpectedly
  1694.     + Fixed crash if control message tries to create illegal group name.
  1695.     + Corrected format of MAIL TO: messages for confirmations and added Message-ID
  1696. 2.3i
  1697.     + The MOSAIC 2.0 news reader contains a bug, if you MUST use this
  1698.     news reader then in dnews.conf set:
  1699.               nntp_slow true
  1700.           chan_nobuff true
  1701.     Then it should work most of the time until Mosaic fix the bug :-)
  1702.     (this may not work if you use XMIT, I haven't tested it :-)
  1703.     + Fixed bug in xmit if destination site resonded with <msgid>xxx
  1704.       with no 'space' after the right angle bracket.
  1705.     + Fixed bug with Microsoft Internet Explorer 2.x and Downloading message.
  1706.     + Fixed bug with fast history file, so it now works faster
  1707.     + Added stats commands
  1708.            tellnews stats_in      Shows stats in incoming feeds
  1709.            tellnews stats_groups  Shows stats on group usage/size
  1710. 2.3h
  1711.     + Expire crash bug fixed (thanks to Karsten Thygesen)
  1712.     + Added '&' as a valid newsgroup character, e.g. calvin&hobbes
  1713.       However, I can't find any newsreader which will work with an '&' 
  1714.       in a group name so I have my doubts about it.
  1715. 2.3g
  1716.     + Fixed error message bug  (no such file...) repeating in log file.
  1717.     + Fixed caching detection for news readers that read items by 
  1718.     message ID (e.g. netscape 1.x)
  1719.     + Fixed bug in xmit causing PANIC errors and crashes. (I think :-)
  1720. 2.3f 
  1721.     + Compile warnings fixed, thanks to Karsten Thygesen
  1722.     + Speeded up history file access by adding match code. (this will
  1723.     help large sites taking full feeds)
  1724.     + Support for UUCP now provided, see the sections above titled:
  1725.         Setting up a UUCP feed out of DNEWS
  1726.         Setting up a UUCP feed into DNEWS
  1727.     + 201, posting not allowed, now accepted by xmit as a valid return code.
  1728.     + Fixed NT crash when socket closed with unusual error message. (again)
  1729. 2.3e (21/Feb/96)
  1730.     + On Windows 95 start and stop buttons now work from DNEWS Manager
  1731.     + History lookup in cache (so new posts can always be found)
  1732.     + Group cached life is not decreased when it is read, only increased.
  1733.     + Cancel messages from Freeagent are now obeyed despite their dubious format.
  1734.     + Added 'logoff' setting for access.conf, use this to deny access.
  1735.     + Added caching for DNS lookups and reverse lookups.
  1736.     + Added dnews.conf  NNTP_LOGOFF setting which will be sent to connections
  1737.     which do not gain access thru access.conf. The default string is:
  1738.           nntp_logoff You have no permission to talk
  1739.     + InstallShield now checks for 3mb of space on 
  1740.         %temp% disk, system disk and spool disk.             
  1741.     + Fixed NT crash when socket closed with unusual error message
  1742. 2.3d (11/Feb/96)
  1743.     + Default feed fixed for builtin feeds which aren't sucks.
  1744.     + Increased line length for access.conf and expire.conf
  1745.     + Changed several strcpy's to ncpy's 
  1746.     + If history fails to open it will retry
  1747. 2.3c (7/Feb/96)
  1748.     + Oops, bug introduced in 2.2g which caused crash during startup
  1749.     if nntp_feeder was not defined.
  1750.     + InstallShield now used for installations (thanks to Danny Mayer)
  1751.     + DNEWS Manager GUI released (beta)
  1752. 2.3b
  1753.         + Fixed bug with long headers being messed up from some news servers
  1754. 2.3a
  1755.         + Released
  1756. 2.2g
  1757.     + Added to dnews.conf, for updating some groups at more frequent times
  1758.               update_groups1,2,3  interesting.groups.* *5 *
  1759.     + For sucking groups from other news servers.
  1760.           nntp_suck2,3,4 site.name local.* [username password]        
  1761. 2.2f (30/1/96) 
  1762.     + Cleaned up nntp error message.
  1763.     + Fix access.conf problem with read and post mix up.
  1764. 2.2e 
  1765.     + Fixed bug in database which caused idx files to become corrupt on
  1766.       occasion.
  1767.     + Made open's non blocking, you can reverse this using OPEN_BLOCK TRUE
  1768.       in dnews.conf
  1769. 2.2d (20-Jan-1996)
  1770.       + Put exit handler back into unix version. (removed during debugging)
  1771. 2.2c (19-Jan-1996) 
  1772.     + Improved handling of corrupt database files which could cause crahes
  1773.     in some circumstances.
  1774. 2.2a (15-Jan-1996)
  1775.      + Made log files rotate every 100,000 lines by default (debug_rotate 100000)
  1776.     + Made expire higher priority than sucking news items.
  1777.  
  1778. 2.1v (13-Jan-1996)
  1779.      + Fixed key problem for MIPS-NT
  1780.     + Fixed database problem with corrupt files causing problems, added
  1781.     config parameter UPGRADE TRUE which you should set if you are upgrading
  1782.     from dnews version 1.x to 2.x
  1783. 2.1u (12-Jan-1996)
  1784.     + Added tellnews undelete wildcard,  this command will mark deleted groups
  1785.     as normal again.
  1786.     + The ME feed rule is not obeyed for crossposts if you have coppied an
  1787.     active file from another machine, you need to type in:
  1788.              tellnews matchfeed
  1789.     to prevent cross posts from appearing in groups that are not in your 
  1790.     me feed.  If you change the 'me' feed and want to 'add in' groups which
  1791.     were previously deleted you may need to do something like
  1792.               tellnews undeleted *binary*
  1793.           tellnews matchfeed
  1794.     + Fixed bug involving file handles.
  1795.     + Fixed problem with entering license key on expired systems
  1796. 2.1t (5-Jan-1996) 
  1797.         + Fixed minor bug in vms version, crashed if group names exceeded 80 chars
  1798.     + Added command:  tellnews group_merge,  this adds any groups in a file
  1799.     called active.add to the active.dat file.  Use this to merge in new groups
  1800.     from another server.
  1801. 2.1s (3-Jan-1996) 
  1802.     + Fixed bug with posting multi part items with 'posting' feed.
  1803.     (actually the return status was being sent twice which was confusing
  1804.     the news readers)  
  1805. 2.1r    
  1806.     + Fixed bug with ihave feed of items larger than 1MB causing 10 minute
  1807.     delay in feed.
  1808. 2.1q    
  1809.     + Fixed crash if .itm file is badly corrupt. (added speed stats)
  1810. 2.1p    
  1811.     + Fixed status code for failed items when recieving a streaming feed.
  1812. 2.1o
  1813.     + Fixed two expire bugs, one if the history file contains only one line
  1814.     then dnews crashed, another if every single line was expired, then 
  1815.     dnews crashed.
  1816.     + email confirm now allows a list of email domains, e.g.
  1817.               confirm  *.newyork.com,*.la.com
  1818.  
  1819. 2.1m (3/12/95)
  1820.       
  1821. 2.1k
  1822.     + added NNTP_SLOW TRUE option to dnews.conf, this stops dnews from
  1823.     sending to a socket unless it is ready for more.  Shouldn't have 
  1824.     any effect, but... :-)   (don't use this, it was just for debugging)
  1825.     + Added NOSTREAM true option to dnews.conf,  this disables incoming
  1826.     streaming
  1827.     + Changed priority of feeds so posts will go out sooner.
  1828. 2.1j    
  1829.     + Fixed one possible file handle leak
  1830.     + Added -mail option to xmit, this allows news groups to be sent to
  1831.     mailing lists, the other half (mailing lists to news groups) will be 
  1832.     implemented shortly,  see the faq section above on setting this up.
  1833.  
  1834. 2.1i (20/11/95)    
  1835.     + Fixed bug, item far too big error keeps repeating after first failure.
  1836. 2.1h    
  1837.     + Modified db_hash which could return a negative number
  1838.     + Made suck and feeds timeout after 5 mins if other ends stops responding.
  1839.     + Fixed minor bug with internal feed which could cause a crash
  1840.     + Fixed return code if connection is refused
  1841.     + Fixed xmit bug
  1842.     + Fixed bug if access is refused and connection is terminated by other end.
  1843. 2.1g
  1844.     + Added config parameter NNTP_BIGREJECT, the default value is 439, you
  1845.     might need to set this to 437 for some incoming feeds. (but very unlikely)
  1846.     (the default will now work with innxmit which is buggy and collapses
  1847.     if you give it the correct response code)
  1848.      + Added uptime to status
  1849.     + Fixed bugs which could cause crashes if an item index file was corrupt.
  1850.     + Added NT translation of filename 'nul' which is not valid on NT.
  1851.     + Fixed bug on Solaris systems with dnews not responding under some
  1852.     conditions. (it would appear to be locked up but still be running fine)
  1853. 2.1f (internal release mainly) 
  1854.     + Improved logging of file open/close
  1855. 2.1e (4/11/1995) 
  1856.     + Fixed lib_strdate, which was producing bad time stamps
  1857.     + Fixed posting problem with INN servers
  1858.     + Fixed 100% cpu use caused by connections closing after asking for more
  1859.     than 100K of information.  (e.g. list followed by quit)
  1860. 2.1d (4/11/1995) 
  1861.     + Fixed addlost bug
  1862. 2.1c (2/11/1995) 
  1863.     + Changes to memory allocation for NT.
  1864.      + Now deals with & in news group names on NT.
  1865. 2.1b (1/11/1995)
  1866.     + Fixed crash if NULL item is sent (should never happen anyway but 
  1867.     some news feeders do it rarely)
  1868. 2.1a (31/10/1995)
  1869.         + Full release of version 2.x
  1870. 2.0 Beta-5
  1871.     + Added dnews.conf paramter, open_retry, it defaults to 60 minutes.
  1872.     This is how long dnews should wait before re-trying to open a channel
  1873.     to your feeder site if it fails the first time.
  1874.         + upgrade command changed to 'doupgrade' to avoid confusion with 'update'
  1875.     command.  So when you upgrade from any version 1.x copy of dnews to 2.x 
  1876.     you should enter:   TELLNEWS DOUPGRADE
  1877.     You DO NOT need to do this with every upgrade, it is only needed once
  1878.     when you go from 1.x to 2.x
  1879.     + Fixed new feature so it doesn't get a whole list of groups unless 
  1880.     you have more than 300 cached (feature was supposed to work in beta-2) 
  1881. 2.0 Beta-4
  1882.     + Fixed expire so that if it is above 94% when it starts it will recheck
  1883.     the free disk space after deleting the first 10,000 items.
  1884.     + Fixed nntp command list newsgroups.
  1885.     + Modified memory allocation again :-)
  1886. 2.0 Beta-3  (26-Oct-1995)
  1887.      + Fixed bug in xover introduced in Beta-2
  1888. 2.0 Beta-2  (24-Oct-1995)
  1889.     + dnews.conf item_max defines how large an item dnews can process, if an
  1890.     item larger than this is recieved it will be rejected.  Increasing this 
  1891.     can waste memory.  The default is 1000000 (1mb)
  1892.     Note: in newsfeeds.conf there is also a setting for rejecting large items
  1893.     per feed rather than globally.
  1894.     + String allocation routines re-written to allow memory compaction on 
  1895.     the fly, also minor changes to indenting style to solve all other 
  1896.     memory problems.
  1897.     + Update made more intelligent so it doesn't get a list of newsgroups 
  1898.     every 10 minutes unless you have more than 300 news groups cached.
  1899.     + New command,  tellnews getgroups, which will force an update of group
  1900.     names which won't happen automatically if you are using less than 300
  1901.     cached groups :-)
  1902.  
  1903. 2.0 Beta-1  (22-Oct-1995)
  1904.         NOTE:  After installing type in:
  1905.              tellnews upgrade   (now DOUPGRADE instead)
  1906.           + New database Format, note the database will be upgraded 'on the fly'
  1907.     however, it is recommended you do a TELLNEWS UPGRADE to make sure
  1908.     the entire database is upgraded, and performance will not be good
  1909.     while this is happenning, so try and schedule it for off-peak time.
  1910.     + File IO improved to handle much heavier loads and improve
  1911.     xover performance when groups are heavily cross posted.
  1912.     + The following NNTP commands all speeded up by about a 
  1913.     factor of 10,  NEWNEWS, NEWGROUPS, GROUP.
  1914.     + History rebuild fixed (tellnews addlost)
  1915.     + XMIT exiting when it can't connect fixed.
  1916.     + Log files flushed more completely
  1917.     + Timeout of idle channels now settable in minutes (TIMEOUT NN) 
  1918.      in dnews.conf
  1919.     + Two new settings to clearly specify how cached 
  1920.      groups should be dealt with:
  1921.       cachedonly true  (don't allow items into non cached groups)
  1922.       cachedall true   (pretend all groups are cached)
  1923.     The first one can be used to emulate a sucking feed when
  1924.      items are being sent in with IHAVE.
  1925.     The second one is for FULL feeds to prevent any 'downloading'
  1926.     messages appearing.
  1927.     + Case is now preserved in group names, I don't like mixed case 
  1928.     group names but they exist so DNEWS will now deal with them, 
  1929.     however, it's matching is non case sensitive, (like NT file names).
  1930.     + New command TELLNEWS FIXRANGE which rechecks the 
  1931.     number of items in each group.  (this doesn't expand the range of numbers
  1932.     use addlost to do that)
  1933.     + Modified memory allocation routines to avoid common operating system
  1934.     bugs, resulting in much lower memory use.
  1935.     + Fixed bug with running out of file handles if the feed site isn't 
  1936.     responding.
  1937.     + Changed log files.  There are now three,  dnews.log (all log messages)
  1938.     dnews.in (Log of incoming articles) dnews.out (log of outgoing articles
  1939.     and email)  The loglvl affects what gets stored in dnews.log
  1940.     debug_rotate can be set to prevent log files from getting too big.
  1941.     + TELLNEWS ROTATE command added to rotate log files.
  1942.     This also happens once per night automatically.  Files are renamed:
  1943.           dnews.log -> .log2 -> .log3 -> .log4 -> (deleted)
  1944.     + New dnews.conf setting,  ACTIVE_STATIC TRUE, will stop new groups from
  1945.     being created by the sucking feed.  (good if you don't want 20,000 
  1946.     empty news groups slowing things down.
  1947.     + Newnews command fixed, it was not responding with the correct status.
  1948.     + Config parameter.  POSTONLY TRUE,  which stops items from being posted
  1949.     locally until they come 'back' from the feeder.  (this is the way it
  1950.     used to work until version 2.0)  The advantage of the new default is that
  1951.     you can have local groups and they will work even with a posting feed.
  1952.     + If WinVN crashes every time you try and read a newsgroup then type in.
  1953.         tellnews fixrange
  1954.        WinVN gets upset if DNEWS reports an incorrect number of items in a 
  1955.     group and DNEWS can get this number wrong in rare circumstances usually
  1956.     just after upgrading.
  1957.     + Maximum number of newsgroups increased from 20,000 to 35,000.  
  1958.     Note: Just because DNEWS can handle it, doesn't mean the pc news readers
  1959.     can, if you look in one of these large active files you will find an
  1960.     awful lot of crap, I suggest you save memory and bandwidth by removing this
  1961.     rubbish. 
  1962.  
  1963. 1.1g (30-Sep-1995)
  1964.     + New mailing list for discussion, send to  dnews-request@adam.com.au
  1965.      + Added config setting NODNS this will stop dnews from doing reverse
  1966.       name translations.  If you find your system takes 30 seconds to connect then
  1967.       try this setting, it could be your reverse name translation server 
  1968.       is not working.  This only affects access.conf, you will have to 
  1969.       put 'numbers' in to control access instead of names.
  1970.      + Fixed bug in expire and purgelost.
  1971.     + Added 'TELLNEWS ADDLOST' command, this will restore the history file if 
  1972.       it is deleted.  (You don't need to delete it first unless it is corrupt)
  1973.      + *** Upgrade procedure, 
  1974.       I recommend after upgrading to 1.1g you type in:
  1975.           tellnews purgelost
  1976.       On a system with many gigs of news this may take 24hours to run.
  1977.       (the system will be very slow while this is running)
  1978.       Then use the command:
  1979.             tellnews setused nnn
  1980.       To set the current disk usage correctly (nnn=MB used)
  1981. 1.1f (27-Sep-1995)
  1982.     + Fixed bug with header records containing tabs being returned by
  1983.     xover or xhdr incorrectly.
  1984. 1.1e (26-Sep-1995)
  1985.     + Fixed bug in body command, if body is empty the server crashed.
  1986.     (although this is rare as empty body messages are not accepted
  1987.     it can only happen when the database is corrupt)
  1988.     + Fixed free disk space display on NT
  1989.     + Added reporting on memory allocated
  1990.     + Added LOGDIR_MIN to config files
  1991.     + Added TELLNEWS STATS command.
  1992.     + Fixed History memory usage display
  1993.     + Fixed 'mode reader' command, it had a trailing space and some
  1994.       news servers didn't like that. (thanks to S White for finding this)
  1995.     + Fixed bug with the 'cached' groups, they were not
  1996.       being 'reset' as cached when users read items.  (bug introduced a couple
  1997.       of version back)
  1998. 1.1d (20-Sep-1995)
  1999.     + Fixed expire problem (with deleted groups)
  2000.     + Removed code that prevents ihave incoming when outgoing feed is 
  2001.     posting (but this is still probably a bad idea)
  2002.     + Fixed memory leak in NT version.
  2003. 1.1c (14-Sep-1995)
  2004.     + Fixed remaining memory leaks.
  2005.     + Changes default FEED_READER to TRUE.
  2006. 1.1b (Internal only)
  2007.     + Fixed tellnews command when port is not 119
  2008.     + Fixed bug when expring if no items in system at all.
  2009.     + Added FEED_READER TRUE OR FALSE, to force the 'mode reader' command
  2010.         to be sent, or not sent.
  2011.     + Added maxcross flag for limiting crossposts in newsfeeds.conf
  2012.     + Made major improvements in memory allocation, greatly reducing
  2013.       memory usage.
  2014.     + Added debugging option    DNEWS_ROTATE 1000
  2015.     + Fixed bug if the right/wrong slash is used in dnews.conf on NT
  2016. 1.1a (6-Sep-1995)
  2017.     + Fixed possible bug with very long group names.
  2018. 1.0e (Internal version)
  2019.     + Fixed possible bug with multiple simultaneous incoming ihave feeds
  2020.     + Fixed possible bug with items cross posted to > 200 groups
  2021.     + Fixed possible bug with incoming items corrupting memmory.
  2022.     + Fixed bug with tellnews.pass not being accessible after it runs
  2023.       out of disk space.
  2024.     + Extended newsfeeds exclude command to allow a list of sites
  2025.       e.g.  exclude feeder1.site,feeder2.site
  2026. 1.0d (Internal version)
  2027.     + Fixed NNTP DATE command, required by TRN 
  2028.     + Fixed NNTP responses for list commands for TIN 
  2029.     + Added dnews.conf paramter PORT to run the server on a different port.
  2030.     + Added dnews.conf NNTP_USER, NNTP_PASS user and password for feed site
  2031.     + Fixed bug internal mail sending system (NT & VMS not saying HELO)
  2032.     + Added NNTP extension      list active x.y.z
  2033.     + Added config,  LOGUSE ON, enables reader logging to used.log
  2034.     + Added config, CACHEDONLY ON, stops messages from going into groups
  2035.       that are not cached.  Use this to make an ihave feed become partly
  2036.       dynamic.
  2037. 1.0c (22-Aug-1995)
  2038.     + Made feed and mail queues higher priority than background suck entries.
  2039.     + Fixed major bug in internal feeding code which could loose local
  2040.       posts if the system was under load when it tried to send them.
  2041.     + Fixed possible crash during expire if history file was corrupt.
  2042. 1.0b (20-Aug-1995)
  2043.     + Fixed tellnews reload so it reloads dnews.conf, access.conf
  2044.       and newsfeeds.conf.  Also made expire.conf reload automatically.
  2045.     + Fixed rejection message if nntp access is not permitted.
  2046.     + Fixed display of downloading message for new groups on NT.
  2047.     + Correction made to default access.conf
  2048.     + Updated Documentation
  2049. 1.0a (14-Aug-1995)
  2050.     + Silently reject cancel messages which don't have a message id
  2051.       or that have 'cancel<messageid>' with no spaces.
  2052.     + Added streaming extensions to DNEWS server
  2053.         check <messageID>
  2054.         takethis <messageid>
  2055.         mode stream
  2056.     + New xmit, a hi speed nntp IHAVE feeding program this allows DNEWS to be
  2057.       used on non leaf sites.
  2058.     + dnews_start now takes ownership of (spool) /var/spool/dnews 
  2059.       directory as the correct usercode to run dnews under.
  2060.     + Modified startup scripts to change directory before starting DNEWS
  2061.     + Windows NT version created.
  2062.     + Changed config file processing so it is not TAB sensitive.
  2063.     + Fixed bug with tabs in dnews.conf causing problems.
  2064.     + Log files flushed early on in startup, so you can see if its going.
  2065.     + Startup and generate speeded up, this was causing DNEWS to lockup
  2066.       for periods of up to 60 seconds, now there is virtually no lock up.
  2067.     + Corrected expire.conf, settings for keep and default were mixed up.
  2068.     + Modified control.conf so it doesn't generate as much email.
  2069.     + Group command now shows correct number of articles in a group.
  2070.     + NT changed file names /aux/ into /a_x/ because NTFS does not allow
  2071.        a file called aux (strange system)
  2072. 0.9d  (Wide BETA release 2)
  2073.     + Fixed bug which prevented news groups from being added.
  2074.     + Added missing nocached.body file to distribution.    
  2075. 0.9c  (Wide BETA release)
  2076.     + Socket error's trapped correctly, this was causing the process
  2077.       to dissappear when a connection was badly closed at the other end.
  2078.     + New articles added after an expire run were indexed incorrectly. 
  2079.     + Messages tidied up
  2080.     + Control mail messages now contain "done" or "logged only"
  2081.     + Pause message now contains status information.
  2082.     + Inactive sockets closed even when data still pending on output.
  2083. 0.9b 
  2084.     First ALPHA testing release
  2085. -------------------------------------------------------------------------
  2086.  
  2087.  
  2088. Copyright & Disclaimer
  2089. -------------------------------------------------------------------------
  2090. The software DNEWS is Copyright (C) 1995 NetWin LTD, New Zealand, All 
  2091. rights reserved. The software remains the sole and exclusive property of
  2092. NetWin at all times.
  2093.  
  2094. This software and the accompanying files are sold "as is" and without 
  2095. warranties as to performance of merchantability or any other warranties
  2096. whether expressed or implied.  No warranty of fitness for a particular
  2097. purpose is offered.
  2098. -------------------------------------------------------------------------
  2099.  
  2100. DNEWS is an extremely complex piece of software.  NetWin will make 
  2101. reasonable efforts to solve any reported problems but we must limit 
  2102. our legal liability for obvious reasons.
  2103.  
  2104.