			DNEWS Installation, a brief guide by NetWin World
			-------------------------------------------------

DNEWS is a dynamic news server system, it is not a news reader but rather
it is the server which a news reader reads news from.

DNEWS is not freeware, see license.txt for details.

Index to this document:

(1) DNEWS Feature list
(2) Installation VMS
(3) Installation for UNIX
(4) Installation for Windows NT (& Windows 95)
(5) Installation for NETWARE 
    (see install.os2 for OS2 specific installation instructions)
(6) Installing a full feed
(6b) Example of full feed from UUNET 
(7) Recommended news readers
(8) FAQ and What if it doesn't work
(9) Using other TCPIP stacks on VMS
(10) Mailing lists
(11) Notes on compiling and porting DNEWS (unix)
(12) Updates, List of bugs fixed for each version.
     See the FAQ section for "Creating local news groups"
     See the FAQ section for "Gatewaying Mailing lists"


-----------------------------------------------------------------------------
(1) DNEWS Feature list:
	Dynamic sucking feed.
		A sucking feed may use as little as 10% of the normal
		disk space and network bandwidth.
		By only getting news items that people usually read 
		very large savings are possible particularly for small
		sites & workgroups.  A hundred users can be supported
		on 100 MB depending on their reading habbits!
		I run a single user server on my NT as a background
		service, it's using less than 5MB.
	Flexible expire settings 
		By allowing expiration by 'number of items' low volume groups
		become much more useful.  Also by allowing settings 
		which change with disk space the system is much more
		stable to large influxes of news.
	Flexible access restrictions
		Reading and Posting access can be given separately to
		to different users and selections of news groups.
	Binarys available for common platforms
		On many platforms you do not need to build the binary
		yourself, e.g. VMS, (VAX & ALPHA), Solaris, Linux, Windows NT
	Email confirmation of posts
		DNEWS can be configured to send email confirmations as it
		sends items up to a main news server.  This gives users 
		a clear record of a posted item and it's successful 
		transfer into the 'net'.
	Items stored in a database
		Items are stored in a database which puts items together
		in blocks of 100.  This saves directory entries, inodes,
		and the empty space usually wasted due to blocking factors.
		Also file open and closes are minimized, this is essential
		on systems where this is a 'costly' operation, e.g. VMS.
	Compiling and porting relatively easy
		DNEWS was designed to be portable from the ground up, it 
		does not rely on obscure UNIX features.
	Installation easy, totally configurable without recompiling
		DNEWS can be configured without recompiling and all
		the configuration scripts have been simplified where 
		possible.
	Documentated
		A user manual is available.
	Supported
		EMAIL support is available for help with installation
		and management.
	Speed
		On comparable systems DNEWS typically out performs other
		news software, (even the likes of CNEWS and INN in some
		instances), other VMS news servers don't even come close.  
		This is partly because DNEWS uses a more advanced database
		to store the news items.  The difference is also very 
		noteable on smaller systems (e.g. Linux)
	XOVER implemented in software
		No xover database is created, the normal DNEWS database
		is fast enough to create this information 'on the fly'
	Streaming support
		Streaming NNTP extensions are built in.
	Strictly limited machine impact due to single threaded nature.
		DNEWS runs on a single process, this speeds up connect
		time as a process does not need to be created, and it
		self-limits the impact on the system.
Limitations:
	DNEWS does not store items in the same file structure as used by
	INN and CNEWS, so old software which accesses these files directly
	will not work.  	
-----------------------------------------------------------------------------
These instructions describe how to setup a sucking news feed, see the manual
for setting up a traditional feeding mechanism.
-----------------------------------------------------------------------------
(2) Installation VMS: (see below for UNIX and Windows NT)
	1) FTP the files from ftp.std.com ftp/vendors/netwin/dnews...
		extract.com	(ascii)
		install.txt	(ascii)
		dnews.bck_z	(binary)
	2) @extract  	Extracts the required files from the saveset
	3) Modify REGISTER_USER.COM to register a user DNEWS$SERVER 
	4) @REGISTER_USER.COM
	5) Modify DNEWS_START.COM to define the disks news should use.
	   (don't run it yet!)
	6) $ edit sys$manager:systartup_v5.com    Add a call to dnews_start.com
	7) $ edit sys$sylogin:           Add the symbol, see dnews_login.com
	8) $ edit dnews_top:dnews.conf    
		Modify the file DNEWS.CONF to describe your
  		system by defining the following symbols
			SYMBOL		EXAMPLE
			manager		system  	
					(email address or user@site.com)
			nntp_feeder	news.feeder.site
			myname		news.this.place
			timezone	nzst
					(new zealand standard time)
			diskspace	100
					(space available in megabytes)
			mail		smtp
					(the foreign email protocol name)
			confirm		*.this.place  Enable email confirmation
					when item is passed up to a feeder site.
	9) If your news feeder stamps news items with a name other than
	    the ip name you specified above, then you will need to add an
	    exclude field to the file newsfeeds.conf to prevent your system
	    echoing all news back to the feeder!!!
	    (check the path header of an item to see what it is doing)
	10) $ edit access.conf          Grant an ip range access to your users.
					by name or number, e.g.
			*.this.place:read,post:::*
			161.23.4.*:read,post:::*
     
	11) $ @dnews_start	       Start the system
 	    $ @dnews_login 		(to define the symbol tellnews)
	 The system will now try and get a list of news groups from your
  	 feeder site, while this is happenning it will not respond, but you
	 can check it's progress by:
	    $ type dnews.log
	 When it has finished (give it 10-20 minutes), you can then try:
	    $ tellnews status

	12) Go to a PC and try out your news reader software pointed 
	    at the new system.
-----------------------------------------------------------------------------
(3) Installation for UNIX:  (Sucking feed)  See below for Windows NT
	1) FTP the files from ftp.std.com ftp/vendors/netwin/dnews...
		dnews_MACHINE.tar.Z		(binary)
		(e.g. dnews_linux.tar.Z	)
	2) Extract to a temporary directory in your own account
		uncompress dnews_linux.tar
		tar -xvf dnews_linux.tar
	3) EDIT dnews.conf
		Modify the file DNEWS.CONF to describe your
  		system by defining the following symbols
			SYMBOL		EXAMPLE
			manager		system  	
					(email address or user@site.com)
			nntp_feeder	news.feeder.site
			myname		news.this.place
			diskspace	100
					(space available in megabytes)
			df		The path and flags for df
			sendmail	The path and flags for sendmail
			confirm		*.this.place  Enable email confirmation
					when item is passed up to a feeder site.
	4) Edit your system startup script, the name will vary:
		On LINUX /etc/rc.d/rc.local
		Add a line:
			/usr/local/dnews/dnews_start.sh
	5) If your news feeder stamps news items with a name other than
	    the ip name you specified above, then you will need to add an
	    exclude field to the file newsfeeds.conf to prevent your system
	    echoing all news back to the feeder!!!
	    (check the path header of an item to see what it is doing)
	6) Edit access.conf 		Grant an ip range access to your users.
					by name or number, e.g.
			*.this.place:read,post:::*
			161.23.4.*:read,post:::*
	7) If you have changed any of the default directories, then edit
	   all the .sh scripts to reflect the changes.
	8) Run the installation script
		su root   (You need priv to install the files start dnews)
		./install.sh
	9) Start the system
		./dnews_start.sh
	 The system will now try and get a list of news groups from your
  	 feeder site, while this is happenning it will not respond, but you
	 can check it's progress by:
		more dnews.log
	 When it has finished (give it 10-20 minutes), you can then try:
	    	> tellnews status

	10) Go to a PC and try out your news reader software pointed 
	    at the new system.

	LINUX slackware: Comes with a dummy nntp daemon installed, you must remove 
	this so dnews can bind to the socket.  (so it 
	won't even start up)
		edit /etc/inetd.conf
		(comment out the NNTP line)
		kill -HUP <pid of inetd process>

-----------------------------------------------------------------------------
!!! Notes for Windows 95 !!!
  Follow the instructions for Windows NT and mostly it will work
  except for:
      1) Services don't exist, so you have to run dnews from a 
         DOS prompt.  You can put this into your STARTUP group to
         make it start automatically like an NT service.
      2) The DNEWS MANAGER start and stop service buttons won't work.
         You can stop the service by sending the EXIT command, it 
         may give an error when you do this, but check the log and
         it will probably show it has shut down.
      3) NetWin do not recommend the use of Windows 95 as a full
         news server for large numbers of users. Use NT if possible.

---------------------------------------------------------------------
(4) !!! UPGRADING NT!!! 
	Shutdown the server and exit from DNEWS Manager
	Run the self extracting archive
            dnews23c.exe (or whatever version)
        When installation is complete start DNEWS Manager
	from the DNEWS Program Group. And click on 
            'Start Service'

