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 (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. ----------------------------------------------------------------------------- !!! 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: 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 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 jggling.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 ----------------------------------------------------------------------------- (12) Updates, List of bugs/features for each version. (in reverse order) ----------------------------------------------------------------------------- 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 micrsoft groups as well. nntp_feeder main.feeder.site *,!microsoft.* nntp_suck2 alternate.feeder !*,alt.*,!microsoft.* nntp_suck3 microsoft.news.feed 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 Please don't update every 10 minutes from microsoft, as they could easily get over loaded :-), NOTE: Micorsoft have not joined the normal news network so posts sent upstream won't necessarily get onto the microsoft network. The DNEWS posting feed may solve this problem but I haven't tried it myself. + 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 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' with no spaces. + Added streaming extensions to DNEWS server check takethis 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.