(4) Installation for Windows NT !!! on a new system !!! (Sucking feed) 
	1) FTP the files from ftp.std.com ftp/vendors/netwin/dnews...
		dnews23c.exe (binary transfer)
	2) Run the self extracting archive and installation
           procedure
		dnews23c.exe
        3) Run DNEWS Manager to modify the setup further
           and to start the service
	4) Point your news reader software at your NT and try out your new
	    fast news system.

	5) Join the mailing lists for advice an update information, 
 	and don't forget to register :-)
	        Open DOS Window
	        then type TELLNEWS REGISTER


	If it fails, look in
		type \dnews\dnews.log
	Then check the FAQ file DNEWSFAQ.TXT
	Then send email to us if you think you've found a bug, or to
	the mailing list if you just want advice from other DNEWS 
	managers.
-----------------------------------------------------------------------------
(5) Installation for NETWARE 4.x
WARNING: MEMORY
  DNEWS expects virtual memory, as netware has none you
  have to make sure your system has sufficient REAL memory, 
  for a sucking feed you will need 8MB free, for a full IHAVE 
  feed you will need 16MB of free memory (these are estimates)
WARNING: GROUPS
  This release for NETWARE is limited to 10,000 groups, 
  this is heaps if you take care with the 'ME' setting 
  in feeds.con
WARNING: BETA RELEASE
  This is a beta release, NetWin do not recommend that you
  install this on a mission critical server.  Please report
  any problems you find.
	
	attach myserver
	File, Run, dnewsnw23f.exe  (or whatever the latest version is)
	Answer the configuration questions.
	
	In your autoexec.ncf script add the following lines.
		load dnews
	Load the server by hand.
	 	load dnews
	
	Go to a PC and try out your news reader software pointed 
	at the new system.  On windows 95 you can run the DNEWSMAN 
	configuration utility to setup or modify your configuration.

	Use the command:
		load tellnews status		To see what it's doing
		load tellnews register		To see what it's doing
		load tellnews exit		To shutdown dnews nicely
		load tellnews help		For other commands.

	NEVER shutdown the service with the 'unload' command. Always use
		load tellnews exit
	instead.


-----------------------------------------------------------------------------
(6) Installing a full feed:

In access.conf, give your feed site access to send you ihave messages:
	my.feeder.site.com:ihave:::*
In dnews.conf, comment out the nntp_feeder definition and add a line:
	  cachedall true 
In newsfeeds.conf
	Replace
		site $NNTP_FEEDER
			groups *
			builtin
			posting
	With
		site my.feeder.site
			groups *
			builtin
	And correct the ME feed, the default one does not 
	allow any binary groups in, if you really want a 
	full feed fix this by removing the !*binary*

**** You must get an active file ***
You MUST get a copy of active.dat from your provider, the file is simply
called the 'active' file on INN or CNEWS, you need to FTP the file and copy it
to \dnews\spool\active.dat while the server is NOT running.

Copying important files from an existing system:
	With a sucking system you can do this with the commands:
		tellnews getnames
	The active file will be fetched automatically.  But if you are setting
	up an IHAVE feed so you don't have 'reader' access this WILL NOT WORK, you
	must FTP the active file from your provider if possible, or from
	ftp.std.com /ftp/vendors/netwin/dnews/active.dat_sample and copy it
	to  /dnews/spool/active.dat  (the workarea directory)

	If you are replacing a news system then you want
	the active file from the one you replace, not from your
	feeder site:

	You can safely copy these files:

	active		-> active.dat
	active.times	-> active.times
	newsgroups 	-> active.names  (may be changed in future)
	
	If you copy the active file, you must reset it so that
	it doesn't think it has any items, do this with the command
		tellnews resetall

 	The only way to get the actual news items from an existing system is to
	setup DNEWS on a second system (or on the same system on a different
	PORT) and then suck the entire database via nntp.  Obviously to do this
	you need a lot of free disk space.
	
Renaming a volume (on unix):
	You may wish to rename a current volume /var/spool/news
	to be /var/spool/dnews, to do this:

	cd /var/spool/news
	mkdir OLD
	mv * OLD
	umount /var/spool/news
	emacs /etc/vfstab (or /etc/fstab)
		(change /news into /dnews)
	mount /var/spool/dnews
	
	When you are happy with the new system, or you need the space:

		rm -r /var/spool/dnews/OLD
	

(XMIT (Setting up full feeds)
	This is necessary when you want to send a full feed onto another site.
	If you are a leaf site then you DONT NEED TO DO THIS !!!!!!
	First add entries to your NEWSFEEDS.CONF file, this creates the
	file site_name.feed, then you need to setup a timed job to send those
	items to the other sites using NNTP IHAVE (or streaming extensions)

	You should set all groups as cached, in dnews.conf add  a line:
	         cachedall true
 
XMIT (On unix)
	Add lines to your rc.local procedure, e.g.
		cd /usr/local/dnews
		./xmit send.to.site.name -at "*2" "*"
		./xmit send.other.site.name -at "*7" "*"

XMIT (On Windows NT)
	On windows NT you need to setup each xmit job as a service, to do this
	use the program ADDSVC.EXE which came with the dnews distribution to
	add a service for each outgoing feed, e.g. (see setupsvc.cmd)
		addsvc -add dxmit1 xmit.exe "dxmit1 site.name.edu -at *5 *"
		addsvc -add dxmit2 xmit.exe "dxmit2 site2.name.edu -at *5 *"
	Then from CONTROL PANEL, SERVICES, and start the feeds.

XMIT (On VMS)
	See RUNXMIT.COM

------------------------------------
(6b) Example of full feed from UUNET


-------dnews.conf---------
In  dnews.conf  comment out nntp_feeder by putting a HASH in 
front of the line, and add cachedall true, e.g.
	# nntp_feeder	your.feeder.ohio.edu
	cachedall true

------newsfeeds.conf cut here ----------
	site me
		groups *
	site news.uu.net
		groups *,!local.*
		exclude uunet
	site YOUR.MAIL.GATEWAY
		smtp
------access.conf cut here and change your domain and ipnumbers ------
# Don't let the world connect :-)
*:logoff:::*

# Do let your domain and ip range connect    **** CHANGE THIS BIT ***
*.your.domain:Read,Post:::*
161.232.32.*:read,post:::*

# Do let your news feed from UUNET send you items
news*.uu.net:ihave:::*
-----------------------------------------------------------------------------
(7) Recommended news readers:
	For PC's
		Netscape's built in reader.
		WINVN
		Trumpet (old versions are slow, get a new version)
		Freeagent
	For VMS
		FNEWS

Testing DNEWS or your FEEDER site or your OWN site by hand:
VMS	$ telnet feeder.site /port=119
UNIX	> telnet feeder.site 119
	group comp.os.vms	(select a group)
	head			(display the header)
	body			(display the body)
	next			(next item please)
	help			(show valid commands)
	quit			(exit the connection)
	$ 
	
-----------------------------------------------------------------------------
(8) FAQ and What if it doesn't work:
-----------------------------------------------------------------------------
Index to FAQ section:
	Setting your EXCLUDE parameter correctly
	Posting to a moderated group
	Can't BIND, and tellnews sais "I can't talk to you"
	TELLNEWS fails 
	TELLNEWS gives unusual error message
	TELLNEWS GETOLD * gives a core dump
	Transfer permission denied.
	Creating local news groups:
	What if DNEWS Crashes !!!
	Gatewaying Mailing Lists
	Windows NT operating system bug
	Setting up a UUCP feed out of DNEWS
	Setting up a UUCP feed into DNEWS
        Message aren't going upstream/ 435 Duplicate error

Setting your EXCLUDE parameter correctly:
 	In newsfeeds.conf you must set your exclude parameter to 
	stop DNEWS from sending incoming messages back
	to your feed site.  Lets assume your feed site is 	
	called fastfeed.world.net. You need to find out what it 
	stamps onto news articles, to do this read a news article
	(and show all headers so you can see the PATH header)

	e.g.
	Newsgroups: alt.winsock.trumpet
	Subject: Sportster Si does not seem to work with TRUMPET
	Date: Thu, 26 Oct 1995 22:44:08
	Organization: Personal
	Lines: 8
	Message-ID: <moleski.2.0016BD02@sasknet.sk.ca>
	NNTP-Posting-Host: eagle28.sasknet.sk.ca
	X-Newsreader: Trumpet for Windows [Version 1.0 Rev A]
	Path: fast1.world.net!world.net!news.icix.net!esol.intermedia.com

	Look thru the path, left to right, and find the first or most generic 
	name for your feed site, in this case 'world.net' looks like
	the best name to choose. 

	So here is the entry you should put in newsfeeds.conf, you may
	need the builtin and posting settings as well but that is up to you.

	site fastfeed.world.net
       		groups *
		exclude world.net
		builtin
	
	You may need to delete your .feed and .sending
	files from the spool directory to clear out
	the backlog of articles queued.

Posting to a moderated group
	Note: You can only do this to your own moderated local groups.
	Get the FreeAgent news reader.
        In agent.ini change showallfields to 1, e.g.

		[Message]
		ShowAllFields=1

	Then re-post the article after putting your mail address
	in the approved header using freeagent.


FTP the complete manual in MS word 6 format from:
	ftp.std.com ftp/vendors/netwin/dnews/dnewsdoc.zip

HINT: when reading the log files, it is easy to confuse an error message
from DNEWS with an error message that dnews got while talking to 
your feeding site.   Usually if the error looks like:
   Status {223 transfer permission denied}
then it came from somewhere else, not your system.

Can't BIND, and tellnews sais "I can't talk to you"
	LINUX slackware: Comes with a dummy nntp daemon installed, you must remove 
	this so dnews can bind to the socket.
		edit /etc/inetd.conf
		(comment out the NNTP line)
		kill -HUP <pid of inetd process>
TELLNEWS fails 
	The DNEWS process may take 1-2 minutes to initialize, so wait a bit
	before panicking.

	Check if the process is running
		(linux) ps -axl | grep dnews
		(sunos) ps -ef | grep dnews
		(nt) Look at services in control panel
	
	Check the log files
		more /usr/local/dnews/dnews.log
		(nt) type /dnews/dnews.log	

	If it gets started up with the wrong PID you will get all sorts of
	protection problems,  all the files in
		/var/spool/dnews/...  (including var/spool/dnews)
	must be owned by the same user, normally 'news'
	Also all the files in:
		/var/local/dnews/*
TELLNEWS gives unusual error message
	On vms, if the symbol tellnews is not defined, it will try and run
	telnet instead, this can be confusing.
	On Windows NT if you left the disk name out of the config file and
	you run the tellnews command from a different default disk then
	it won't be able to find all the files it needs to work.
TELLNEWS GETOLD * gives a core dump
	Try 
		tellnews getold "*"
	Need I say more?  This gets me every time too :-)
Transfer permission denied.
	This can come from one of two directions,  DNEWS can give this error
	when a site tries to feed it new items.  

	If you are using a sucking feed then you should stop the
	site that is trying to send to you from sending as DNEWS
	will ask for any items it wants. 

	If you do want to allow incoming IHAVE messages, 
	then add an IHAVE record for this ip address in the 
	ACCESS.CONF file, and also remove the 'POSTING' flag from
	the NEWSFEEDS.CONF file for the ME site.	
	
	The last possibility is that this error is coming 
	from your feeding site, in which case that system manager 
	has to fix the problem for you.
Creating local news groups:
	If you wish to have local groups on your server, that are not on the
	server you 'suck' from, then you should remove the 'POSTING' flag
	from the feed to your feeder site (in newsfeeds.conf).  But 
	only if you can get ihave or transfer permission to send 
	articles up stream rather than simple 'posting' access.

	You can add groups with the TELLNEWS NEWGROUP command, e.g.
		tellnews newgroup here.chat y myname Local group for chatting
		
		here.chat = name of group
		y = Normal group (m = moderated)
		myname = Just a record of who created the group (one word)
		Local group for chatting = description for active.names file. 

	To stop your local group from being sent up stream, you would
	change the line in your newsfeeds.conf file:
		groups *,!here.chat,!here.secret.*
	NOTE: KNOWN BUG, with version 2.0 items will still be sent upstream if 
	you have left the 'POSTING' keyword in your feed.  This will probably
	be fixed in a future version

Giving DNEWS access to an INN news system.
	1) Give normal NEWS READER access to the dnews machine by adding a 
	line to your nnrp.access file
 	        dnews.ip.name:read post:::*

	2) Give DNEWS ihave access to your server 
	Add a line to  hosts.nntp
	        dnews.ip.name

What if DNEWS Crashes !!!
	Don't Panic! (in large friendly letters)
	It is a design goal of DNEWS that it should never never never
	never never crash.
	
	We have now built in some special debugging options so you can
	help us track down the problem if this should happen on your
	machine.

	So, if it crashes, do this:
		Edit dnews.conf and change the debugging lines to:
			loglvl flush
			debug_rotate 2000
	Then start the system, and the next time it crashes, email
		dnews.log  & dnews.conf & newsfeeds.conf
	To us at:  netwin@world.std.com
	Together with any other facts that you can give us, e.g.
		If you are sucking news or getting a full feed.
		If you are using xmit
		What systems and news readers are reading from you,
		(e.g. tin, trumpet, pc's only, whatever...)
		At what time of day it crashes. any other clues...
	
	Many thanks for your assistance in this.

Gatewaying Mailing Lists
	CAUTION, gatewaying mailing lists to public news groups is 
	a little risky, don't do it lightly.
 
	Two gateways are needed to make a news group and a mailing list 
	'identical', you must setup both so that a news post gets sent to the
	mailing list and so a mailing post gets posted to the news group.
	
    Setting up a gateway from a "NEWS group" to a "MAILING LIST"
    	In newsfeeds.conf add a feed for the group you wish to gateway, the
	'site' name can be anything meaningful to you.
	
		site juggling
		        groups rec.juggling

	(This will make dnews create juggling.feed in the workarea directory)

	Now to actually send the items, setup an xmit process for each mailing
	list.  To do this edit addmail.cmd (which will be in /dnews with luck)

	notepad addmail.cmd
		Change the -name to be the name in newsfeeds.conf
		Change MAIL.HERE.COM to point to your mail server
		Change JUGLIST@HERE.COM to point to the actual mailing list
		addsvc -del dxmail1
		addsvc -add dxmail1 xmit.exe "dxmail1 MAIL.HERE.COM -at *5 *
(cont. but should be on one line)   -mail JUGLIST@HERE.COM -name JUGGLE"

	addmail.cmd  (run the script to add the service)

     	Restart things:
	     tellnews reload
	     Start the xmit service in Control Panels (for nt)

	Test the mailing list, if a loop occurs, disable it quickly and figure 
	out why.

    Setting up a gateway from a MAILING LIST to a NEWS GROUP  (Windows NT only)
        First setup DROBOT to run from ntmail, in control panels run the 
	NTMail admin tool.  Click on 'executables' and enter a name for this
	gateway, e.g.
		juglist-robot
	(You will then need to add this user to your juglist mailing list, e.g.
	 juglist-robot@here.com, so that this robot will get all messages that
	 are posted to the mailing list)

	In the command line box type in:
	    drobot -dir c:\ntmail\news -groups rec.juggling
	
	Now, setup the service to post these items.
		addsvc -del dposter
		addsvc -add dposter dposter.exe "dposter -dir c:\ntmail\news
			-to news.here.com"

	Now start the services (from control panel) and then test 
	posting a message and mailing a message to the mailing list and 
	see if the newsgroup and mailing list are kept inline.

Windows NT operating system bug

>Situation:
>- In ControlPanel->Network->Server->Configure the optimization is set by
>default to "Maximize Throughput for File Sharing". - Most of the time this
>has no apparent effect, but when copying a single file that is large, all
>available ram is allocated to the disk cache, and when the ram runs out, it
>starts paging like crazy. This is stupid behaviour, and is a bug. If this
>goes on for any length of time, you'll probably have to reboot. - When (if)
>that file copy ends, the ram is released and the system resumes normal
>operation. - If you copy lots of smaller files, you will not observe this.
>It happens on a file by file basis. Presumably the same thing happens with
>all files, but if they're not huge, you probably won't notice because the
>ram doesn't run out before the file operation finishes.
>
>Workaround:
>- Set optimization to "Maximize Throughput for Network Applications". This
>causes memory to be more intelligently managed, and the avail free memory
>is kept above 4Mb as much as possible. It will still dip low, depending on
>what's running, but will come back up quickly.

Setting up a UUCP feed into DNEWS
	addsvc -del dposter
	addsvc -add dposter dposter.exe "dposter -dir c:\uucp\in -to news.here.com"
    This will search for files called *.bag in the directory c:\uucp\in
    and after processing them it will delete them.  It's your job to write
    a batch script to get the files in this directory and uncompress them
    if necessary.
    You may also need to add ihave access to your own machine:
         news.here.com:read,post,ihave:::*
        
    The BAG/UUCP file format is:

    #! rnews nnnn
    ...(article, exactly nnnn bytes, counting each end of line as one byte)
    #! rnews nnnn
    ...(next article)...
       
Setting up a UUCP feed out of DNEWS
   In newsfeeds.conf add a feed, e.g.
           	site site1.name.uucp
	       		groups *

   Add a service (or process to run xmit and dposter)
	addsvc -add dxmit1 xmit.exe "dxmit1 site.name.edu -at *5 * -uucp c:\dnews\site1 "

   This will create files called news000n.bag in the directory c:\dnews\site1  	    
   It's your job to uucp copy these to the destination sites, and delete them.
   If you want you can compress them first.  :-)

   The format of the file is:

    #! rnews nnnn
    ...(article, exactly nnnn bytes, counting each end of line as one byte)
    #! rnews nnnn
    ...(next article)...


Message aren't going upstream/ 435 Duplicate error
        The problem is your exclude paramter is wrong, this
	results in dnews sending all items it gets back upstream
	which results is a clogged queue so your local posts
	never get sent.

	Read the section above:
              Setting your EXCLUDE parameter correctly:
        
-----------------------------------------------------------------------------
(9) Using other TCPIP stacks on VMS
-----------------------------------
	Only the multinet driver has been tested.  The ucx driver has been
	compiled and will probably work with very little effort.

To build a new TCPIP driver:
	$ edit nntp.c
	(Add a section to include the header files for your version
	of tcpip, ifdef it in some obvious way). e.g.
		#ifdef MULTINET
			#include "multinet_root:[multinet.include.sys]socket.h"
			...
		#endif

	$ edit n.com
	(Change the compile line so it defines the symbol that you
	used above to distinguish your tcpip software AND change the
	name of the object file too) e.g.
		$ cc nntp.c /define=("MULTINET"="TRUE") /obj=nntp_multi.obj
	
	$ edit l.com
	(Add a section to link to your tcpip stack, you will need to change
	the name of the nntp_XXX.obj file name and probably the socket library
	name.) 

	Try and compile it and link it:
		$ @N
		$ @l multinet all

	Most likely it will fail because of some conflict between names
	e.g. socket_close(), or simply close(),  add ifdefs to NNTP.C to
	correct for this.

	Once you have it working, email the files nntp.c and l.com and n.com
	to us and we will maintain and distribute these changes for
	others.
				netwin@world.std.com
-----------------------------------------------------------------------------
(10) Mailing list  (Announcements)  (discussion list below)
---------------------------------------------------
	You can join the dnews mailing list by sending a message to:
		maiser@emagic.co.nz
	Containing one line:
		subscribe dnews

This is a moderated mailing list, it's only function is to announce new
versions of dnews and to disseminate up to date information on installation
problems, bugs, new features etc to people who manage news systems.

You will not be flooded with mail from this mailing list, it will probably
average 1-2 messages a month.

Mailing list, (Discussion)
--------------------------------------
If you want to 'chat' about DNEWS with other DNEWS users, discuss possible
new features, complain or praise the wonderful support we give or generally
natter to other people running similar systems,  then you can join the 
DNEWS discussion list which is kindly hosted by Stephen White:

To subscribe send a message to:
        dnews-request@adam.com.au

Containing one line:
		subscribe

To send messages to the list send to:
		dnews@adam.com.au

-----------------------------------------------------------------------------
(11) Notes on compiling and porting DNEWS (unix)
------------------------------------------------
	Uncompess and untar the saveset
	Copy a config file which matches your machine, if one does not match
	then find the closest one you can. e.g.
	(for SunOS)	> cp config.solaris config.i
	(for LINUX)	> cp config.linux config.i
	
	Edit and modify config.i as necessary.
	Type in make all.
			> make all
	Now follow the normal installation instructions.

	If you have to make changes to the config.i file, then email it to
	us, specifying what type of machine & OS it is for and we
	will include it in the next distribution.

	If you change source code then email us the entire source files
	that were changes, please don't send diff or patch files these
	are extremely difficult to merge from multiple sources.

	When making machine specific changes, IFDEF all the changes 
	and where possible use 'feature' like ifdefs rather than 
	'machine' related ifdefs, e.g.

		#ifdef NEEDS_STRDUP
			...
		#endif
	(then define NEEDS_STRDUP in the config.i file)
	Rather than:
		#ifdef LINUX
			...
		#endif
	
Enabling the DNEWS Full Text Searching engine
---------------------------------------------
Warning: This is a beta release of the Full Text Searching mechanism which
was more than a little difficult to implement, it is still experimental at this
time! We will be keen to hear how it performs in the 'real world' your feedback 
is always valuable.  

Warning!!! To build a really complete index will require free space
of about 10-50% the size of your spool area, it will also gobble up
signficant processor & memory resources.  See the file fts.conf to control how
much of each item is actually indexed, and limit the list of groups that
you send to the indexing service.

You can 'index' a subset of groups, possibly just your local
news groups which are important to you, this will require very little 
resources.

What to do:
	1) In dnews.conf define the directory to use to build indexes, it
	   must be a disk with lots of free space :-)
		fts_dir c:/dnews/fts
	2) Create the directory and move or copy fts.conf into it.
		mkdir c:/dnews/fts
		copy /dnews/fts.conf c:/dnews/fts
		del /dnews/fts.conf (so you don't mix it up with the real one)
	3) Install an xmit service to build the indexes:
		addsvc -del dfts 
		addsvc -add dfts xmit.exe "dfts ftsfeed -fts -at *5 *"
	4) Add an ftsfeed to newsfeeds.conf to send items to the xmit service.
	   Select a list of groups that seem sensible to index, don't index
	   the binary groups :-)  (add this to the end of newsfeeds.conf)
		site ftsfeed
			groups !*,comp.*,rec.*,local.*
	5) Install dnewsweb, and in dnewsweb.ini tell it that fts is enabled
		search true
	6) From Program Manager start the xmit fts service:
		In Control Panel, Services, Start the DFTS Service
	7) Wait for the indexes to start being created, if you have a small
	   system you might want to send your current items into the database
	   we DO NOT RECOMMEND using this command, it WILL lock up dnews
	   for several minutes:
	        tellnews refeed ftsfeed   (DO THIS AT YOUR OWN RISK)
	8) Try the system out:

	Notes:
		1) New items will not appear immediately as DNEWS does
		   not reload the database very often.

-----------------------------------------------------------------------------
(12) Updates, List of bugs/features for each version.  (in reverse order)
-----------------------------------------------------------------------------	
2.6o	
	+ Fixed xmit to mailing list gateway, it was not sending once it
	got an error.
	+ Reduced number of open files in OS2, their is a limit of 8 for some
	unknown reason in the watcom C library.
2.6n	
	+ Minor mod to db code re expire processing.
	+ string compress fix for non nt versions
	+ built new OS2 version, dposter should work now.
2.6m
	+ Forced addition of posting host header.
	+ Increased timeout from 26 minutes to 1 hour if history.dat is locked
	(for example by a slow backup process)
	+ Fixed a bug in the refeed command.
2.6k		 
	+ Fix for tellnews group_merge command, the groups in the active.add
	file were not being added to the active.times file. 
	+ Fixed bug in email confirmations and reports 
	+ Fixed refeed command so it runs without stopping dnews
	+ Added tellnews log [nnn] to show the last few lines of the log file.
2.6j
	+ NOTE: you must delete *.fts before starting this new FTS system if
	you were testing the previous beta version of FTS. (full text searching)
	+ FTS system re-written to improve performance. Warning it still uses
	a LOT of memory, figure in 20MB's if you want to index everything.
	+ Fixed bug in the xmit restart after crash code.
2.6i
	+ If you create a file post.add in the config directory
	it will be appended to all local posts (use at your own 
	risk of attack from free thinking users :-)
	+ Reduced memory use on NT.
	+ Fixed bug with sending articles out via combined ihave/suck feed.
2.6h	
	+ Fixed response codes from tellnews, always end in 281 now.
	+ Fixed bug in FTS which could cause a crash (only if you were
	using fts)
	+ Improved performance of cancel messages (by a large factor)
	+ tellnews killgroup modified to always delete groups even if they are
	not empty, the files are still left in the spool directory, you can
	remove them by hand.  This command, and deleting spool files, 
	should only be used with extreme caution.
2.6g
	+ Made the fts-xmit process work much faster with
	binary articles.
2.6f	
	+ Fixed bug in drobot which was loosing the last 2 lines of messages.
	+ Added tellnews command      tellnews reload_fts to re-read the fts
	database.
	+ Fixed bug in processing feeds which caused xmit to miss an 
	  occasional article
	+ (NT) Increased connection queue length and process it faster to 
	deal with connection refused messages.
	+ Added config setting,  expire_delay 0,  this can be used to tune the
	speed the expire runs at.  The default is 0, you might try 1 or 2 to
	make the expire impact less.
2.6e	
	+ Fixed bug in FTS database.
	+ Fixed stats_in display for multiple feeds from the same machine.
	+ Fixed getold so it will not set upto values negative.
2.6d (28-Aug-1996)
	+ Fixed problem with expire taking way too long on heavily loaded
	servers.  
	Note: the stats_in figure is not accurate if you have more than
	one simultaneous incoming feed from the same site.
2.6c (27-Aug-1996)
	+ Fixed bug in streaming suck option.
2.6b (26-Aug-1996)
	+ Added streaming option to sucking feed, to enable it add to dnews.conf
		suck_stream true
	This can triple the sucking speed or better on some systems.
2.6a (Beta release, 25-Aug-96)
	Summary of major new featres since 2.5i
		Full Text Searching added
		DNEWSWEB now automatically finds and shows images in messages
		DNEWSWEB improved to allow all the screens to be tailored.
		Expire on large systems (4Gig and up) is much faster.
		Performance improved and cpu use reduced.
		Misc bugs fixed.
	+ Implemented automatic inline decoding of MIME and UUENCODED
	pictures in DNEWSWEB
	+ Added 'related items' button to DNEWSWEB
	+ Added header and footer files to DNEWSWEB  see dnewsweb.txt for details
	+ Added 'sort by subject' option to dnewsweb.ini
	+ Added Full Text Searching option to DNEWSWEB, this allows a user to
	search your entire spool disk (3 gig's) in less than a second.
	(See notes above on enabling the full text searching engine)
	+ Made tellnews key command friendlier.
	+ Added nntp extension XDSEARCH for Full Text Searching
	+ Added nntp extension XDFIND for header searching within a group
	+ Fixed bug in xmit - mailing list gateway with some mail servers.
	+ Added option to dnews.conf  "nocontrol true" which stops the automatic
	creation of the newsgroups control and control.cancel
	+ Improved speed of listgroup command by factor of about 10-20. 
	(this can significantly improve free agent response)
	+ Added pc's ip name/number to path if it is empty in posting feed
	+ Fixed expire bug, if 'purge' was not defined it defaulted to 0
2.5l (20-August-1996) 
	+ Changed log file names from  dnews.log2 to dnews2.log, dnews3.log.
	+ Added expire_small setting to dnews.conf, and made it auto config
	to 20*disk_space, (this is used when more than 90% of your disk
	is full) Made expire_chunk auto configure better too.
	  These settings are not dynamic, you must restart dnews if you change
	  them.
2.5k
	+ Added more regular writing of active file with ihave feeds.
	+ Fixed error in dnews generated line count
	+ Modified select call to deal with bug in NT Sockets which
	caused 'connection refused' errors during expire runs.
2.5j
	+ Patched bugs in NetWare version (with long file names)
	+ Replace badly implemented system library calls strchr() 
	and strstr() with our own versions which are 100 times faster in 
	some cases, this gives about a 5%-10% increase in performance 
	on NT.  (this also fixes the problem with 800K local posts locking up 
	DNEWS for short periods)
	+ Added tellnews showqueue which will show the entire sucking queue.
2.5i
	+ Fixed file handle leak on unix versions.
2.5h
	+ Added cached life to showcached output.
	+ Added time stamp to last sucking error in status.
	+ Added AUTH_CASE TRUE, which allows case sensitive user/passwords in 
	access.conf
	+ Minor changes for OS/2 version.
	+ Fixed error in active.names processing which allowed duplicates.
	+ Added tellnews command FIXNAMES which removes historical duplicates
	+ Max_groups increased to 35000 on Windows NT (from 30000) 
	(really there aren't this many groups, you should put something
	more restrictive in your 'me' feed and delete some of the rubbish
	from active.dat) 
	+ Made output from 'key' command easier to 
	+ Changed some sockets to non blocking, added dnews.conf nntp_block true
	to restore previous operation in event of any problems.
	+ Found bug causing crash after socket closed error.
2.5g
	+ Fixed EAGAIN error's (on solaris and osf) so it will wait 1 second
	before re-trying.
	+ Fixed intermittent crash at end of expire on NT related
	to error messages like: "(socket_write error.."
2.5f
	+ ADded option to dnews.conf:  no_newnews true, which will disable the
	newnews command.  You may want to do this to stop bad software
	clogging your network with stupid requests. (The newnews command
	can essentiall request your history file, all 100MB of it)	
2.5e
	+ Added dnews.conf option
		expire_bits true
	If you are running a very big system this can smooth out performance
	during expire runs.
2.5d
	+ Patched 2 more socket_write errors for NT.
	+ Added reporting of pc's name when license key fails.
	+ Changed killitem to accept message id's
	+ Fixed bug with rubbish appearing at bottom of downloading message.
2.5c
	+ Increased max length of confirm settings
	+ Patch for occasional crash at end of expire run on NT
2.5b
	+ DNEWSWEB, fixed bug in html code so it works with netscape 2.x
	+ Fixed BSDI crash
	+ Added rlimit memory code for BSDI
	+ Made system reject users nicely when close to 300 users connect.
2.5a	
	+ Added DLIST nntp extension
	+ Added DNEWSWEB, a cgi program to gateway web pages into your
	news system for both local and non local groups.  See dnewsweb.txt
	for instructions on installation.
	+ Fixed channel close on write causing signal on
	BSDI.
2.4q
	+ New groups would sometimes not show a downloading message until
	dnews was restarted, this is fixed.
	+ More minor changes for MAC version.
    	+ Improved 'newnews' and 'newgroups' commands to minimize impact and mem used.
	+ 'newgroups' now obeys 'access.conf' settings so users don't see 'new' groups
	that they cannot actually read.
	+ Fix for outgoing feeds to ports other than 119
	+ Fixed control panel start/stop of xmit service.
	+ Reduced memory use for xmit.
2.4p
	+ Improved memory handling some more, changed string allocation
	method to avoid block fragmentation and free more strings if 
	a channel closes.
	+ Reduced over allocation for group data.
	+ Fixed bug with SUNOS strstr() routine, result is DNEWS runs
	about 5 times faster on SUNOS than it used to.
2.4o
	+ Added dnews.conf parameter SUCK_TIMEOUT default is 300, only used
	when sucking an article and the line is inactive for this period then
	the channel is closed.  (Default was 180 seconds in previous versions)
2.4n	
	+ Another memory leak fix, also fixes a bug with xmit which would
	have existed since 2.4f
2.4m (I don't like the letter l)
	+ Fixed bug with article corruption (usually only occured with
	large articles on tcp links that go up and down alot)
	+ Header cache is cleared after expire, (stops misleading xhdr output)
	+ Minor code changes for MAC version
2.4k (Beta)
	+ Fixed dnewsmanager which was writing large dnews.conf files.  You
	  should start dnewsman and click on the 'write' button to 
	  allow the dnews.conf file to be corrected.  (this may save some memory)
	+ Fixed unix crash (only some flavours) if connections closed 
	  while sending to them. (introduced in 2.4f or maybe 2.4g I think)
	+ Fixed problem with newly added groups not showing 'downloading' message
	+ Fixed crash if list of feed groups is more than 500 char long and 
	  status command is run.
	+ added total bytes to stats_in output
2.4j (Beta 19/June/1996)
	+ Fixed processing loop after connections close.
2.4i (Beta 18/June/1996)
	+ Fixed bug with large cross posted items introduced in 2.4g
2.4h (Beta 17/June/1996)
	+ Fixed memory problem if active.times file gets too large.
	+ Fixed bug with multiple sucking which would have caused dnews to
	re-check items from secondary sucking sites.  
2.4g (Beta 16/June/1996)
	+ Made date of fake article 60 days old to ensure the article does not
	get sent to other news servers successfully.
	+ Fixed Expire Report crash if less than 40 groups existed.
	+ Fixed bug in date parsing, there was a bug in processing some date
	formats. This could have caused some valid articles to have been rejected.
	+ Prevented memory build up from the following commands:  
		xover,xhdr,list,article,body
	+ Made default list output only show groups that the user can read.
	+ Added tellnews command "update_clear" to empty the update queue.
	+ Fixed crash if active.names file was larger than memory.
2.4f (Beta 6/June/1996)  
	+ xmit, log file now rotated every 10,000 lines.
	+ Fixed memory usage bug, with some news readers dnews was 
	allowing more requests than the news reader (or modem link) could
	handle, this caused a large build up of RAM.
	+ Fixed 2.4e bug with updates only occuring once per hour instead
	of every 10 minutes.
2.4e (5/June/1996)
	+ Increased max connections on Solaris to 300, linux to 200
	  (same applies to other rlimit based unix systems)
	+ Enhanced caching logic so it will now deal with a machine 
	  slurping news by message ID and not get confused about which 
	  'groups' are being read due to cross posting confusion.
	+ cachedonly true also works better
	+ Added tellnews commands
	    tellnews update2,3,4  To update from alternate sucks.
	    tellnews updateone rec.humor.* 3    To update one or a few groups from suck3
	    tellnews showcached [rec.*]	To show all cached news groups.
	+ Expire, timing logic changed so it is 'hourly' based, this ensures
	  it is not missed occasionally.
	+ Added option
	     expire_fast true
	  This makes the expire process run at a high priority, the DEFAULT
	  is now LOW priority, so it doesn't interfere with people 
	  reading news
	+ Added dnews.conf option
	     	hide_queue true
   	  This hides the names of the entries in the sucking queue, so little
	  old ladies are not offended by naughty group names.
	+ Added dnews.conf setting
	 	suck_requeue true
	  This tells it to requeue any groups which are not finished due to the
	  batchn, or batchsize settings.
	+ Added dnews.conf setting
		groups_at 44 1
	  Triggers a fetch for any new group names from the feeder site once
	  per day (1:44 a.m.).   This will be the default for new 
	  installations, for old installations you may want to add this line.
	+ Made 'getgroups' run as a background task so it doesn't impact on
	  performance.
    	+ Made xover and xhdr run without blocking other nntp sessions, and
	  smoothed out response.
	+ Added xover cache, default size is 3000 (which will use about 600k)
	  If you have 32MB I would suggest increasing this to about 10000
	  If you have More than 32MB, try about 20000
	  In dnews.conf add:
	  	xover_cache 10000
	  At the same time you may want to reduce HEAD_CACHE to about 200 if 
	  your are short of memory as the xover cache is much more efficient 
	  and uses less memory. 
	+ Added tellnews commands
	        tellnews getgroups 2
	  Which will get new groups from 'suck2' automatically.
	  (usually run this once when adding a second sucking feed like
	   the microsoft news groups, warning, it will add all groups
	   that the other server offers, ignoring the 'suck2' group
	   wildcard. (but it does obey the 'me' wild card in newsfeeds.conf))
	+ Fixed bug with multiple reports being sent each night.
2.4d (19-5-96)
	+ Fixed crashing bug for sites not doing any sucking (introduced
	in version 2.4a) 
2.4c
	+ Fixed bug in sucking different groups from multiple sites
2.4b
	+ Digital Unix bug fix in history memory allocation
	+ Changed default for nntp_slow to FALSE
	+ Added code to correct item start count for a group in the event of
	files dissappearing.
	+ Made outgoing posting feed work with more than one posting feed, each local
	post is checked to see which 'posting' feed it should go to.
	(by matching the 'groups' in newsfeeds.conf)
2.4a
	+ Multiple sucking feeds modified, you can now suck one group from
	several sites.  You MUST change your config file if you are 
	sucking from more than one site!!!
	+ active.dat file now has 3 extra values, (the end points for the
	additional sucking feeds)
        + The UPDATE_GROUPS1,2,3 dnews.conf parameter is now obsolete.
        + Here is an example setup for taking alt groups from two sites and
        microsoft groups as well.
        
		nntp_feeder main.feeder.site *,!microsoft.*
		nntp_suck2 alternate.feeder !*,alt.*,!microsoft.*
		nntp_suck3 msnews.microsoft.com microsoft.*

		update_at *5 * 	   #  Get  main groups every 10 minutes
		update_at2 20 3	   # Get missing articles once a day 
		update_at3 40 9,12   # Get Micrsoft articles at 9:40 and 12:40

	In newsfeeds.conf you would have
	       	site me 
	              groups *
		site $nntp_feeder
			groups *,!microsoft.*
			builtin
			posting
		site msnews.microsoft.com
			groups !*,microsoft.*
			builtin
			posting
		...

	Please don't update every 10 minutes from microsoft, as they could
	easily get over loaded :-)
	
	+ Minor change to processing of LIST command which should improve
	speed if there are lots of deleted groups.
	
2.3p
	+ Fixed behaviour of built in feed for 'duplicate' errors, BUT, this
	is generally a sign that your EXCLUDE parameter is wrong and should
	be fixed.
	+ Added dnews.conf setting 'replicate true' which tells dnews to 
	use the same item numbers as the host it is fetching items from, you
	should NEVER set this parameter on an already running system, it's purpose
	is for setting up MIRROR news servers.
	Both of these settings should be used together:
	         replicate true
		 postonly true
	And your feed on each of the mirror news servers should be defined as 
	        site $NNTP_FEEDER
		     groups *
		     builtin
		     posting
	
2.3o (12/5/96)
	+ Fixed bug with sucking from multiple sites, it was intermittently
	sucking groups from the wrong site.		
	+ Added MAX_SPEED setting, this limits the speed of incoming
	connections in bytes/second.  Useful to smooth out peformance
	and limit the impact on a wide area line: Here's a typical setting.
	   	max_speed 10000 
	+ Added CANCEL_ANYONE true,  enables all cancel messages even
	if they are not from the original poster
	+ Added CANCEL_USERS me@here, only allows cancel messages from you.
	+ Added LIST_READONLY true to dnews.conf, this stops dnews from
	reporting groups to a user if the user is not able to read them.
	(due to access.conf settings)
	+ Added config parameters
		SUCK_BATCHN 100
		SUCK_BATCHSIZE 3000000
	These limit the number and total size of 
	items to suck from one group at one go.
	+ Fixed config processing which could cause
	errors with blank parameters.
	+ Made rmgroup/killgroup work for mixed case groups.
	+ Added 'n groups deleted' to output from rmgroup/killgroup
	+ Modified buffering of output to improve compatibility with faulty
	news reader software. 
2.3n (5/5/96)
	+ Increased connection limit on NT from 128 to 300
2.3m (3/5/96)
	+ Added config SEND_AT and SEND_LATER
		SEND_AT *5 *        Sends mail and builtin feeds every 10 minutes
		SEND_LATER TRUE     Stops dnews from trying to send immediately a post is sent
	+ Fixed netscape/freeagent (old version)/dnews bug where messages 
	posted with bad headers gave 'no such newsgroup' errors when the
	user tried to read them.
	+ Fixed bug with dposter processing large messages, where dposter
	would somtimes lock up. (probably only on NT)  
	+ Fixed scroll bars on Dnews Manager status windows (yay!)
	+ Registration codes changed, this should not affect any registered
	users, however, if you have a problem please contact netwin@world.std.com
	and we will provide you with a new registration key.  
2.3l (19/4/96)
	+ Fixes bug with cancel processing
	+ Fixed bug with Netscape access using usernames and passwords
	    It is important to have access.conf lines in the correct order
	    the following example which used to work will no longer work:
	    
	           *:logoff:::*
	           *.my.domain:read,post:::*
	           *:read,post:joe:joepassword:*

	     This is because the username line will be matched in anticipation
	     of the user/password info being sent.  So these lines should
	     now appear ABOVE wildcard matching lines, e.g.:

	           *:logoff:::*
	           *:read,post:joe:joepassword:*
	           *.my.domain:read,post:::*

		So the logic is now: If he is in MY domain, he can read
		and post, but if he isn't in MY DOMAIN then he can connect
		but cannot do anything until I see a user/password combination.

2.3k
	+ Fixed bug with not sending AUTHINFO when posting upstream.
2.3j
	+ Fixed occasional crash if sucking connection closes unexpectedly
	+ Fixed crash if control message tries to create illegal group name.
	+ Corrected format of MAIL TO: messages for confirmations and added Message-ID
2.3i
	+ The MOSAIC 2.0 news reader contains a bug, if you MUST use this
	news reader then in dnews.conf set:
	          nntp_slow true
		  chan_nobuff true
	Then it should work most of the time until Mosaic fix the bug :-)
	(this may not work if you use XMIT, I haven't tested it :-)
	+ Fixed bug in xmit if destination site resonded with <msgid>xxx
	  with no 'space' after the right angle bracket.
	+ Fixed bug with Microsoft Internet Explorer 2.x and Downloading message.
	+ Fixed bug with fast history file, so it now works faster
	+ Added stats commands
           tellnews stats_in      Shows stats in incoming feeds
           tellnews stats_groups  Shows stats on group usage/size
2.3h
	+ Expire crash bug fixed (thanks to Karsten Thygesen)
	+ Added '&' as a valid newsgroup character, e.g. calvin&hobbes
	  However, I can't find any newsreader which will work with an '&' 
	  in a group name so I have my doubts about it.
2.3g
	+ Fixed error message bug  (no such file...) repeating in log file.
	+ Fixed caching detection for news readers that read items by 
	message ID (e.g. netscape 1.x)
	+ Fixed bug in xmit causing PANIC errors and crashes. (I think :-)
2.3f 
	+ Compile warnings fixed, thanks to Karsten Thygesen
	+ Speeded up history file access by adding match code. (this will
	help large sites taking full feeds)
	+ Support for UUCP now provided, see the sections above titled:
		Setting up a UUCP feed out of DNEWS
		Setting up a UUCP feed into DNEWS
	+ 201, posting not allowed, now accepted by xmit as a valid return code.
	+ Fixed NT crash when socket closed with unusual error message. (again)
2.3e (21/Feb/96)
	+ On Windows 95 start and stop buttons now work from DNEWS Manager
	+ History lookup in cache (so new posts can always be found)
	+ Group cached life is not decreased when it is read, only increased.
	+ Cancel messages from Freeagent are now obeyed despite their dubious format.
	+ Added 'logoff' setting for access.conf, use this to deny access.
	+ Added caching for DNS lookups and reverse lookups.
	+ Added dnews.conf  NNTP_LOGOFF setting which will be sent to connections
	which do not gain access thru access.conf. The default string is:
	      nntp_logoff You have no permission to talk
	+ InstallShield now checks for 3mb of space on 
		%temp% disk, system disk and spool disk.             
	+ Fixed NT crash when socket closed with unusual error message
2.3d (11/Feb/96)
	+ Default feed fixed for builtin feeds which aren't sucks.
	+ Increased line length for access.conf and expire.conf
	+ Changed several strcpy's to ncpy's 
	+ If history fails to open it will retry
2.3c (7/Feb/96)
	+ Oops, bug introduced in 2.2g which caused crash during startup
	if nntp_feeder was not defined.
	+ InstallShield now used for installations (thanks to Danny Mayer)
	+ DNEWS Manager GUI released (beta)
2.3b
        + Fixed bug with long headers being messed up from some news servers
2.3a
        + Released
2.2g
	+ Added to dnews.conf, for updating some groups at more frequent times
	          update_groups1,2,3  interesting.groups.* *5 *
	+ For sucking groups from other news servers.
		  nntp_suck2,3,4 site.name local.* [username password]		
2.2f (30/1/96) 
	+ Cleaned up nntp error message.
	+ Fix access.conf problem with read and post mix up.
2.2e 
	+ Fixed bug in database which caused idx files to become corrupt on
	  occasion.
	+ Made open's non blocking, you can reverse this using OPEN_BLOCK TRUE
	  in dnews.conf
2.2d (20-Jan-1996)
  	+ Put exit handler back into unix version. (removed during debugging)
2.2c (19-Jan-1996) 
	+ Improved handling of corrupt database files which could cause crahes
	in some circumstances.
2.2a (15-Jan-1996)
 	+ Made log files rotate every 100,000 lines by default (debug_rotate 100000)
	+ Made expire higher priority than sucking news items.

2.1v (13-Jan-1996)
 	+ Fixed key problem for MIPS-NT
	+ Fixed database problem with corrupt files causing problems, added
	config parameter UPGRADE TRUE which you should set if you are upgrading
	from dnews version 1.x to 2.x
2.1u (12-Jan-1996)
	+ Added tellnews undelete wildcard,  this command will mark deleted groups
	as normal again.
	+ The ME feed rule is not obeyed for crossposts if you have coppied an
	active file from another machine, you need to type in:
	         tellnews matchfeed
	to prevent cross posts from appearing in groups that are not in your 
	me feed.  If you change the 'me' feed and want to 'add in' groups which
	were previously deleted you may need to do something like
	          tellnews undeleted *binary*
		  tellnews matchfeed
	+ Fixed bug involving file handles.
	+ Fixed problem with entering license key on expired systems
2.1t (5-Jan-1996) 
        + Fixed minor bug in vms version, crashed if group names exceeded 80 chars
	+ Added command:  tellnews group_merge,  this adds any groups in a file
	called active.add to the active.dat file.  Use this to merge in new groups
	from another server.
2.1s (3-Jan-1996) 
	+ Fixed bug with posting multi part items with 'posting' feed.
	(actually the return status was being sent twice which was confusing
	the news readers)  
2.1r	
	+ Fixed bug with ihave feed of items larger than 1MB causing 10 minute
	delay in feed.
2.1q	
	+ Fixed crash if .itm file is badly corrupt. (added speed stats)
2.1p	
	+ Fixed status code for failed items when recieving a streaming feed.
2.1o
	+ Fixed two expire bugs, one if the history file contains only one line
	then dnews crashed, another if every single line was expired, then 
	dnews crashed.
	+ email confirm now allows a list of email domains, e.g.
	          confirm  *.newyork.com,*.la.com

2.1m (3/12/95)
      
2.1k
	+ added NNTP_SLOW TRUE option to dnews.conf, this stops dnews from
	sending to a socket unless it is ready for more.  Shouldn't have 
	any effect, but... :-)   (don't use this, it was just for debugging)
	+ Added NOSTREAM true option to dnews.conf,  this disables incoming
	streaming
	+ Changed priority of feeds so posts will go out sooner.
2.1j	
	+ Fixed one possible file handle leak
	+ Added -mail option to xmit, this allows news groups to be sent to
	mailing lists, the other half (mailing lists to news groups) will be 
	implemented shortly,  see the faq section above on setting this up.

2.1i (20/11/95)	
	+ Fixed bug, item far too big error keeps repeating after first failure.
2.1h	
	+ Modified db_hash which could return a negative number
	+ Made suck and feeds timeout after 5 mins if other ends stops responding.
	+ Fixed minor bug with internal feed which could cause a crash
	+ Fixed return code if connection is refused
	+ Fixed xmit bug
	+ Fixed bug if access is refused and connection is terminated by other end.
2.1g
	+ Added config parameter NNTP_BIGREJECT, the default value is 439, you
	might need to set this to 437 for some incoming feeds. (but very unlikely)
	(the default will now work with innxmit which is buggy and collapses
	if you give it the correct response code)
 	+ Added uptime to status
	+ Fixed bugs which could cause crashes if an item index file was corrupt.
	+ Added NT translation of filename 'nul' which is not valid on NT.
	+ Fixed bug on Solaris systems with dnews not responding under some
	conditions. (it would appear to be locked up but still be running fine)
2.1f (internal release mainly) 
	+ Improved logging of file open/close
2.1e (4/11/1995) 
	+ Fixed lib_strdate, which was producing bad time stamps
	+ Fixed posting problem with INN servers
	+ Fixed 100% cpu use caused by connections closing after asking for more
	than 100K of information.  (e.g. list followed by quit)
2.1d (4/11/1995) 
	+ Fixed addlost bug
2.1c (2/11/1995) 
	+ Changes to memory allocation for NT.
 	+ Now deals with & in news group names on NT.
2.1b (1/11/1995)
	+ Fixed crash if NULL item is sent (should never happen anyway but 
	some news feeders do it rarely)
2.1a (31/10/1995)
        + Full release of version 2.x
2.0 Beta-5
	+ Added dnews.conf paramter, open_retry, it defaults to 60 minutes.
	This is how long dnews should wait before re-trying to open a channel
	to your feeder site if it fails the first time.
        + upgrade command changed to 'doupgrade' to avoid confusion with 'update'
	command.  So when you upgrade from any version 1.x copy of dnews to 2.x 
	you should enter:   TELLNEWS DOUPGRADE
	You DO NOT need to do this with every upgrade, it is only needed once
	when you go from 1.x to 2.x
	+ Fixed new feature so it doesn't get a whole list of groups unless 
	you have more than 300 cached (feature was supposed to work in beta-2) 
2.0 Beta-4
	+ Fixed expire so that if it is above 94% when it starts it will recheck
	the free disk space after deleting the first 10,000 items.
	+ Fixed nntp command list newsgroups.
	+ Modified memory allocation again :-)
2.0 Beta-3  (26-Oct-1995)
 	+ Fixed bug in xover introduced in Beta-2
2.0 Beta-2  (24-Oct-1995)
	+ dnews.conf item_max defines how large an item dnews can process, if an
	item larger than this is recieved it will be rejected.  Increasing this 
	can waste memory.  The default is 1000000 (1mb)
	Note: in newsfeeds.conf there is also a setting for rejecting large items
	per feed rather than globally.
	+ String allocation routines re-written to allow memory compaction on 
	the fly, also minor changes to indenting style to solve all other 
	memory problems.
	+ Update made more intelligent so it doesn't get a list of newsgroups 
	every 10 minutes unless you have more than 300 news groups cached.
	+ New command,  tellnews getgroups, which will force an update of group
	names which won't happen automatically if you are using less than 300
	cached groups :-)

2.0 Beta-1  (22-Oct-1995)
        NOTE:  After installing type in:
         	tellnews upgrade   (now DOUPGRADE instead)
      	+ New database Format, note the database will be upgraded 'on the fly'
	however, it is recommended you do a TELLNEWS UPGRADE to make sure
	the entire database is upgraded, and performance will not be good
	while this is happenning, so try and schedule it for off-peak time.
	+ File IO improved to handle much heavier loads and improve
	xover performance when groups are heavily cross posted.
	+ The following NNTP commands all speeded up by about a 
	factor of 10,  NEWNEWS, NEWGROUPS, GROUP.
	+ History rebuild fixed (tellnews addlost)
	+ XMIT exiting when it can't connect fixed.
	+ Log files flushed more completely
	+ Timeout of idle channels now settable in minutes (TIMEOUT NN) 
	 in dnews.conf
	+ Two new settings to clearly specify how cached 
 	groups should be dealt with:
	  cachedonly true  (don't allow items into non cached groups)
	  cachedall true   (pretend all groups are cached)
	The first one can be used to emulate a sucking feed when
 	items are being sent in with IHAVE.
	The second one is for FULL feeds to prevent any 'downloading'
	messages appearing.
	+ Case is now preserved in group names, I don't like mixed case 
	group names but they exist so DNEWS will now deal with them, 
	however, it's matching is non case sensitive, (like NT file names).
	+ New command TELLNEWS FIXRANGE which rechecks the 
	number of items in each group.  (this doesn't expand the range of numbers
	use addlost to do that)
	+ Modified memory allocation routines to avoid common operating system
	bugs, resulting in much lower memory use.
	+ Fixed bug with running out of file handles if the feed site isn't 
	responding.
	+ Changed log files.  There are now three,  dnews.log (all log messages)
	dnews.in (Log of incoming articles) dnews.out (log of outgoing articles
	and email)  The loglvl affects what gets stored in dnews.log
	debug_rotate can be set to prevent log files from getting too big.
	+ TELLNEWS ROTATE command added to rotate log files.
	This also happens once per night automatically.  Files are renamed:
	      dnews.log -> .log2 -> .log3 -> .log4 -> (deleted)
	+ New dnews.conf setting,  ACTIVE_STATIC TRUE, will stop new groups from
	being created by the sucking feed.  (good if you don't want 20,000 
	empty news groups slowing things down.
	+ Newnews command fixed, it was not responding with the correct status.
	+ Config parameter.  POSTONLY TRUE,  which stops items from being posted
	locally until they come 'back' from the feeder.  (this is the way it
	used to work until version 2.0)  The advantage of the new default is that
	you can have local groups and they will work even with a posting feed.
	+ If WinVN crashes every time you try and read a newsgroup then type in.
	    tellnews fixrange
   	WinVN gets upset if DNEWS reports an incorrect number of items in a 
	group and DNEWS can get this number wrong in rare circumstances usually
	just after upgrading.
	+ Maximum number of newsgroups increased from 20,000 to 35,000.  
	Note: Just because DNEWS can handle it, doesn't mean the pc news readers
	can, if you look in one of these large active files you will find an
	awful lot of crap, I suggest you save memory and bandwidth by removing this
	rubbish. 

1.1g (30-Sep-1995)
    + New mailing list for discussion, send to  dnews-request@adam.com.au
 	+ Added config setting NODNS this will stop dnews from doing reverse
	  name translations.  If you find your system takes 30 seconds to connect then
	  try this setting, it could be your reverse name translation server 
	  is not working.  This only affects access.conf, you will have to 
	  put 'numbers' in to control access instead of names.
 	+ Fixed bug in expire and purgelost.
	+ Added 'TELLNEWS ADDLOST' command, this will restore the history file if 
	  it is deleted.  (You don't need to delete it first unless it is corrupt)
 	+ *** Upgrade procedure, 
	  I recommend after upgrading to 1.1g you type in:
		  tellnews purgelost
	  On a system with many gigs of news this may take 24hours to run.
	  (the system will be very slow while this is running)
	  Then use the command:
			tellnews setused nnn
	  To set the current disk usage correctly (nnn=MB used)
1.1f (27-Sep-1995)
	+ Fixed bug with header records containing tabs being returned by
	xover or xhdr incorrectly.
1.1e (26-Sep-1995)
	+ Fixed bug in body command, if body is empty the server crashed.
	(although this is rare as empty body messages are not accepted
	it can only happen when the database is corrupt)
	+ Fixed free disk space display on NT
	+ Added reporting on memory allocated
	+ Added LOGDIR_MIN to config files
	+ Added TELLNEWS STATS command.
	+ Fixed History memory usage display
	+ Fixed 'mode reader' command, it had a trailing space and some
	  news servers didn't like that. (thanks to S White for finding this)
	+ Fixed bug with the 'cached' groups, they were not
	  being 'reset' as cached when users read items.  (bug introduced a couple
	  of version back)
1.1d (20-Sep-1995)
	+ Fixed expire problem (with deleted groups)
	+ Removed code that prevents ihave incoming when outgoing feed is 
	posting (but this is still probably a bad idea)
	+ Fixed memory leak in NT version.
1.1c (14-Sep-1995)
	+ Fixed remaining memory leaks.
	+ Changes default FEED_READER to TRUE.
1.1b (Internal only)
	+ Fixed tellnews command when port is not 119
	+ Fixed bug when expring if no items in system at all.
	+ Added FEED_READER TRUE OR FALSE, to force the 'mode reader' command
  	  to be sent, or not sent.
	+ Added maxcross flag for limiting crossposts in newsfeeds.conf
	+ Made major improvements in memory allocation, greatly reducing
	  memory usage.
	+ Added debugging option    DNEWS_ROTATE 1000
	+ Fixed bug if the right/wrong slash is used in dnews.conf on NT
1.1a (6-Sep-1995)
	+ Fixed possible bug with very long group names.
1.0e (Internal version)
	+ Fixed possible bug with multiple simultaneous incoming ihave feeds
	+ Fixed possible bug with items cross posted to > 200 groups
	+ Fixed possible bug with incoming items corrupting memmory.
	+ Fixed bug with tellnews.pass not being accessible after it runs
	  out of disk space.
	+ Extended newsfeeds exclude command to allow a list of sites
	  e.g.  exclude feeder1.site,feeder2.site
1.0d (Internal version)
	+ Fixed NNTP DATE command, required by TRN 
	+ Fixed NNTP responses for list commands for TIN 
	+ Added dnews.conf paramter PORT to run the server on a different port.
	+ Added dnews.conf NNTP_USER, NNTP_PASS user and password for feed site
	+ Fixed bug internal mail sending system (NT & VMS not saying HELO)
	+ Added NNTP extension  	list active x.y.z
	+ Added config,  LOGUSE ON, enables reader logging to used.log
	+ Added config, CACHEDONLY ON, stops messages from going into groups
	  that are not cached.  Use this to make an ihave feed become partly
	  dynamic.
1.0c (22-Aug-1995)
	+ Made feed and mail queues higher priority than background suck entries.
	+ Fixed major bug in internal feeding code which could loose local
	  posts if the system was under load when it tried to send them.
	+ Fixed possible crash during expire if history file was corrupt.
1.0b (20-Aug-1995)
	+ Fixed tellnews reload so it reloads dnews.conf, access.conf
	  and newsfeeds.conf.  Also made expire.conf reload automatically.
	+ Fixed rejection message if nntp access is not permitted.
	+ Fixed display of downloading message for new groups on NT.
	+ Correction made to default access.conf
	+ Updated Documentation
1.0a (14-Aug-1995)
	+ Silently reject cancel messages which don't have a message id
	  or that have 'cancel<messageid>' with no spaces.
	+ Added streaming extensions to DNEWS server
		check <messageID>
		takethis <messageid>
		mode stream
	+ New xmit, a hi speed nntp IHAVE feeding program this allows DNEWS to be
	  used on non leaf sites.
	+ dnews_start now takes ownership of (spool) /var/spool/dnews 
	  directory as the correct usercode to run dnews under.
	+ Modified startup scripts to change directory before starting DNEWS
	+ Windows NT version created.
	+ Changed config file processing so it is not TAB sensitive.
	+ Fixed bug with tabs in dnews.conf causing problems.
	+ Log files flushed early on in startup, so you can see if its going.
	+ Startup and generate speeded up, this was causing DNEWS to lockup
	  for periods of up to 60 seconds, now there is virtually no lock up.
	+ Corrected expire.conf, settings for keep and default were mixed up.
	+ Modified control.conf so it doesn't generate as much email.
	+ Group command now shows correct number of articles in a group.
	+ NT changed file names /aux/ into /a_x/ because NTFS does not allow
 	  a file called aux (strange system)
0.9d  (Wide BETA release 2)
	+ Fixed bug which prevented news groups from being added.
	+ Added missing nocached.body file to distribution.	
0.9c  (Wide BETA release)
	+ Socket error's trapped correctly, this was causing the process
	  to dissappear when a connection was badly closed at the other end.
	+ New articles added after an expire run were indexed incorrectly. 
	+ Messages tidied up
	+ Control mail messages now contain "done" or "logged only"
	+ Pause message now contains status information.
	+ Inactive sockets closed even when data still pending on output.
0.9b 
	First ALPHA testing release
-------------------------------------------------------------------------


Copyright & Disclaimer
-------------------------------------------------------------------------
The software DNEWS is Copyright (C) 1995 NetWin LTD, New Zealand, All 
rights reserved. The software remains the sole and exclusive property of
NetWin at all times.

This software and the accompanying files are sold "as is" and without 
warranties as to performance of merchantability or any other warranties
whether expressed or implied.  No warranty of fitness for a particular
purpose is offered.
-------------------------------------------------------------------------

DNEWS is an extremely complex piece of software.  NetWin will make 
reasonable efforts to solve any reported problems but we must limit 
our legal liability for obvious reasons.

