Copyright: Produced by WebTwin (www.webtwin.com) HTML->WinHelp converter.


DNEWS V4 Manual, Master Index

DNEWS News Server Manual

Master Index

u Installing & Upgrading Instructions

u Managing your server

u Feeding news into your server

u Feeding news out of your server

u Tellnews Commands - Controlling the DNEWS Server

u The Config Files (*.conf)

u FAQ, Frequently Asked Questions & Common Problems

u List of New Features and Updates

u Support News Group

Appendix

u Usenet News & DNEWS a technical introduction

u WWW Gateway - dnewsweb

u Full Text Searching -FTS

u Support, Help, Mailing lists, etc., ...

u DNEWS Manager (Windows)

u Tellnews Control (Mac)

u File formats for the active.dat, .names, .times, files

u Explanations of various error Messages.

u Usage of utilities, xmit, dposter, addsvc, drobot

u Notes for BIG sites (10,000-1000,000 users)

u Registration, Licensing and Support Considerations

This help file was generated from HTML source using WebTwin version 1.1


Installation

DNEWS News Server Manual

Installing DNEWS

To install and setup DNEWS simply follow the installation instructions below. Apart from the site specific information you will enter during installation DNEWS is virtually ready to go.

Index:

u Windows NT Installation

u Notes for Windows 95 Installation

u UNIX Installation

u UNIX Upgrading from INN/CNEWS

u VMS Installation

u NETWARE 4.x Installation

u OS/2 Installation

u Macintosh Installation

u Instructions on setting up dnews to take a full IHAVE feed.

u Sizing Your System

u Calculating memory use

u Where to get DNEWS

Windows NT Installation

1) To download DNEWS from NETWINSITE.COM click on 'Download FREE' and on the download page click on your operating system : (OR FTP the files from ftp://ftp.netwinsite.com/pub/netwinsite/dnews/dnews42f.exe)

2) From MSDOS Command Prompt type in the file name to run the self extracting archive and installation procedure

      Example: dnews42f.exe

3) Run DNEWS Manager to modify the setup further and to start the service. (note - if you will ONLY be using the server for your own internal discussion groups and do not intend to use Internet news groups then just leave the setup requests for your news feed site blank.)

4) Point your news reader software at your NT server and try out your new fast news system. (note - with some news readers you need to exit and then reopen the news reader after setting them to point to your NT server.)

5) Join the mailing lists for advice and update information, read the manual to find out how to; manage the server, add local discussion groups and much more........,and don't forget to register :-)

Open DOS Window

then type TELLNEWS REGISTER

Notes:

1. For large systems (2 Gig of spool) you should allow for at least a 100mb page file. On bigger systems (4gig-20gig) then 200-300mb would be advisable

2. With the above setup DNEWS will automatically suck (pull) news from your provider. To set-up DNEWS to receive a traditional full IHAVE feed you should also refer to Instructions on setting up dnews to take a full IHAVE feed.in the Feeds In section of this manual.

Windows NT Upgrading

Shutdown the server and exit from DNEWS Manager

Run the self extracting archive

dnews42g.exe (or whatever version)

When installation is complete start DNEWS Manager from the DNEWS Program Group. And click on 'Start Service'

Notes for Windows 95 Installation

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) NetWin do not recommend the use of Windows 95 as a full news server for large numbers of users. Use NT if possible.

UNIX Installation

1) FTP the file in binary mode from ftp.netwinsite.com/pub/netwinsite/dnews typically dnewsVER_MACHINE.tar.Z, e.g. dnews43c_linux.tar.Z

2) Extract to a temporary directory in your own account and run the setup utility

/home/chris> uncompress dnews43a_linux.tar
/home/chris> tar -xvf dnews43a_linux.tar
/home/chrisp> cd dnews
/home/chrisp/dnews> su root
/home/chrisp/dnews> ./dnews_setup

3) Skip to step 9 below, or read thru the 'manual' installation instructions if you want to know what the setup utility has done for you:

Manual installation instructions:

EDIT dnews.conf

Modify the file DNEWS.CONF to describe your system by defining the following symbols

SYMBOL	Value	Description
manager	system	email address or user@site.com
nntp_feeder	news.upstream.site	Place to suck news from
myname	news.your.domain	Name of your server
df	/usr/bin/df -k	path and options for df command to get posix standard output, df -Pk sometimes works
diskspace	100	space available in megabytes 1,000,000 bytes (not 1024^2)
sendmail	/usr/bin/sendmail	The path and flags for sendmail or equiv.
confirm	*your.domain	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

    cd /usr/local/dnews
    ./dnews_start.sh

The system will now try and get a list of news groups from your feeder site, while this is happening 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.

Note: With the above setup DNEWS will automatically suck (pull) news from your provider. To set-up DNEWS to receive a traditional full IHAVE feed you should also refer to Instructions on setting up dnews to take a full IHAVE feed.in the Feeds In section of this manual.

Swap partition:

NEWS is memory hungry, you don't need a lot of physical memory but you do need a large swap partition, as a rule of thumb 100-200MB is a good idea for 3-10Gig of news, some brands of unix (freebsd and bsdi) seem to need more than others.

On NT we strongly recommend formatting the NTFS disks with 32k blocks instead of the default (4k) this will improve performance. E.G.

(THIS WILL DELETE ALL THE DATA ON THE DISK!!!)
format /A:32K /FS:NTFS D:

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>

OSF (Digital Unix)

To disable the unaligned access warnings add this line to dnews_start.sh, these unaligned accesses do not affect performance. (or upgrade to DNEWS 4.2i or later)

uac p 0

HP-UX

If you want to use Dnews on HP-UX you have to customize the kernal: Per default a process is only able to allocate 60MB. (This might be not enough for Dnews) You have to set the kernal parameter MAXDSIZ to a higher value. (It is easy to do this using SAM - otherwise you have to take care: the value is in hex (not in dec) and in pages (not in bytes))

We recommend you increase the limit to about 120MB so it will never run out.

BSDI, Unixware, Sunos

Some brands of unix (BSDI, Unixware, Sunos) have process limits, the two that will hurt dnews are memory use/datasize, and openfiles. The following commands can remove these limits you will need to do this for root and news users.

     limit memoryuse unlimited
     limit openfiles 256
     limit datasize unlimited

     (Bash Sunos increase file handles) ulimit -n 256

With some operating systems BSDI, HPUX, AIX, you also need to increase the KERNAL memory limits, for BSDI this is done with the following commands, these are permanent settings that remain set even between reboots:

        sysctl -w vm.maxssize=90000000
        sysctl -w vm.maxdsize=201326592
or      sysctl -w vm.maxdatasize=201326592

You may need to recompile the kernal as well, here are the
settings you need to change for BSDI:

Add these options to your config file (/sys/i386/conf/FILENAME) :

# Memory Options
options         "DFLDSIZ=\(128*1024*1024\)"
options         "MAXDSIZ=\(256*1024*1024\)"# max size of a process

options         CHILD_MAX=512# max live children per parent
options         OPEN_MAX=256# max number of open files
options         NMBCLUSTERS=2048# raises mbuf clusters (increases the
# amount of virtual memory for network
# buffers)

For most other systems these kernal parameters need to be set in the kernal configuration files before or during the process of building a new kernal.

Here is an example of dnews_start.sh for BSDI

#!/bin/sh
cd /usr/local/dnews
ls -ald /usr/local/dnews
chown news /usr/local/dnews/*
chown news /usr/local/dnews
rm nohup.old
mv nohup.out nohup.old
limit datasize unlimited
limit openfiles 256
limit memoryuse unlimited
nohup ./dnews_start &

Here is an example of dnews_start.sh for Unixware (2.03)

#!/bin/sh
cd /usr/local/dnews
ls -ald /usr/local/dnews
chown news /usr/local/dnews/*
chown news /usr/local/dnews
rm nohup.old
mv nohup.out nohup.old
ulimit -n 256
ulimit -d 60000
ulimit -v 60000
nohup ./dnews_start &

  To test these limits are really removed use the commands:
     tellnews test_mem
     tellnews test_files

You must stop and restart dnews after running these tests. You should see about 200 free file handles and about 30MB or more of memory that can be allocated, if you see less then you haven't removed the limits.

UNIX Upgrading from INN or CNEWS

First, follow the above unix installation instructions, but don't start dnews.

You can copy the following files from you UNIX system:

  active-->/var/spool/dnews/active.dat
  active.times-->/var/spool/dnews/active.times
  newsgroups-->/var/spool/dnews/active.names

Then start dnews, if you want to run both DNEWS and INN at the same time while testing you can even do this, define port in dnews.conf to some port other than 119. (e.g. 1119)

Now if you have enough disk space (2x spool area) then you can import the spool area into dnews, and run it in parallel until you are happy.

      tellnews spool_import /var/spool/news

If you don't have enough disk space to do this, you might just convert a small part of the spool area for testing, e.g.:

      tellnews spool_import /var/spool/news/comp/lang

If you then decide you are happy with dnews and you want to convert the entire spool area, deleting the INN files as they are converted (to create enough space) then you can use the command:

      tellnews spool_convert /var/spool/news

If you do not care whether dnews uses exactly the same item numbers as the INN system then you can add this setting to dnews.conf

         convert_add true

VMS_Installation

1) FTP the files from ftp://ftp.netwinsite.com/pub/netwinsite/dnews/vms/alpha (or /vax)

u extract.com (ascii)

u install.txt (ascii)

u dnews.zip (binary)

u unzip.exe (binary)

2) @extract Extracts the required files from the saveset

6) $ edit sys$manager:systartup_vms.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. e.g.

*.this.place:read,post:::* (by name)
161.23.4.*:read,post:::* (by number)

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 happening 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

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

2. With the above setup DNEWS will automatically suck (pull) news from your provider. To set-up DNEWS to receive a traditional full IHAVE feed you should also refer to Instructions on setting up dnews to take a full IHAVE feed.in the Feeds In section of this manual.

NETWARE 4.x Installation

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-60MB 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 newsfeeds.conf

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.

With the above setup DNEWS will automatically suck (pull) news from your provider. To set-up DNEWS to receive a traditional full IHAVE feed you should also refer to Instructions on setting up dnews to take a full IHAVE feed.in the Feeds In section of this manual.

OS/2 Installation

1) FTP the files from netwinsite.com

ftp://netwinsite.com/dnews/dnews3.XX_os2.zip

2) Unzip the files

pkunzip c:\dtemp\dnews2.XX_os2.zip

3) Run install.cmd to rename files and copy them to the destination (typically c:\dnews), you can edit this script to define the destination first:

e install.cmd

     set config=d:\dnews

Then run the installation:

     install

4) Edit dnews.conf

e dnews.conf

Modify the file DNEWS.CONF to describe your system by defining the following symbols

SYMBOL	EXAMPLE
manager	youremail@your.site
nntp_feeder	news.upstream.site
myname	this.machine.name
diskspace	100 Space available in megabytes.
Confirm	*.this.place Enable email confirmation when item is passed up to a feeder site.

5) Add dnews to the startup folder:

u Double click on OS/2 System

u Double click on Startup

u Right click on any object

u Left click on Create Another

u Change 'New Name:' to DNEWS NNTP Server

u Click on Create

u Set Path to: c:/dnews/dnews.exe

u Set Work Directory: c:/dnews

u Click on Session

u Click on Start Minimized

u Close the dialogue

6) 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 parameter 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)

7) Edit access.conf Grant an ip range access to your users.

e access.conf
   *.this.place:read,post:::* (by name)
   161.23.4.*:read,post:::* (or by number)

8) Start the server by double clicking on the dnews icon in the startup window.

Check the log file and status to see if it's running:

   > cd \dnews
   > dtail dnews.log
   > tellnews status

Now try reading news, it may take a minute or two to fetch the list of groups from your server.

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

With the above setup DNEWS will automatically suck (pull) news from your provider. To set-up DNEWS to receive a traditional full IHAVE feed you should also refer to Instructions on setting up dnews to take a full IHAVE feed.in the Feeds In section of this manual.

Macintosh Installation

DNews is distributed as a self extracting archive dnewsmac2.7ri.sea you double click on this to install the software and choose a location for it in the normal way. This will create a folder in that location called DNews this folder could be placed anywhere but would normally be on your startup disk along with other application folders. If you are upgrading from a previous version of DNews simply replace the two current applications (DNews and TellNews Control) with the new ones. Your current preferences will be maintained.

Quickstart:

1. Run the TellNews Control Application.

u You use this to set various options such as your own IP number.

u You must set the news server you are going to get your news feed from.

2. Then select start to startup the DNews news server.

u You start and stop DNews using the TellNews control application.

u You can monitor memory usage by choosing "About This Mac" from the finder before starting DNews.

u DNews must have sufficient memory to work correctly.

u If you want DNews to always run on startup setup an alias to the DNews application and put it in your startup folder.

3. Run a news reader and try reading news from the DNews server.

4. You can check the status of DNews by using the control application Tellnews. Three useful buttons are:

u Start to start the DNews application

u Stop to close down DNews

u Status to display current status of DNews.

u See the Command menu for other available manager commands.

u Balloon help is available for all the other controls in Tellnews control.

5. There is no 5 it really is as simple as that!

With the above setup DNEWS will automatically suck (pull) news from your provider. To set-up DNEWS to receive a traditional full IHAVE feed you should also refer to Instructions on setting up dnews to take a full IHAVE feed.in the Feeds In section of this manual.

Sizing your system

Are you going to take a full traditional news feed including binaries?

If so then you will need about 1-2 Gig per day of news you want to store, (this is an estimate the volume doubles every 6-12 months).

If you have less than 4000 users, or if your users are very similar (e.g. your users are all from one company and have similar interests) then sucking news may be a good option.

If you plan on more than 100 concurrent users, then using DMULTI will be essential to give good performance. I recommend it above about 50 concurrent users.

For a full feed system:
spool size = days_of_news * 1.5 Gig
ram = spool_gigs * 5 + 32MB + 200K*concurrent_users

So lets take an example of a full feed, with approx 10 days of news and 100 concurrent users.

Spool_size = 15 Gig
ram = 75 + 32 + .2*100 = 32 + 75 + 20 = 120MB
Processor: Pentium 100 or better.

If you exclude binary groups then the spool would be 7Gig.

If you suck news and exclude binaries, then 2-3 gig would be heaps and you could run it on 64MB of ram.

Calculating memory use

This is a rough guide to calculating how much memory dnews will use. This is VIRTUAL memory, you dont' need this much physical memory (but it will go faster if it does :-)

   (Concurrent connections) * 200K
   (Articles in history file - see expire processed) * 12
   (Spool Gig's) * 1MB
   (Max article size accepted) * 2
   (Number of news groups) * 100
   head_cache (default 200) * 3k
   xover_cache (default 3000) * 300
   Program static data 4mb

So lets take a smallish system with 20,000 news groups, 10 concurrent connections, 200,000 lines of history data, 1 Gig of spool, 1MB articles.

   10 * 200K = 2MB
   200,000 * 12 = 2.4MB
   1Gig = 1MB
   1MB Articles = 2MB
   20,000 News groups, = 2MB
   head_cache (default 200) * 3k = 600K
   xover_cache (default 3000) * 300 = 900K
   Program static data = 4mb
   Total memory use = 14.9MB

NOTE you DO NOT NEED THIS MUCH RAM, dnews is designed to deal with multiple full feeds and 100's of users, if you are running a smaller system you don't need all this as REAL ram, that's what virtual memory is for, it just slows down a little.

Typically on a small system where you wish to reduce the memory use you need to look at:

u Total groups

u History remember setting.

u Maximum article size

You can drastically reduce memory use with these settings:

(in expire.conf) remember 4
(in dnews.conf) item_max 200000 (stops large binary items!!!)
(in newsfeeds.conf change your ME feed to only allow groups
that really exist in your country-area)

    site ME
    groups !*,rec.*,comp.*,alt.*,news.*,soc.*,bit.*,bionet.*,sci.*

    tellnews matchfeed
    tellnews purgegroups

(restart dnews to free up the memory)

As a rule of thumb to avoid calculations with unix and NT, create a 100MB swap/page file as a first step. If you are running a big system, then 200mb would be a wise choice.

Where to get DNEWS

Dnews software is available from our website from two directories, the top level is where we put the released versions of

Dnews, and when we release a new version this is where it will appear.

ftp://ftp.netwinsite.com/pub/netwinsite/dnews/

The other directory is the beta directory, this contains beta versions which have new features, bug fixes etc. these versions are available for use at your own risk or on our advice.

ftp://ftp.netwinsite.com/pub/netwinsite/dnews/beta (the latest beta versions of dnews)

This help file was generated from HTML source using WebTwin version 1.1


Untitled Frequently Asked Questions

DNEWS News Server Manual

Managing Your Server

Table of Contents

Introduction

Keys to Managing DNEWS

1. DNEWS Manager

2. Tellnews commands

3. Configuration files an overview

Control Update of News Groups (Suck Feeds):

1. Control Update of News Group list

2. Control Update of News Group Articles

3. Get News Group List Now - Getgroups Command

4. Remove defunct News Groups Now - Matchgroups Command

5. Update Articles Now - Update Command

6. Automatic dial up, fetch news and hang up - Ras_entry Setting

Control Internet News Groups:

1. Control which Internet News Groups are available

Create Local News Groups

1. Create a Local News Group

2. Create a Moderated Local News Groups

News Groups - General:

1. Add a News Group - Newgroup Command

2. Delete a News Group - Rmgroup Command

3. Undelete a News Group - Undelete Command

4. Purge "Deleted" News Groups -purgegroups command

5. Delete an Article - Killitem Command

Controlling Server Access:

1. Control Third Party Access to the Server

2. Control User Access to News Groups on the Server

3. Using Operating System Authorization and Database to Control User Access

4. Support for external authentication on Unix. V4.5d

5. Control Number of Simultaneous Users and Concurrent Connections

Controlling Expiration of News:

1. Control the Number of Days to Keep Caching a News Group not being read - suck feed

2. Control Number of Days to Remember News Articles

3. Control Expiration Rules for News Groups

4. Control When Expiration Process is Run

5. Run an Expire Now - Expire Command

Log Reports:

1. Control Log level

2. View Log Now

3. Understanding Error Messages

Reports:

1. Email address to send daily expire report - manager setting

2. View DNEWS Status Report Now - Status Command

3. Understanding DNEWS Status Report

4. Status Report Now - Report command

5. View Stats on Top 40 groups Now - Stats_groups command

6. View Statistics on Articles since last expire- stats_in command

7. Confirmation of Posts to Users - the confirm setting

Censoring News Articles - Spam Protection

1. Accept/Reject Articles - Cross Posting

2. Accept/Reject Articles - Headers

3. Accept/Reject Articles - Content

4. Accept/Reject Articles - Special - Mime Attachments etc.

5. Serious Spam Protection

Performance:

u General:

1. Controlling Speed of news into your server - max_speed setting

2. Preventing DNS lookups - nodns setting

3. Controlling Number of item headers to keep in memory - head_cache

4. Controlling the maximum size of articles - item_max setting

5. Controlling XOVER Cache - xover_cache setting

u Dynamic Suck/Pull Feeds Only:

1. Control number of items to suck from any group at one time- suck_batchin setting

2. Control number amount to suck from any group at one time - suck_batchsize setting

3. Control how old items can be - too_old setting

Scalability

1. Single Server - DMULTI

2. Multiple Servers

Put News Groups on Your Web Pages

1. Enabling your News to Web Gateway - DNEWSWEB

2. Enabling your Full Text Search Engine

Mail and News Groups

1. Add a News to Mail Gateway and Vice Versa

Add a Real time News Service

1. Clarinews - A commercial news service

Adding PGP to control.conf

1. Add PGP (Pretty Good Privacy)

Useful Utilities

1. GUP - Allows remote management of feeds by downstream site administrator

Introduction:

Apart from the site specific information you provide during setup DNEWS is set to work "straight out of the box". You can install it and virtually forget it. Despite this simplicity DNEWS is highly configurable and offers the news administrator an advanced and powerful range of options and features, allowing the server to be easily configured or tuned to meet specific needs. This manual provides an overview to managing DNEWS and its many features and options.

Keys to Managing DNEWS:

This section introduces DNEWS Manager Graphical User Interface (GUI) , tellnews commands and the six configuration files

DNEWS Manager

DNEWS manager allows you to perform two major tasks, it lets you configure the common settings in the configuration files described below as a nice GUI rather than editing the files directly, and it lets you send tellnews commands to the running news server. A detailed overview of the DNEWS Manager is provided in DNEWS Manager (Windows) Section for Windows and the Tellnews Control (MAC) section for Mac's.

Back to Top

TELLNEWS Commands

Tellnews commands are just typed in on the command line, or with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and then select the tellnews command.

Tellnews commands are used to control and query a running dnews news server, they are actually handled by dnews itself, the tellnews or DNEWS manager process simply creates an NNTP connection to the server and sends through the tellnews command and then listens for DNEWS to send back a response. Tellnews commands are used to:

u Stop the server

u Initiate background tasks like expires or database rebuilds

u Inform the server that it should reload it's configuration files from disk

u Create new local news groups etc...

A complete list of tellnews commands with explanations is provided in the tellnews section of this manual

Back to Top

Configuration Files:

There are six configuration (".conf") files that together provide all the information and rules your news server uses. The *conf files are simple text files and can be edited directly, or on the Windows and Macintosh versions common changes can be made via the GUI interface. The following provides a very brief introduction to the configuration files.

File Name	Description
dnews.conf	This is the main configuration file (found in /etc. or \winnt\system32). Syntax: setting value
access.conf	Access rules in access.conf control nntp (user) access to news groups on your server. Syntax: host:perm:user:pass:groups[:extension settings]
newsfeeds.conf	Defines feeds out of your news system and what news groups to accept and propagate.
expire.conf	Specifies how long to keep news items on your server. Syntax: UPTO x% GROUPS wild KEEP n DEFAULT n PURGE n MAXITEMS n MINITEMS n UNREAD n
moderators.conf	Defines where to email items for moderated news group Syntax: group(s) moderators_email_address
control.conf	Defines how to process control messages for auto creation and deletion of news groups . Syntax:message_type:email_address:groups:action

Finding the configuration files:

dnews.conf is the main configuration file, and you can't move it from it's built in directory which is:

Windows NT /winnt35/system32/dnews.conf (system dir)

Unix /etc./dnews.conf

All other configuration files will be in the config directory defined in dnews.conf

Dnews.conf

This is the main configuration file. When you first install DNEWS you are prompted for some site specific information which is added to dnews.conf . The file includes the name(s) of your feed site(s), the path to send mail on your system, when to run expires etc. All lines in the dnews.conf file follow the same syntax:

Syntax: Setting Value

A full list of dnews.conf settings with explanations is provided in the *.conf section. of this manual.

Newsfeeds.conf

This file controls feeds out of DNEWS to other sites, it defines the sites to feed news to, what news groups to feed to each site (including the sites you receive news from), the type of feed (e.g. builtin, live, uucp or program) and the NNTP command used to send items (e.g. post or IHAVE).You can also exclude news received from one site from being sent to any specific site. For your main feed DNEWS will automatically set the exclude setting to prevent the system trying to send every article that comes in back to the feeder site.

The newsfeeds.conf file also controls what groups will be allowed 'into' DNEWS via the special "ME feed" parameter. This must be the first entry in newsfeeds.conf. and defines which groups will be accepted from any feed(s) into DNEWS. Also in this file you can set specific accept/reject rules to automatically identify and remove Spam articles. A complete list of settings in newsfeeds.conf with explanations is provided in the *.conf section.

Access.conf - Powerful and tricky!

The access.conf file is very powerful, it can be used to control access to your server in many different ways and as a result it is also tricky to use. The main source of confusion comes because of two features, first the file is passed twice, once when a user connects, and a second time when/if they supply a password. The second tricky bit is that the 'last' matching rule in the file is used. So the order of rules is very significant.

Access.conf allows you to do all of the following:

Allow ip numbers/names access
Allow users name and password access
Allow read and post protection separately

Allow DNEWS Manager/Tellnews commands

Allow incoming IHAVE feed

A complete listing of access.conf settings with explanations is provided in the *.conf section of this manual.

All access rules in access.conf have the following Syntax:

Syntax:

host:perm:user:pass:groups [:extension settings]

Parameter	Value (Example)	Description
host	*.my.domain 161.29.4.*	A wildcard (*), name or number, this rule is only used if the connection matches this address
perm	Read, Post, Ihave,logoff	Allow any combination of reading posting or IHAVE feeding from this site.
user	chrisp	Some news readers can send a user name, if so then it will be matched here, and the password can be checked.
pass	rumplestiltskin	The password in plain text.
groups	*,!*.erotic.*	Allow access to groups matching this wild card.
extensions	con=3	Limit individual ip addresses to 3 simultaneous connections
extensions	users=20	Limit the users in this domain to 20 concurrent users
extensions	con=3,users=20	If both settings are set separate with a comma, not a colon
Example _Extract access.conf file:

*:logoff:::* (Read - Immediately close a connection from anyone )

*netwin.co.nz:read,post::*,!*sex* (read - Allows users from our domain "*netwin.co.nz" read and post access to any newsgroup except ones with the word anythingsexanything in the name. Note: There is no username, password or extentions in this example.

Expire.conf - Intelligent Expire settings

Expire.conf contains the expiration rules which together determine how the server will expire news items. DNEWS allows intelligent and flexible expiration rules, so more news is deleted as free disk space shrinks. Groups can be limited by ‘number of articles’ rather than age, busy news groups are trimmed and manageable. Light news groups become useful again. The Result is Management time is reduced and the news service is improved. A detailed description of the settings in expire.conf with explanations is provided in the *.conf section. of this manual.

Control.conf - How newsgroups get created

The control.conf file defines how your server will deal with control messages.

Who really runs NEWS? Who creates news groups, once a new group is approved how is it created on 10,000 news servers all over the world?. The control.conf file is the key to this. It specifies who else in the world is allowed to create newsgroups on your news server.

Control messages are just like normal news messages, except they have a special header:

Control: newgroup rec.humor.really.funny

When DNEWS receives a control message it is checked against the control.conf file. The last matching rule is used to decide what to do. The possible actions include logging the message to a file, for editing and batch processing, emailing it to the news administrator, throwing it away or actioning it. The action will normally vary depending on who the control message is sent by and what news groups it relates to. PGP (Pretty Good Privacy) may be implemented to confirm the integrity and identity of the message and sender respectively. A detailed review of settings in control.conf with explanations is provided in the *.conf section.of this manual

Back to Top

Control Update of News Groups (Dynamic Suck Feed Option Only)

A Dynamic Sucking Feed periodically fetches the news articles in those news groups that are actively read by your users and updates its listing of available news groups. This section explains how to manage the timing and frequency of this update process.

Control Frequency of Updating Groups List?

Your Suck feed will obtain a list of groups from your upstream server automatically and display these to your users to select from. As new groups are being added and deleted on an ongoing basis DNEWS by default updates this list daily. To change the frequency of update amend the groups_at setting in dnews.conf.

The groups_at setting defines when the server will get the names of any new news groups and add them to its list of available news groups.

Basic Syntax: groups_at minutes hours

Examples:

groups_at 45 1 (This is the default setting and gets the names of any new group once per day at 1:45am)

groups_at 45 1,13 (This setting would get the names of any new group twice per day at 1:45am and 1:45pm)

groups_at *5 5-10 (This setting would get the names of new groups every five minutes between 5 and 10 am)

If you don't have a permanent connection to the Internet you should disable the automatic update by entering an invalid time in the groups_at command, as it can take some time to update the groups over a modem.

Example: groups_at 999 999 (999 999 being an invalid minutes and hours)

You can manually get DNEWS to update its list using the command tellnews getgroups to ensure DNEWS has an uptodate listing.

Back to Top

Control Update of News Group Articles

To change the frequency your server updates articles amend the update_at setting in dnews.conf . The update_at setting defines for a suck feed when the server will fetch new articles for cached groups.

Syntax: update_at minutes hours

Examples- Extract dnews.conf file:

Ex1. update_at *5 17-7 (This example would update articles every 10 minutes from 5pm to 7am)

Ex2. update_at *5 * (This example would do updates every 10 minutes )

Ex3. update_at 20,40 * (The default setting used here updates twice an hour, which should be plenty)

On Windows from DNEWS Manager select "Main Options" , select "Advanced", and enter the desired values in the "Update at " minutes and hours fields.

Back to Top

Get News Group List Now - Getgroups Command

The Getgroups command is used with a sucking feed to manually tell the server to get the list of news groups from the provider and add any new groups to its own groups list. If there are more than 300 groups cached , DNEWS will do this automatically every update_at period. If there are less than 300 groups cached, it will do this automatically once per day. So the command is not normally used.

Syntax: tellnews getgroups [n]

Example: tellnews getgroups 3

It can be used to get the groups list from additional feeds by specifying 2, 3, or 4 as n. This has to be used when you add an additional feed to DNEWS.

When you first start up DNEWS it, will try to get the full list of groups automatically, but if it fails on the first attempt (owing to some temporary problem; for example, you forgot to plug in the Ethernet cable :-)), then use this command to force it to fetch the list again.

Tellnews commands are just typed in on the command line, with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the command "getgroups" command.

Back to Top

Remove old News Groups Now - Matchgroups Command

This command is similar to the Getgroups command, but instead of just adding missing groups, this command also removes groups that no longer exist on the site you are sucking news from. Groups will be deleted if they match the wild card in dnews.conf for that feed. In this way local groups should not be deleted. You can always use the 'undelete' command to recover groups if they are deleted incorrectly.

Syntax: tellnews trimgroups

Tellnews commands are just typed in on the command line, with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the command "matchgroups" command.

Back to Top

Update Articles Now - Update Command:

The update command is used to manually queue the server to update the articles from the specified feed. Used only for sucking feeds news items in any cached groups will be fetched. Remember DNEWS automaticallyy updates articles periodically based on the update_at setting in dnews.conf.

Syntax: tellnews update [n]

Examples :

tellnews update (updates articles from your main feed)

tellnews update 3 (updates articles from your 3rd suck feed)

Tellnews commands are just typed in on the command line, with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the command "update" command.

Note: prior to 4.5e the syntax of this command was: tellnews updateN, now the syntax is tellnews update N

Back to Top

Automatic dial up, fetch news and hang up - Ras_entry Setting

If you are have a dial up line to the Internet you can on Windows have DNEWS automatically dial up, fetch news and then hang up on its own. This allows you to update your news groups automatically at off peak times. All you do is Edit the dnews.conf file adding the line:

ras_entry AOnline

"AOnline" should be the text name of the RAS phone book entry you wish to dial. On NT Start up 'Dial Up Networking" to see the list of entries in your phone book.

On unix you can implement a similar system using the tellnews command 'isbusy' and a script to dial up your provider, initiate an update, and then disconnect when tellnews isbusy returns false.

Back to Top

Control Internet News Groups

USENET News Groups provide a valuable resource. However there will be many USENET News Groups that you do not need or possibly want on your server. This section explains how to control which news groups appear on your server.

Control which Internet News Groups are available on your server

There are a very large number of Internet news groups ( A list of the top level hierarchies is maintained on the web at http:/home.magmacom.com/~leisen/master_list.html). While some people think more is better the reality is having thousands of foreign or local or inane news groups listed doesn't help your users read news.

To exclude news groups amend the "site me" setting in newsfeeds.conf

Essentially you list the group names you want or use wildcard * to select multiple groups. And list those you don't want by putting ! = don't allow or @ = don't allow this or anything cross posted to it. Using @ instead of ! is useful as it will stop some innappropriate cross posts. Frequently if you don't want particular groups you don't want to see articles posted to them even if they have been crossposted to other groups you do want.

The default setting in newsfeeds.conf is:

site me

*,!*.binaries.* ( read - accept all news groups, but don't accept news groups with that match anything.binaries.anything )

Examples:

* (Allow all news groups)

*,!*.binaries.* (This is the default - Allow all groups but don't allow those matching anything.binaries.anything)

*,!alt.*,@*.binaries.* (Allow all groups, don't allow those matching alt.anything and don't allow those matching anything.binaries.anything and don't allow articles crossposted to anything.binaries.anything)

groups rec.*,alt.*,news.*,comp.*,biz.*,misc.*,sci.*,soc.*,talk.* (Allow only the groups matching this listing)

We recommend that you use something like the last option which picks up most of the standard news trees.

On Windows from DNEWS Manager select "Feeds Out", select "ME feed" ,and amend the "groups" field.

Back to Top

Local News Groups:

Local News Groups or Discussion Forums are today widely used by organizations for internal communications and document sharing. The efficiency with which they open communications, support collaboration and overcome geographical constraints of time and distance are making them an increasingly common place element of organizations communication systems. Local News Groups are often a more efficient solution than mailing lists, and often used in conjunction with mail and web technology. This section describes how to create and control your local discussion groups with ease.

Creating a Local News Group

To create a new group you use the tellnews newgroup command.

Syntax: tellnews newgroup <groupname> [y |m] [creator] [description]

Example: tellnews newgroup here.chat y myname Local group for chatting

Here is a detailed breakdown of each of the parts of the above command.

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.

On Windows from DNEWS Manager select "COMMANDS" then select the "NEWGROUP" command and complete the appropriate fields.

Preventing posts to local groups being posted to the Internet:

To ensure local news postings don't get transferred to the Internet you would want to exclude all local groups from being posted to your feeder site. To do this you should change the groups line in your newsfeeds.conf file to exclude the local groups. For example to stop the groups here.chat and all the groups here.secret.anything or any articles cross posted to here.secret.anything from being sent to your feed site in newsfeeds.conf we would change:

site $nntp_feeder
groups *

to

site $nntp_feeder
groups *,!here.chat,@here.secret.*
(note: ! means "not this" while @ means "not this or anything cross posted to this")

On Windows from DNEWS Manager select "Feeds Out" and select $nntp_feeder and amend the groups field as above.

Preventing DNEWS from trying to suck your local groups from your feed site:

This is not critical but it is recommended you prevent your server from trying to suck your local groups from your feed site. It is more efficient and allows you to use the Matchgroups command properly without having to undelete your local groups.

In dnews.conf modify your nntp_feeder line to exclude local groups. In this example we have assumed all local groups match "here.chat" or "here.secret.anything"

nntp_feeder myfeedsite

to

nntp_feeder myfeedsite *,!here.chat,!here.secret.*

(This is read suck all groups from my feed site but not groups with names that match here.chat or here.secret.anything)

Windows from DNEWS Manager select "Main Options" and select "Sucks"and amend the "These groups" field as above.

 Naming Local News Groups:

You can name your local groups however you like. It is useful to adopt a single convention so your local group names are unique, easily identifiable as local and identifiable with the section of the organization they will be used by.

Syntax: xxx.yyy.zzz.aaa.bbb. etc.

Examples:

netwin.usa.ho.directors

netwin.usa.ho.sales

netwin.usa.ny.sales

netwin.product.support

Back to Top

Creating a Local Moderated News Groups

Where a group is moderated all articles posted to that group are emailed by DNEWS to the moderator who then if he deems it appropriate posts them to the news group. You must tell dnews the news group name and email address of the moderator.

Lets say your company name is 'Genesis' and you want a local moderated group for announcing major company decisions, lets call the group "genesis.announce"

First create the moderated group using tellnews (or dnews manager)

tellnews newgroup genesis.announce m theboss Company Announcements

Then add one line to moderators.conf to send any messages posted to this group to the person who is going to 'moderate' this group. The new line must go above the default rule.

Example - Extract moderators.conf

genesis.announce:secretary@genesis.com (read - for articles posted to the group genesis.announce email them to the moderator at secretary@genesis.com)
*:%s@uunet.uu.net

Lastly you MUST have an SMTP gateway defined in your newsfeeds.conf, you should already have this as it was entered during the setup process, but check in newsfeeds.conf to make sure you do. It should look like this:

Example - Extract newsfeeds.conf:

site name_of_your_mail_server
smtp

To add an SMTP Gateway On Windows from DNEWS Manager select "Feeds Out" select "Add" in the "Feed Name" field enter the name of your mail server and then select the "this is really the smtp gateway" indicator

Now you are all set, the moderator will receive all posts via email, he must then add an Approved: header line to the message before re-posting it to the news group. This can be done with FreeAgent, see the FAQ for details.

Back to Top

News Groups - General

This section describes how to add and delete news groups, and how to delete news articles.

Add a News Group - Newgroup Command

Your News server will only accept articles for news groups it knows about. The Newgroup command is used to manually add a new group to the list of news groups on your server. This can be a local group or a new group from another feed site, or a group from the upstream feed. The optional y or m field is to set the group as normal (y) or moderated (m), the optional creator field is a one word name of the groups creator, the optional description field is a few words describing the group.

Syntax: tellnews newgroup <groupname> [y |m][creator][description]

Example: tellnews newgroup local.bicycle.rides y eddym Info about bike rides in our vicinity

Tellnews commands are just typed in on the command line, with the Windows from the DNEWS Manager interface select "commands" and select the "newgroup" command.

Back to Top

Delete a News Group - Rmgroup Command

The Rmgroup command allows you to remove news groups from your servers groups list. Rmgroup Command flags the specified group(s) as deleted. This is a clean way to delete a group and if you make a mistake, you can undelete it. The expire process will delete the items in the now deleted groups in accord with your normal expire rules, so this may take several days or weeks.

Deleted groups will remain deleted unless a control message is received to recreate them or you undelete them using the undelete command.

Syntax: tellnews rmgroup <group name>

Example: tellnews rmrgroup "local.secret*"

Tellnews commands are just typed in on the command line, with the Windows and Macintosh versions from the DNEWS Manager interface select "commands" and select the "rmgroup" command.

Back to Top

Undelete a News Group - Undelete Command

This command is used to undelete a group previously flagged as deleted using the rmgroup command.

Syntax: tellnews undelete <group wildcard>

Example: tellnews undelete "local.secret*"

Tellnews commands are just typed in on the command line, with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the "undelete" command.

Back to Top

Purge "Deleted" News Groups -purgegroups command

This command allows you to purge from your system records all those groups that have been flagged "delete" in the system with the rmgroup command. You must stop and start dnews after using this command. If you use this on a sucking feed and the deleted groups exist on the site you are sucking from, then the groups will re-appear.

Syntax: tellnews purgegroups

Back to Top

Delete an Article - Killitem Command

This command allows you to delete an item in a news group. The item is difined either by its message ID or by a combination of its number and the group it is in. This information can be found by using a news reader (eg WinVN) that shows the article numbers. Killitem is usually used for removing inappropriate postings from private local groups. The Message-ID of a message can be found by clicking on 'show all headers' in any news reader.

Example: tellnews killitem "<234532.34@netwin.co.nz>"

Tellnews commands are just typed in on the command line, with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the "killitem" command.

Back to Top

Controlling Access to the Server and News Groups

DNEWS supports a full range of options to manage user access. This section describes how to control who has access to which news groups on your server and the type of access they will have.

Control third party access to your server?

Access to your server is controlled by the access.conf file.

The Syntax for access rules in access.conf:

address:access_type:username:password:groups

DNEWS will by default try and put an appropriate rule in access.conf to prevent outsiders from accessing your server as follows:

The entry should look like this:

Example - Extract access.conf file:

*:logoff:::!*

161.29.2*:Read,Post:::*

*netwinsite.com:Read,Post:::*

"*:logoff:::!*" is read - any address log them off and don't allow access to any newsgroups. There is no user name or password requirement.

The next two lines have the same effect, and are read - allow anyone from the address 161.29.2.* (or Domain Name- netwinsite.com) to read and post articles to all groups. Both lines are put in incase your DNS is not working. Again there is no user name or password specification in this example. On NT the reverse DNS translation is disabled by default so you might want to enable it if you want access.conf to work for 'names' as well as numbers.

The order of the rules in the access.conf file is important, the server applies the last matching rule to decide if it will allow access or not.

On Windows from DNEWS Manager, select "Users & Feeds In" to view, select "add" to add a new access rule or select a feed them select "modify" to modify an exiting rule or "delete" to delete a rule.

Back to Top

Control User Access to News Groups

DNEWS allows you to control access to your to news groups by IP name, IP number and/or user name and password.

Unlike other news implementations, you can permit reading and posting to different combinations of newsgroups; for example, you may want a group of employees to be able to read all news groups but to only be able to post to local newsgroups.

On most operating systems you can user the Operating Systems Authorization mechanism to validate users. For instance on Windows NT you can use NT Authorization to look up users via the NT user database. See the setting $lookup$ for details. This is often the best approach if you have a lot of users and you want to use individual usernames and passwords.

You can limit the number of concurrent users from a particular domain or number of simultaneous connections from individual IP addresses within a domain.

The access.conf file controls access to your server. The syntax for all access rules in the access.conf file is as follows:

Syntax:

IP Names or Numbers:Access types:UserName:Password:Groups:Extention Settings

(read- for these IP names or numbers: provide this access:if they provide this username and this password: to these groups: and apply these extentions)

"IP Name or Number" - List IP Names or Numbers separated by ","or Use wildcard "*" to specify a group of IP Names or Addresses to apply the access rule to. e.g. 161.29.2.*

"Access Type" - Specify Type of Access to allow, Read and/or Post or Logoff. eg Read,Post

"UserName" - Specify UserName (if any)

"Password" - Specify Password (if any)

"Groups" - List the groups you want to allow access to separated by "," and list the groups you want to exclude access to using "!" in front of the group name. Use the wildcard "*" to match ranges of groups. e.g. *,!*.binaries.*,!netwin.secret.*

"Extensions" - These are optional and allow you to limit the number of concurrent users and or connections allowed.

Remember: The order of the rules in access.conf is important, as the server applies the last matching rule to determine if a user has access, so remember to put defaults at the top not the bottom:

On Windows from DNEWS Manager select "Users and Feeds In", select "Add" to add a new rule or select a rule and select "Modify" to modify the rule or "delete" to delete the rule.

Example 1: This example illustrates how to control access to specific groups by utilizing IP names or address's. In this case we give all our users access to all groups except our secret local groups. And we give IP number 161.29.2.10 access to all groups including our secret local groups.

Entries in access.conf:

*:logoff:::!* (This is a General default rule. Read - any address log them off and don't allow access to any news groups)

161.29.2*:Read,Post:::*,!netwin.secret*

*netwinsite.com:Read,Post:::*,!netwin.secret*

(This is a General default rule. As noted above these two lines have the same effect. Read - for any of our users identified by matching the first part of the IP name or number allow access to all groups , in this case we have modified it by adding ,!netwin.secret* to the groups field, which the server reads - but don't allow these addresses access to groups with netwin.secretanything in the name header)

161.29.2.10:Read,Post:::* (This is a Specific rule. Read for IP 161.29.2.10 allow access to all groups including secret ones)

On Windows from DNEWS Manager on NT,

Step1: select "Users and Feeds In", select the general default to modify, select "Modify" to modify the rule. In the "Groups" field add ,!netwin.secret* modify the rule. Modify both the IP name and IP number defaults .

Step2: select "Users and Feeds In", select "Add" to add a new rule. In "User/Feeds" field enter 161.29.2.10, in the "Groups" field enter *, Select the "Read" and "Post" access boxes.

Example2:

This example illustrates how to restrict access by utilizing user names and passwords. In this case all our users are given access to all groups except the local secret groups. Access to all groups including secret groups is provided to users supplying the username "steve" and password "secret".

Entries In access.conf file:

*:logoff:::!* (General Default Rule. Read - any address log them off and don't allow access to any news groups)

161.29.2.*:Read.Post:steve:secret:* (Specific Access Rule. Read - for any IP that matches161.29.2.anything allow access to all news groups if the username "steve" and password "secret" are supplied)

161.29.2*:Read,Post:::*,!netwin.secret*
*netwinsite.com:Read,Post:::*,!netwin.secret* (General Default Rules. Read - for users with IP name or numbers matching allow access to all groups except local secret groups)

Important Note: there is a bug in Netscape 1-3 New Reader Software that requires an additional modification to the above. If you specify in any access rule a group of IP numbers with a user name and password. Netscape will require a user name and password to be entered by every IP number included in the specified group.Netscape reads the last rule "For every IP address matching 161.29.2.anything I must have a user name and password, if the user name and password is "steve" and "secret" then I will give access to all groups if they don't provide a user name and password I won't provide access at all..

To allow for this behavior for Netscape, you need to add an additional access rule and provide your users with a general username and password. In this example General Username = netwin and General Password = news

Example:

*:logoff:::!* (General Default Rule. Read - any address log them off and don't allow access to any news groups)

161.29.2.*:Read.Post:steve:secret:* (Specific Access Rule. Read - for any IP that matches161.29.2.anything allow access to all news groups if the username "steve" and password "secret" are supplied)

161.29.2*:Read,Post:netwin:news:*,!netwin.secret*
*netwinsite.com:Read,Post:netwin:news:*,!netwin.secret* (General Default Rules. Read - for users with IP name or numbers matching allow access to all groups except local secret groups)

Example 3: In this case lets assume we want to set up access.conf to:

a. give everyone in the world read only (not post) access to all groups but not local groups.

b. give local users with the password "jelly" and username "jane" access to read and post to all news groups, but not local secret news groups.

c. give everyone with the password "secret" and username "mrtop" access to read and post to all groups including local secret groups.

Extract access.conf:

*:logoff:::!* (This line is read - log off anyone and don't give access to anygoups. It is not required at all in this example and only left in here to highlight that because DNEWS applies the last matching rule it would ignore this line anyway as the next line *:read:::*,!local.* becomes the general default rule.)

*:read:::*,!local.* (Read - give everyone read access to everything except local groups)

161.29.2*:Read,Post:netwin:news:*,!local.*
*netwinsite.com:Read,Post:netwin:news:*,!netwin.* (General Default Rules. Read - for local users with IP name or numbers matching allow access to all groups except local secret groups. Note they need to supply the username "netwin" and password "news")

161.29.2*:Read,Post:jane:jelly:*,!local.secret* (Read - for local users with username "jane" and password "jelly" give read and post access to everything except any groups with the name local.anything.)

161.29.2*:Read,Post:mrtop:secret::* (Read - Give Local users with the username "mrsecret" and password "top" read post access to all groups)

Back to Top

Using Operating System Authorization database to Control User Access:

To use your operating system Authorization database to Control User access in your access rules set <user> as "$lookup$" and <password> as "$lookup$" then your operating system Authorization is used to lookup users via the Operating systems Database.

In access.conf you should add an access rule like this:

Example: your.ip.range.*:read,post:$lookup$:$lookup$:*

(read - for your ip range allow read and post access if user name and password are correct to all groups)

At the same time you must add to dnews.conf the line:

auth_case true

This tells DNEWS to be case sensitive when testing user names and passwords as NT username/passwords are case sensitive and by default DNEWS is not case sensitive.

Back to Top

Using external authorization database on unix. V4.5d

DNEWS provides external authentication support for Linux, FREEBSD, Solaris. See the file libauth.c - this file provides a Sample dynamic link library for Unix authorization. Use the procedure libauth.sh to build the shared library.

In dnews.conf you need to define:
auth_dll true

You need to implement a function that accepts these parameters
Inputs: ipname, ipnum, user, pass
Output: postgrps, readgrps, msg,
int auth_user(char *ipname, char *ipnum, char *user, char *pass ,char *postgrps, char *readgrps, char *msg, int bfsz);

Example Skeleton code:
*/

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <time.h>
int auth_user(char *ipname, char *ipnum, char *user, char *pass ,char *postgrps, char *readgrps, char *msg, int bfsz);
#ifndef TRUE
#define FALSE 0
#define TRUE (!FALSE)
#endif

int auth_user(char *ipname, char *ipnum, char *user, char *pass
,char *postgrps, char *readgrps, char *msg, int bfsz)
{
strcpy(msg,"");
if (strcmp(user,"chrisp")!=0) return FALSE;
if (strcmp(pass,"test")!=0) return FALSE;
strncpy(postgrps,"*",bfsz); /* Give full access to all users */
strncpy(readgrps,"*",bfsz); /* Give full posting access */
/* The msg paramter is used to return any error information */
/* postgrps and readgrps are bfsz bytes long (about 1500 bytes)*/
return TRUE;
}

Back to Top

Access Extentions: Limiting the number of concurrent connections or simultaneous users :

These extentions to access rules in access.conf allow you to limit the number of simultaneous connections from one IP and/or concurrent users from one domain. This can be useful to control users where you a selling a user or group of users a specific service.

The basic syntax for all access rules in access.conf is:

IP Names or Numbers:Access types:UserName:Password:Groups:Extention Settings

Extensions:

con=n (read - limit the number of concurrent connections from this IP to n)

users=m (read - limit the number of simultaneous users from this domain to m)

con=n,users=m (read - limit the number of concurrent connections from an IP address to n and limit the number of simultaneous users from this domain to m)

Example:

161.29.2*:Read,Post:::*,!netwin.secret*:con=3,users=20

(read - for the domain 161.29.2.* allow read and post access, there is no user name or password required, to all news groups except netwin.secret.anything but don't allow any single IP number in this domain to have more than three concurrent connections and don't allow more than 20 users from this domain to connect at any one time.)

The extension settings can get complex because they are not applied strictly by order like other settings. This is because in both cases the extension rule is affected by other users so the logic cannot be worked out by a single parse of the file. As a result you cannot limit the number of concurrent users to overlapping ip ranges, for example:

*:read,post:::*:users=2
*netwinsite.com:read,post:::*:users=10

Would NOT work, because the limit of '2' would apply to everyone not just netwinsite.com users.

Complex access.conf example:

Here is a more complex example that would work: In this example we have two domains, 161.29.3.* and 161.29.4.*, one of which can have 50 concurrent users, the other 10, both are limited to 5 connections per reader to prevent a single reader hogging the system. We also have a username and password for the 'sex' groups. "naughty,secret", and two users have access to a private news group "netwin.private"

*:logoff:::*
161.29.*:read,post:naughty:secret:*,!netwin.private
161.29.*:read,post:joe:secret2:*,!*sex*
161.29.*:read,post:fred:secret3:*,!*sex*
161.29.3.*:read,post:::*,!*sex*,!netwin.private:users=50,con=5
161.29.4.*:read,post:::*,!*sex*:!netwin.private:users=10,con=5

Back to Top

Control Expiration of News :

DNEWS expire capabilities are very flexible and allow the server to respond intelligently to large fluctuations in news volumes, changes in available disk space, and the numbers of articles in groups. Different expire rules can be set for different news groups. This section describes how to control what and how news articles are expired.

Control the Number of Days to Keep Caching a News Group not being read - suck feed

The number of days your server will continue to cache a news group so that it will continue fetch the group from the upstream server after someone reads an article in it is set in dnews.conf. It is a global setting in dnews.conf and applies to all groups. A common mis conception is that this is how many days items will be kept for IT IS NOT, this setting is how many days the group will be fetched.

Syntax: life n

Example:

life 30 (Where n= 30 days) Read - continue fetching a news group for 30 days after someone reads an article in it.

Control Number of Days to Remember News Articles

The number of days your server will remember it had an article is set in expire.conf . It is a global setting and applies to all groups on the server. The value of this setting is that it ensures if you receive the same article a second time, even if it has already been expired on your system, the server will not accept it. This setting is in expire.conf not dnews.conf

Syntax: REMEMBER d

remember d (Where d = number of days) Read - Remember we 'had' an article for d days. The default is 7 days. i.e. remember 7

Back to Top

Control Expiration Rules for news groups?

A feature of DNEWS is the flexibility it allows in specifying how and when articles will be expired and the ability to create rules that respond "intuitively" to available disk space and/or numbers of articles.

DNEWS allows you to set expire rules separately for different news groups and to have different rules applying depending on currently available disk space. So as space becomes short rules can be automatically modified to become more stringent. It also allows you to specify maximum and minimum article numbers this allows separate rules to apply to low volume or high volume groups.

All Expiration Rules are contained in the expire.conf file

The default expiration rules should be general enough to work on any system, but you may need to tune them if you have specific needs or want to add different rules for some groups.This can be done by Editing the expire.conf file.

Expire rules have the following syntax:

DISKUSE x GROUPS list KEEP d DEFAULT d PURGE d MAXITEMS n MINITEMS n

diskuse x (where x =%of_total diskspace DNEWS is allowed Measured in megabytes. ) This Must start each line. Read - while disk use is less than x % of available space apply this expiration rule.

groups list (where list = list of news groups these rules apply to. You can use the * Wildcard to indicate all news or a selection of groups eg alt.*. Where you list news groups they should be separated by comma's with no spaces eg alt.*,*.binaries.*. Read - apply this rule to news groups matching this list of group names.)

keep d (Where d = number of days) Read - keep articles for n days even if expired header disagrees.

default d (Where d = number of days) Read - keep items for n days unless expire header sais otherwise. This is the main setting you should adjust together with 'maxitems' below.

purge d (Where d= number of days) Read - delete after n days even if expired header disagrees

maxitems n (Where n = number of items)Read - delete oldest items until there are less than n items in each of these groups.

minitems n (Where n= number of items) Read - don't apply date rules until there are more than n items in each of these groups

The following shows the default rules in your expire.conf .

Note: For a full feed, you need to have gaps between normal and panic which are AT LEAST as big as one days feed. (e.g. 300-1200 Megabytes.)

Notes:

1.The order of rules is important: The LAST matching expire rule with correct diskuse is applied so put defaults at the top. NOT the bottom.

2. Comments are indicated by #

Example: Expire.conf

# How many days to keep entries in the history file:

remember 7

# If we are way over. (this must be here or no rules match past 90%!!!. For example this might occur # if you change your total diskspace allocated for dnews from 1000MB to 100MB):

upto 10000% groups * keep 0 default 1 purge 10 maxitems 0 minitems 0

#(The server reads this - if none of the following diskuse rules apply maxitems sais delete all items in #all groups.)

# Start to panic a lot
upto 110% groups * keep 0 default 1 purge 2 maxitems 2 minitems 0
upto 99% groups * keep 0 default 1 purge 10 maxitems 10 minitems 0

#The first line is read - when disk use is less than 110% but more than 99% for all groups.By default #keep all items for one day unless the expire header disagrees. Purge all items after two days even if #the expire header disagrees. Delete oldest items until there are less than 2 items in all groups.

# Start to panic a little
upto 90% groups * keep 0 default 2 purge 33 maxitems 100 minitems 0

# The above expire settings deal with situations where available memory is getting very short.

#The following settings deal with Normal operating conditions.

#Settings for min and max items are a matter of taste, remember some older news readers don't deal #with large numbers of items very well.

upto 85% groups * keep 0 default 5 purge 33 maxitems 200 minitems 5
upto 80% groups * keep 0 default 10 purge 33 maxitems 500 minitems 5
upto 75% groups * keep 5 default 20 purge 33 maxitems 1000 minitems 20

#The server reads the last line - if the disk is between less than 75% but more than 60% apply these #rules to all groups. ie keep all items for 5 days even if the expire header sais otherwise,default sais #keep all items for 20 days unless expire header sais otherwise. Purge sais delete all items after 33 #days even if expire header sais otherwise. Delete oldest items in these groups until there are less than #1000 items. In groups with less than 20 items don't apply date expire rules.

upto 60% groups * keep 5 default 30 purge 33 maxitems 2000 minitems 100

# The following rules deal with the the situation where there is lots of space available and we just stop # things getting silly (e.g. 10000 items in...)

upto 30% groups * keep 5 default 30 purge 33 maxitems 3000 minitems 200
upto 20% groups * maxitems 2000

# The following rule might be added for local groups which you may want to to keep forever for #example:

upto 1000% groups local.* keep 9999 minitems 99999 maxitems 999999

Back to Top

Control When Expiration Process is Run?

The expire_at setting in dnews.conf defines when the server will run the expire process, to expire articles in accordance with the expiration rules.

Syntax: expire_at mins hours

Examples: In dnews.conf

expire_at 12 2 (This is the default setting: Read - Run Expire once a day at 2:12 a.m.)

expire_at 10 2,14(Read - Run Expire at 2:10 am and 2:10 pm)

expire_at *5 2-5 (Read - Run Expire Every 10 minutes between 2 and 5 am)

 Back to Top

Expire Now - Expire Command

This command is used to force an expire run. This might be necessary if something had prevented normal expire runs from working and after fixing the problem you wish to start an expire run immediately to free up disk space. The expire run will begin as soon as the current entry in the sucking queue has completed.

Syntax: tellnews expire

Tellnews commands are just typed in on the command line, with the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" then select the "expire" command.

Back to Top

Log

This section describes DNEWS log.

Control Log level - loglvl command

The loglvl command in the dnews.conf file allows you to change the level of logging as desired. There are four log levels:

Error - The log shows serious errors only.

Warn - The log shows serious errors and provides warning messages.

Info - In addition to warning and error messages the log provides useful information about what the server is doing. This is the default setting.

Debug - Used for debugging

Flush - This is the same as debug except the log file is flushed with every single line written; this is useful if the system is crashing but not providing a stack dump.

Syntax: tellnews loglvl error/warn/info/debug/flush

Example: tellnews loglvl warn

Tellnews commands are just typed in on the command line. With the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" then select the "loglvl" command.

Back to Top

View Log Now - log command

The log command returns the last 50 lines of the dnews.log file which contains all log information.

Syntax: tellnews log

Tellnews commands are just typed in on the command line. With the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the "log" command.

Back to Top

Reporting

DNEWS provides a variety of operating and performance information. This section describes how to obtain and read operating reports.

Email address to send daily reports - manager setting:

The manager setting in dnews.conf gives the server the email address you want the daily report emailed to. DNEWS asks for this during the setup process.

Syntax: manager system@here.this.place

(On Windows from the dnews manager select Main Options and enter email address. Then select write changes and reload)

The Daily Expire Report Shows all the informations from the tellnews status, tellnews stats_groups and tellnews stats_in reports discussed below.

Back to Top

View DNEWS Status Report Now - Status Command:

The status command returns the DNEWS Status Report which details the status of the system.

Syntax: tellnews status

Tellnews commands are just typed in on the command line. With the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and then select the "report" command.

Back to Top

 Understanding DNEWS Status Report:

The following shows a typical status report and includes explanatory comments

Extract DNEWS STATUS REPORT

General Section:

200 161.29.2.10 DNEWS Version 4.2j, S0, posting OK

"200" - This is the NNTP response received from the server.200 means the server is ready #and posting is allowed.

"161.29.2.10" - This is the IP address of the server running DNEWS.

"DNEWS Version 4.2j " - This is the Version of DNEWS running.

"S0" - If you are running DMULTI this tells you which slave you are talking to e.g. 0,1,2,3,... # slave 0 is the DNEWS Master.

"posting ok" This tells you posting from your IP address is ok.

License Section:

483 Temporary license expires after 31-Aug-97
483 Please read LICENSE.TXT for registration information

This Tells you when your evaluation period will end and where to find registration instructions.

Feeds Section:

Feed[0]: me *,!alt.*,!*.binaries.*,@news.*,news.software.*
Feed[1]: 161.29.2.5 Posting Builtin Posts=0 0/s Rej=0 Req=0 Dup=0 R=100:0:0 Tot=0/s 0k/s *
Live cache misses 0/0

#This section povides a list of the feeds in newsfeeds.conf file. The newsfeeds.conf controls the feed into your server and the feeds out of your server . Each line specifies the rules currently applying to each feed.

"Feed[0]: me" - this is the feed into your server or me feed.

"*,!alt.*,!*.binaries.*,@news.*,news.software.* " - this defines which news groups will appear on your server and is read ; accept articles for all groups except those with alt.anything and those with anything.binaries.anything in the Newsgroups header. Do not accept articles with news.anything in the Newsgroup header , but do accept articles with news.software.anything in the newsgroup header."

note1: the order of the rules is important.

note2: "!" or "@" :"!" is used to prevent articles from being accepted to a specified newsgroup. If the article has been crossposted to other groups not specifically excluded it will be accepted to those groups. "@" is used to prevent an article posted to a specified group from being accepted to the specified group or any other group it may be cross posted to.)

Feed[1]: 161.29.2.5 Posting = Posting like a news reader. If Posting is not here it means it is sending using IHAVE
Builtin = DNEWS has two mechanisms builtin for sending feeds to other servers. The normal mechanism is called "builtin" and the other is called "live" for live feeds. If neither built in or live is specified dnews simply creates a file of the list of things to be sent.

Posts=0 0/s Rej=0 Req=0 Dup=0 R=100:0:0 Tot=0/s 0k/s * This shows for the feed1 since startup; the number of articles posted, the number of articles Rejected by the downstream server, the number of articles the downsteam server could not accept immediatly and were Reque'd for sending later and the number of Duplicate messages that had already been received by the downstream server. The R=n:n:n is for debugging purposes. Tot=0/s 0k/s shows the total number of items sent per second and the total K bytes sent per second.

Live cache misses 0/0 = This shows the number of times the live feed had to read an item from disk because it was not in it's local cache when it tried to send it.

If there is a queue of articles waiting then the size of the queued files is also shown.
Del= If the queued files grow larger than 10mb, they are deleted, and this figure keeps a record of the total size of deleted queue files. This allows dnews to keep operating when a site is down for days or weeks, the backlog could otherwise quickly fill up your entire disk.

Currently Connected Sessions:

Chan[0:140] o=0 in=0/s out=0/s 0 161.29.2.10 161.29.2.10 C_CMD
Chan[1:108] B o=130 in=15000/s out=1193/s 0 161.29.2.10 test.netwin.co.nz C_IHAVE

This is a listing of the currently connected sessions, and shows both their IP number and name. In this case the IP number is shown twice as reverse translation is disabled.
"B" This means the channel is blocked, dnews is waiting for the other end to take all the output
"o=130" This means the output buffer has 130 Bytes
"in=15000/s" This means the input speed has been 15KBytes/second for the last 30 seconds
"out=1193/s" This means output speed has been 1193Bytes/second for the last 30 secinds
"C_CMD" this means the channel is waiting for a normal NNTP command
"C_IHAVE" this means the channel is part way thru an IHAVE transaction

Expire Section:
Expire started at Mon Jul 21 02:00:05 1997 Done, start 44% end 44%
Processed 12482 removed 0 deleting 2372/-1/372 speed 1282.93
Expire finished at: Mon Jul 21 02:00:32 1997, Elapsed 0 hours, 0 minutes

# This shows the start and finish times of the last expire and the % of diskspace available to DNEWS used at the start and end of the expire. Normally the second number would be smaller but in this case nothing was expired.

"Processed 12482" - This is the number of history lines in your history file.
"removed 0" - This is the number of history lines removed
"deleting 2372/-1/372" - This is the number of items being deleted, total and actual.(of 2372
items deleted 2000 were cross posts so don't count as real deletes)
speed 1282.93 -This is the number of history articles processed per second

"Expire finished at: Mon Jul 21 02:00:32 1997, Elapsed 0 hours, 0 minutes" - time expire ran and time taken to complete.

Current Job:
Nothing is being sucked at present.
Group news.software.nntp completed, got 0 items

This sections reports on the status of the current background job if any. In this case there is nothing in the sucking que.

Statistics Section:
DB used 44.48MB, Slack 3.92MB 8.82%, DBI Misses 0/0, blocks 0=0k
History: disk 1598k memory 149k/360k, Str 74k/1572k/200k Malloc 5123k/6445k/3327k
Used 44MB=44%, Free work 26Mb, hist 26Mb, spool 26Mb, log 26Mb

This section provides overview statistics:

The Data Base:

"DB Used 44.48MB" = The data base is currently using 44.48 MB

"Slack 3.92MB8.82%" = Gaps in the data base total 3.92 MB or 8.82% of the data base. Note - DNEWS does not bother to compress the data base further when under 5-10% by default.

History File:

"disk 1598k" - the history file is currently 1.598 Mbytes on disk.

"Used 44MB=44%" - DNEWS is using 44% of available space allocated to it.

"Free work 26Mb" - Free space on disk with Work Area

" hist 26Mb" - Free space on disk with history file

" spool 26Mb"- Free space on disk with spool file

"log 26Mb"- Free space on disk with log file

note: in this case the work area, history file, spool and log are on the same disk.

Statistics Section Continued......

Groups Xover 5 Cached 1 of 25594, GID 25594, Uptime 0 day(s) 22 hour(s), XOver Cache 66.58%

"Xover 5 = 5" - Groups with more than 10 items read using Xover in the last week
"Cached 1 of 25594" - Of a total 25594 available groups 1 is currently being read

"GID 25594" - Number of groups IDs allocated
"Uptime 0 days 22 hours"- the system has been up for 22 hours.

"XOver Cache" - % of Xover records found in Cache therefore not required to be read off disk.

Back to Top

Status Report Now - Report command

The report command forces DNEWS to generate the status report and mail it to the manager address set in the dnews.conf file. Reports are normally sent automatically on a daily basis but the command is useful if you are not getting these reports as it allows you to check the log file and see why the report isn't successfully sent.

Syntax: tellnews report

Tellnews commands are just typed in on the command line. With the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the "report" command.

Back to Top

View Stats on Top 40 groups Now - Stats_groups command

The Stats_groups command reports the top 40 groups by the number of times they have been read by users and by the volume of articles received into that group. This allows you to spot groups that are gobbling up diskspace and bandwidth but are not being read by a significant number of users.

Syntax: tellnews stats_groups

Tellnews commands are just typed in on the command line. With the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and then select the "stats_groups" command.

This information is also included in the Daily Expire Report

Back to Top

View Statistics on Articles Accepted since expire - stats_in command:

The stats_in command provides statistics about what DNEWS has sucked/accepted since the last expire:

Syntax: tellnews stats_in

Example Stats_in report with explanations:

200 161.29.2.5 DNEWS Version 4.5b2, S0, posting OK

Sites that have sent us articles since the last expire:
Site             Posts Rejects Dup Total Articles/S Kbytes/s K
news.iconz.co.nz 2875     0     0   2875   0.75      1.54    5870k

The report shows news.iconz.co.nz sent 2875 items, 5.8MB at 1.54K per second, no items were rejected,

Tellnews commands are just typed in on the command line. With the Windows NT and Macintosh versions from the DNEWS Manager interface select "commands" and select the "stats_groups" command.

This information is also included in the Daily Expire Report

Back to Top

Confirmation of Posts to Users - the confirm setting

You can configure DNEWS to send a confirmation message by email to users to confirm their post has been transmitted to the Internet successfully. This is normally set at the time you install DNEWS. The "confirm" setting is in dnews.conf.

Syntax: confirm *.this.domain,*.second.domain

The following example sets "*.this.domain" to match our local email addresses. i.e. *netwinsite.com.

Example - Extract dnews.conf:

confim *netwinsite.com (read - send email confirmation of post on successful transmission to users posting from anythingnetwinsite.com)

On Windows from DNEWS Manager select "Main Options" and in the "Confirm Postings" field enter the domains you want to confirm postings for.

Back to Top

Censoring News Articles - Spam Protection

A feature of DNEWS is the advanced set of methods for detecting and automatically removing inappropriate or nuisance articles (SPAM) from news groups on your server . You may reject articles based on: The number of cross posts, the identity of the poster, words used in article headers or anything in the content of articles. You can apply different rejection rules to different news groups. You can set the maximum number of articles per hour from any user or host and the maximum number of duplicate bodies.

In brief, adding spam_stop true to dnews.conf will allow dnews to reject messages that it determines are 'spam'

Reject Rules Cross Posting

A common type of Spam is where a single article is cross posted to many news groups. Genuine news articles should only be posted to one or a very small number of news groups relevant to the article subject.

To prevent this kind of Spam you can set the maximum number of cross posts on your server so that any article that is cross posted to more than the specified number of news groups will be deleted. The maxcross is set in the newfeeds.conf file and has the following syntax.

Syntax: maxcross n

(where n = maximum number of news groups an article may be cross posted to without being rejected)

Example: The following example shows the entries in newsfeeds.conf to exclude binary groups and articles cross posted to them and reject any article cross posted to more than 10 groups)

Example - Extract newsfeeds.conf:

site me (site me is your main news feed)

groups *,@*.binaries.*(This line tells the server which news groups to accept. "*" = accept all groups; "@*.binaries.*"= don't accept those matching anything.binaries.anything or articles cross posted to anything.binaries.anything)

maxcross 10 (This line tells the server to reject items cross posted to more than 10 groups )

(On NT in DNEWS Manager select "Feeds Out", select "ME Feed" (This is your feed in) and enter the maximum number of cross posts to allow in the "Max Cross" feild .)

Back to Top

Reject Control by Article Headers

With any feed in 'newsfeeds.conf' you can add accept/reject rules based on words or expressions used in article headers to control which news items the server accepts into news groups.

The rules have the following syntax:

Syntax:

accept/reject article_header "key words in header"

Example:

The following example illustrates how you might edit newsfeeds.conf file to reduce Spam getting onto your server, by adding rules on the 'me' feed, using key words in the subject, newsgroup and from article headers.

Example - Extract newsfeeds.conf:

site me
 groups * (read - accept articles for all groups)
 accept default ( read - accept the article unless one of the following matches)
 reject subject "sex"( read - reject the article if the word sex is in the subject header)
 accept newsgroups "sex"( read - accept the article if the word "sex" is in the news group header)
 reject from "baduser@badsite"( read - reject articles from baduser@badsite)
 reject subject "make money fast" (read - reject the article if the phrase "make money fast" is in the subject header)

This example rejects any message with 'make money fast' anywhere in it's subject header, and all articles from baduser@badsite, and also rejects articles that contain the word 'sex' in the subject unless they are in a news group that also contains the word 'sex'.

The list of rules is processed in order, and if the rule 'matches' then the 'result' is changed to accept or reject accordingly. So you must have a default rule first and the order of the rules is important.

Back to Top

Accept/Reject Control by article Content

With any feed in in 'newsfeeds.conf' file you can edit the file to add rules to detect and reject articles by matching keywords or phrases against the entire body of the article.

These rules follow the same syntax as above - but utilize the fake news article headers; 'body' meaning everything except the headers, and 'article' meaning everything including the headers.

Syntax:

accept/reject body/article "keywords"

Note: The matching is NOT case sensitive. If the header CONTAINS the specified text then the rule is applied, rules are applied in order, if no rule matches then the item is accepted, unless there were any 'accept' rules in which case the item is rejected.

Example - Extract newsfeeds.conf:

site me
groups *
reject subject "sex"
reject from "baduser@badsite"
reject body "naughtyword"
reject article "make money fast"
site local.interest
groups *
reject subject "boring thread"
accept body "netwin.co.nz"
accept body "dnews"

Read - from my main feed site accept all groups, reject any article with "sex" in the subject header, reject articles from baduser@badsite; reject articles with "naughtyword" anywhere in the body; rejects articles with "make money fast" in the header or body.

From my local.interest feed site reject articles with "boring thread" in the subject header unless they have "netwin.co.nz" or "dnews" in the body.

For performance reasons it is best to only use headers rather than body and article, and it is also best to minimize the number of rules. A more efficient way to implement this type of control over content is to use a file as described under the heading Serious Spam Protection below.

Back to Top

Accept/Reject Articles - Special - Mime Attachment etc

 There is one special character allowed '\n' which can be used to match 'beginning of line' in the body or article option.

To reject items containing Mime attachments you might add something like the following line to newsfeeds.conf:

reject body "\nContent-Transfer-Encoding: x-uue"

Back to Top

Serious Spam Protection V4.5

The following will provide some automatic protection from spam. These settings can be added to dnews.conf, you can just set 'spam_stop true' to enable the the default settings. You can fiddle with all these settings and thus tune your system differently to other peoples which may be an advantage as 'spammers' will try and get past some of these rules.

Setting	Default	Description
spam_stop	false	Enables spam protection
spam_test	false	Enables spam protection but doesn't reject anything, just logs what it would do.
spam_keepn	5	Number of rejected items to store in spam_n.tmp files (for reviewing)
spam_dup_total	5000	Number of items to 'remember' in our history of 'duplicate' bodies. Uses about 30 bytes per entry.
spam_dup_hits	6	Number of duplicate bodies (not cross posted) to allow
spam_dup_cross	400	Number of duplicate bodies counting cross posts to allow
spam_from_hits	60	Number of messages from any single user per hour
spam_from_cross	1000	Number of messages counting cross posts from any single user per hour
spam_from_total	5000	Number of users to keep tabs on in our history of duplicate users, uses about 100 bytes per user.
spam_host	false	Use 'nntp-posting-host' instead of 'from' for the above 3 rules.

In addition to fiddling with all the above settings, you can create a file "filta.dat" in the WORKAREA as defined by dnews.conf and add lines to the file, any message containing text matching the lines in the file will be rejected.

The idea is to use things that common spammers place in the body of their messages, this allows you to stop anyone who manages to get past the automatic mechanisms above.

e.g. c:\dnews\spool\filter.dat

Example - filter.dat file:

sex
1-800-3333-4343
1-800-SEXYPHONE
www.sex.
Make money fast

We intend to create a second file "filter.net" which will be made available from these web pages, this will be a list that is updated regurlarly to stop well known spammers. DNEWS will use both files (filter.dat and filter.net) you should place your own settings in the filter.dat file.

DNEWS uses a 'super' efficient mechanism to test matches in this file so that you can have several hundred lines in the file without performance suffering, each line must be at least 3 characters long. The matching is not case sensitive and is only in the 'body' of the message.

Back to Top

Performance:

General

1. Controlling Speed of news into your server - max_speed setting: The Max_speed setting in dnews.conf limits the speed, in characters per second, that any channel can send news into DNEWS. The default setting is 10,000 characters per setting is appropriate for smaller suck feeds which don't want the periodic suck to take their full Internet bandwidth and therefore want to limit the speed. If you do not need to limit the speed DNEWS takes news in or you have an IHAVE feed you can increase this from say 10000 to 10000000 to remove the limit.

2. Preventing DNS lookups - nodns setting: If your DNS is faulty or slow then you can improve connection times by setting nodns in dnews conf to true. This stops DNEWS doing reverse DNS lookups every time a user connects, you will have to put ip numbers into access.conf rather than names if you use this feature.

3. Controlling Number of item headers to keep in memory - head_cache setting: The head_cache setting determines how many item headers to keep in memory, the default is 200 but if you have memory to burn then a setting of 3000 will improve performance of some NNTP commands.

4. Controlling the maximum size of articles - item_max setting: The item_max setting in dnews.conf sets the maximum size for any article that DNEWS will accept, the default is 1,000,000. A smaller number will save memory.

5. Controlling XOVER Cache - xover_cache setting: The xover_cache setting in dnews.conf determines how many xover records to cache, this is the best way to improve performance if you have spare memory, set it as high as 15000. The default is about 4000.

6. Sending out full News Feeds - Live Feeds: Their are several ways a news server can send a feed to another server (i.e. builtin, live). Where you are sending a news feed to another server always use the"live" feed type. With a live feed the server passes on the full feed it is receiving directly to the downstream server, here there is a MAJOR saving because the articles do not get written and then read from disk. In this way a server can support dozens of outgoing feeds. How to set up a live feed is described in the feeds out section of this manual.

 Dynamic Suck/Pull Feeds Only:

1. Control number of items to suck from any group at one time- suck_batchn setting: The suck_batchn setting in dnews.conf file sets the maximum number of items dnews will get from one group before going onto the next group. The default is 100.

2. Control number amount to suck from any group at one time - suck_batchsize setting: Maximum bytes to get from one group before going onto the next group. The default is 1000000. Use this to stop dnews spending all day on binary groups.

3. Control how old items can be - too_old setting: The too_old setting in dnews.conf tells dnews to refuse items that were created more than this many days in the past, this prevents old items from being re-distributed when a machine dumps old news items onto the network.

4. The suck_maxold setting controls how many items dnews should try and suck, for example if a group has items in the range 130-44000, then suck_maxold of 2000 will make dnews only try and suck the items 42000-44000

Back to Top

Scalabity:

As the popularity of USENET has grown many sites using old news server software have found themselves struggling to support increasing numbers of concurrent users, a larger news spool and to keep up with a full news feed.

The DNEWS News Server's is significantly faster at taking a news feed than any other news server software. DNEWS has no difficulty keeping up with a full news feed. DNEWS's efficiency and scalability allow sites to provide a high quality news service and maximize benefits from their investment in hardware by supporting more users per server with high performance. This section describes strategies for larger sites.

DMULTI Installation and use:

DMULTI is a mechanism for running multiple DNEWS processes on a single server utilizing a Master Slave architecture and allows you to get more out of your machine. With DMULTI you start 2-5 DNEWS processes, each one dealing with 50-400 concurrent users, this allows it to scale well and make use of multiple CPU's etc. DMULTI will start to be worthwhile when you have more than about 50 concurrent news readers on your system, and/or if you have people reading 24 hours a day and the expire process is causing performance problems. Generally it will give reasonable results if you have sufficient memory and multiple disk drives. If you have more than 200 - 500 concurrent users it is recommended that you configure your server with the DMULTI option. Because, disk IO is often a bottleneck we recommend multiple servers after a certain point, (around 500-1000 concurrent users as a rough guide) for best performance and this gives the added advantage of 100% hardware fail over for emergencies.

DMULTI installation:

Configure your system to startup DMULTI instead of DNEWS:

On Unix: Use dmulti_start.sh, instead of dnews_start.sh

On NT:

addsvc -del dnewssvc
addsvc -add dnewssvc dmulti.exe "DNEWS Multi Process Manager"

Configure the new slave parameters in dnews.conf

slave_restart 5 # The hour at which to restart the slaves (5a.m.)
slave_ports 7500 # TCPIP port to start dnews slaves processes on
slave_n 3 # Number of dnews processes to run 2-4
slave_feed 202.37.150.84,161.29.2.* # Ip NUMBER of this host and feeds

The slave_feed setting MUST include 'this machine' and any machine that is sending you a news feed, ONLY ip numbers or wild cards will work (ip names will not work)

Add your own machine to the list of hosts that can take an IHAVE feed, add this in access.conf, if you miss this step out local posts will fail.

your.ip.number:ihave:::*

Startup the dmulti process:

NT: net start dnewssvc (or click on start in dnews manager)
UNIX: /usr/local/dnews/dmulti_start.sh

There is a log file dmulti.log which will show you if anything goes wrong.

How dmulti works

DMULTI starts up 'slave_n' dnews processes (typically 2 or 3) the first one S0, is the master process, this is the one that accepts incoming news feeds, and this is the one your tellnews commands will go to. The others, S1-Sn, are reader processes, each one might have 30 news readers on it. DMULTI acts as a gateway, routing the incoming connections to the correct dnews process, this is why your slave_feed parameter must be set correctly, this is how dmulti knows whether the connecting session is a reader, or a feed.

You can communicate with each slave individually using a new tellnews option. The first status line shows which process s0-sn is talking to you:

(Master process) tellnews -s 0 status
(First reader) tellnews -s 1 status

You should always ensure that all the processes have closed before re-starting dnews/dmulti

If a problem develops, establish 'which' slave is not responding using 'tellnews -s n' and then copy the dnews.log_n from the faulty slave before restarting DNEWS.

To uninstall DMULTI

Remove the slave parameters from dnews.conf and then replace the original dnews service (or startup script)

Uninstall NT: addsvc -del dnewssvc
Uninstall NT: addsvc -add dnewssvc dnews.exe "DNEWS News Server"

Back to Top

Multiple Servers

Multiple servers give better performance and a good backup mechanism, with the price of PC's and Disks it's probably better to budget for 4 cheap servers than to try and build 1 super server.

If you use more than one news server, you can configure DNEWS to send out an xreplic feed, this means that item 23 in 'rec.humor' on the master DNEWS machine will be the same as item 23 in 'rec.humor' on the slaves system. This enables you to have 'n' news servers, each handling 100-500 concurrent users and you can use a DNS to 'rotate' the users between the servers randomly balancing the load. This also gives you a 'backup' as any server can be removed or made the 'master' in a minimum of time.

However, another option is to simply configure several news servers and use normal feeds between them and then spread your users by simply telling them to use different news servers, this is simpler and therefore slightly more reliable. But this does prevent you from any load balancing.

Hardware:

A typical 'large' system would look like this:

Single or Dual Pentium 200
128-256MB RAM
8-50Gig SCSI disks (or raid array)

Operating System for large servers

We don't want to get into an OS war, but basically the following OS's (in no particular order) make good news servers with DNEWS, this only becomes an issue when you are trying to pack as much news and as many users as possible onto one server: Windows NT, Linux, Solaris, AIX, HPUX, FreeBSD, BSDI

With most of these systems it is important to configure them with at least 200MB swap partitions when you install the system as NEWS uses a lot of memory and changing the swap partition can be difficult.

Back to Top

Contact: Email netwin@netwinsite.com
Copyright © [Netwin LTD]. All rights reserved.
Revised: .

This help file was generated from HTML source using WebTwin version 1.1


Getting news in

DNEWS News Server Manual

Getting News Into your server

u Setting up a basic sucking feed

u Setting up a basic IHAVE (traditional) news feed

u Getting an ACTIVE file for your server

u Setting up an incoming UUCP (or Satellite) feed

u Adding a sucking feed

u Adding a sucking feed for the same groups from two servers

u Adding an IHAVE feed

u Spam protection

u Example of a full feed from UUNET

u Help! I'm not getting any news

u Help! I'm not getting any news in alt.binaries.xxx

u Help! I'm not getting any news in x.y.z

This section describes the settings necessary to get news on to the dnews server in the simplest way possible - from a single provider using either of the two main methods used to transfer news items.

Setting up a basic sucking feed

This is the default configuration and DNEWS comes setup to do this straight out of the box.

In dnews.conf set the nntp_feeder to the site that you are going to suck from, set the myname variable to the name of the machine that you are running dnews on, e.g.

nntp_feeder pull-feed-out.internetmci.com *
myname news.mydomain.com

Setting up a basic IHAVE (traditional) news feed

In access.conf, give your feed site access to send you ihave messages, sometimes you will have to give several names or a wild card to allow all the news servers that may send you items. Also, it is wise to add the ip numbers if possible then you can turn reverse DNS translation off if necessary.

news*.mci.com:ihave:::*
223.232.11.*:ihave:::*

In dnews.conf, comment out the nntp_feeder definition and add a line:

# nntp_feeder ...
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 !*binaries*

For an IHAVE feed you must get an active file

You MUST get a copy of the active.dat file 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 the workarea directory defined in the dnews.conf file and rename it as active.add (Not active.dat). We do not supply an active file with the installation kit because the list of valid news groups is different in every country in the world. The full list is a combination of world wide groups and local groups. So you should get an active file from your own provider if at all possible. If they will not give you one, then there is a reasonable one on our ftp site that you can use.

If you have a Sucking feed then DO NOT do this, DNEWS will fetch the list of groups itself.

ftp> ascii
ftp> cd /usr/local/news
ftp> get active
ftp> quit
(NT) > copy active c:\dnews\spool\active.add
(NT) > net start dnewssvc
> tellnews group_merge

You can use the same procedure again at any time in the future to add newsgroups to your server. NEVER edit the active.dat file by hand and if you do edit it (I told you not to) then do it while dnews is stopped or the changes will be ignored. The active.dat file contains 'group id's which are allocated to each new news group, if you mess these up then the items will be unreadable.

Downstream sites modifying their own entry in newsfeeds.conf

If you have customers who are getting a full or partial 'ihave' news feed from your dnews server they may wish to use gupcgi which is a web utility to allow them to administer the list of groups sent to your server. Please follow this link for more information.

Adding a sucking feed for a subset of groups

To add a sucking feed there are two legs to consider, sucking the articles in, and sending the articles out. Here is an example of sucking some local groups bank.* from a second server news2.bank.com, and sending any posts back to that server:

In dnews.conf
nntp_feeder main.upstream.site *,!bank.*
nntp_suck2 news2.bank.com bank.*
update_at2 20 *

In newsfeeds.conf
site me
groups *
site main.upstream.site
type builtin
groups *,!bank.*
posting
site news2.bank.com
       type builtin
groups !*,bank.*
posting

Adding a sucking feed for all groups

Some people want to suck news from two different providers, this will 'fill in the gaps' if items are missing from one of the servers. Here is an example of sucking all the groups from two servers. We don't strongly recommend this option but it will work if you really want to do it.

In dnews.conf
nntp_suck2 news-out.byke.com *
update_at2 20 *

In newsfeeds.conf
site me
   groups *
site main.upstream.site
   type builtin
   groups *
   exclude second.upstream.site

There's no need to send back to the second site, the items will arrive there via the usual news distribution.

Sucking from suck.news.com and taking a feed from ihave.news.com

In dnews.conf

nntp_feeder suck.news.com rec.*,news.*     (or whatever groups you want to suck)
cachedall false (If you want to suck all groups available on the sucking
site, then you could set this to TRUE, it's optional, false
is probably best to start with if you are not sure)

in newsfeeds.conf

...
site $nntp_feeder
groups rec.*,news.*
builtin
exclude ihave.news.com
site ihave.news.com
groups *
builtin
exclude suck.news.com

in access.conf

ihave.news.com:Ihave:::*

Sucking in UUCP or Satellite articles

DNEWS can read UUCP bag files in standard rnews format, these are often used by satellite systems. To read these files just specify in dnews.conf the directory and file names that dnews should scan. e.g. in dnews.conf

         suck_uucp d:\dnews\uucp\*.bag

The rnews file format is a collection of articles in a single file, each one starts

#! rnews nnn
(News article 1)
#! rnews nnn
(News article 2)

Where 'nnn' is the length of each news article in bytes, counting one character for each end of line. In general the file should be in 'unix' format, that is there should be no 'cr' characters, each line should end in a line feed character.

Adding an IHAVE feed

Adding an incoming IHAVE feed is very easy, you simply add to the access.conf file an entry to let that server send you items.

second.sending.site:ihave:::*

The only thing you need to consider is if you wish to route items from this server to your other providers, if you don't want to route these items then you must set your exclude parameters carefully so that no messages are routed between the sites e.g.

site main.upstream.site
type builtin
groups *
exclude second.sending.site
site second.sending.site
type builtin
groups *
exclude main.upstream.site

If you do wish to route news between these two servers then you should be using live links to handle the volume, e.g.

site main.upstream.site
type live
groups *
site second.sending.site
type live
groups *

Spam protection

Spam protection system. The following settings can be added to dnews.conf, you can just set 'spam_stop true' or you can fiddle with all the settings and thus tune your system differently to other peoples which may be an advantage as 'spammers' will try and get past some of these rules. (these settings go in dnews.conf)

Setting	Default	Description
spam_stop	false	Enables spam protection
spam_test	false	Enables spam protection but doesn't reject anything, just logs what it would do.
spam_keepn	5	Number of rejected items to store in spam_n.tmp files (for reviewing)
spam_dup_total	5000	Number of items to 'remember' in our history of 'duplicate' bodies. Uses about 30 bytes per entry.
spam_dup_hits	6	Number of duplicate bodies (not cross posted) to allow
spam_dup_cross	400	Number of duplicate bodies counting cross posts to allow
spam_from_hits	60	Number of messages from any single user per hour
spam_from_cross	1000	Number of messages counting cross posts from any single user per hour
spam_from_total	5000	Number of users to keep tabs on in our history of duplicate users, uses about 100 bytes per user.
spam_host	false	Use 'nntp-posting-host' instead of 'from' for the above 3 rules.

In addition to fiddling with all the above settings, you can create a file in the WORKAREA as defined by dnews.conf and add lines to the file, any message containing text matching the lines in the file will be rejected.

The idea is to use things that common spammers place in the body of their messages, this allows you to stop anyone who manages to get past the automatic mechanisms above.

e.g. c:\dnews\spool\filter.dat

sex
1-800-3333-4343
1-800-SEXYPHONE
www.sex.
Make money fast

Here is a sample filter.dat file which has kindly been donated by one of our customers, this will stop about 98% of known spammers at the cost of killing about one in a thousand real news messages. This is a fairly 'strong' filter, you may want to go thru it and remove some of the more 'general' phrases, but if you really hate spam then you might use it as is.

DNEWS uses a 'super' efficient mechanism to test matches in this file so that you can have several hundred lines in the file without performance sufferring, each line must be at least 3 characters long. The matching is not case sensitive and is only in the 'body' and 'subject' of the message.

To prevent wild cross posting use this setting on your 'me' feed in newsfeeds.conf.

site me
groups *
maxcross 10

You can also use the 'accept/reject' rules to reject 'known spammers', click here for details.

Example of full feed from UUNET

-------dnews.conf---------
# nntp_feeder your.feeder.ohio.edu
cachedall true
------newsfeeds.conf cut here ----------
site me
groups *
site news.uu.net
type builtin
groups *,!local.*
exclude uunet
site YOUR.MAIL.GATEWAY
smtp
------access.conf cut here and change your domain and ip numbers ------
# 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:::*

Help! I'm not getting any news

There are several things that can be wrong, here are check lists for IHAVE and SUCKING feeds, go through the appropriate check list to fix your feed.

IHAVE feeds only

Is someone sending you a feed?

You must get someone to send a news feed to you, click here for more information.

Is the feed being rejected due to a problem with access.conf?

Search your dnews.log file for 'Refusing' or 'Transfer' , if you find this then it is likely that either you have not put the correct IP address in access.conf or you have used a name but disabled reverse dns checking so dnews cannot lookup the name. Or if you find 'Transfer' then you haven't given IHAVE access to that host in access.conf, (post access is not enough).

Also DNEWS may find the 'real' name of an ip address is not the same as the name your provider told you, you can always use the name listed in the 'Refusing' error message to correct your access.conf file, e.g. if you find

Refusing connection from {news3.sprint.net}, ...

Then you would add to the END of your access.conf

news*.sprint.net:ihave:::*

Remember access.conf is sensitive to the order of the lines, the LAST matching rule is applied.

Do you have an active.dat file?

An active.dat file is the list of newsgroups, with a full news feed this is between 20,000 and 40,000 groups.

With an IHAVE feed dnews cannot get an active.dat file automatically, it must be FTP'd by hand and placed in the work directory. Look in dnews.log for the following line about 1 page down from the start.

init: Server initialized and running, 25748 groups

If it reads '0 groups' then you need to ftp an active file from your feed provider, copy it to c:\dnews\spool\active.add or wherever your 'workarea' directory is, this is defined in your dnews.conf by the 'workarea' symbol. It is essential that you copy the file to active.add and NOT active.dat, never never never over write or mess with the active.dat file directly, it's part of the database :-)

   copy feeders_active_file c:\dnews\spool\active.add
   tellnews group_merge

Is your ME feed stopping the items from coming in?

In newsfeeds.conf there is a special feed at the top, it is your 'me' feed, which is actually used for controlling what you news server will accept. This may seem confusing but all the rules that can be used to 'send out' a news feed are just as useful to control what is accepted on your machine.

The 'me' feed MUST be the first feed in the file. Here is an example that will work:

  site me
    groups *

If you specify a list, then make sure you don't have spaces between the items as this will not work, e.g. rec.*,comp.* will work but rec.*, comp.* will not.

However, we recommend that you control your incoming groups to limit them just to those that are relevant and meaningful, here is a list that will allow most of the standard news trees and block out some of the rubbish and foreign groups.

  site me
    groups rec.*,alt.*,news.*,comp.*,biz.*,misc.*,sci.*,soc.*,talk.*

Some ISP's brag about having 30,000 or 40,000 news groups. If you want to provide your customers with a good service then a smaller list is much better, having a huge list of inane or local newsgroups does not make reading news easier for your customers.

SUCKING feeds only

Do you have any newsgroups defined?

Normally with a sucking feed dnews will fetch the list of newsgroups automatically, however if you had something setup wrong initially and have since fixed it you may need to use the command:

tellnews getgroups

You can check that dnews has got the groups by using the command:

tellnews status
...
Groups Xover n nMB, cached nn of nnnnnn, GID ....

If nnnnnn is zero then you try the getgroups command, if it doesn't help look in dnews.log to see what went wrong.

Is the connection to nntp_feeder working?

This is the most likely problem. If you have zero groups as described above and getgroups doesn't fix it then DNEWS cannot talk to your upstream site. Even if you do have groups dnews may not be able to talk any more. So look in dnews.log for an obvious error, e.g.:

tellnews update_clear
tellnews cached rec.humor 1
tellnews updateone rec.humor

Then look in dnews.log, here are some common errors you might see:

suck: BAD status code returned {you have no permission to talk}

This means your ISP has not given you 'news reader' access, call your ISP.

suck: Open channel 0 to {news.upstream.com}
nntp: Channel closed or didn't open [0] 13 {news.upstream.com}
suck: Drat channel closed or failed to open properly...

The three lines above, mean that the connection could not be opened, this implies that either the address 'news.upstream.com' is not valid, or their news server is not running at the moment or your internet link is not working at the moment.

You should test the TCPIP link to your upstream site using telnet, it should respond as follows, be sure to specify port 119 in the connection dialogue on NT:

  telnet news.upstream.com 119
  200 news.upstream.com DNEWS Version 4.3c, S0, posting OK

It should respond as above, if it closes the connection, or doesn't even open the connection then you need to fix before dnews will work.

Is your ME feed stopping the items from coming in?

Do the items exist on your upstream site?

Configure a news reader to read directly from your upstream site, and compare a problem news group, if they more or less match then dnews is working and the problem is on your upstream server. If dnews is missing articles, then try this incantation:

tellnews getold "*" 300
tellnews update

And in dnews.conf add this line:

suck_maxold 1900

Help! I'm not getting any news in alt.binaries.xxx

Check your 'me' feed in the file 'newsfeeds.conf' this must be the first site defined in the file, by default this feed contains "*,!*binaries*" which will partly block binary news groups you should remove this so the line reads, "groups *" and then use these commands:

tellnews undelete "*"
tellnews matchfeed
tellnews getgroups
tellnews update

Help! I'm not getting any news in x.y.z

With an IHAVE feed.

Check dnews.in for rejection messages, and examine your 'me' feed in 'newsfeeds.conf' as described above. With an IHAVE feed the most likely cause for this problem is that the upstream site is not sending messages for that group.   Talk with your ISP to confirm if they are sending that group to you.

Another common reason is that the group has been renamed to x.y.q.z and your users aren't aware of the move (or the new group hasn't been created for some reason)

With a sucking feed

Do the items exist on your upstream site?

This help file was generated from HTML source using WebTwin version 1.1


Sending news out of your server

DNEWS News Server Manual

Sending news out of your server

u Sending LOCAL posts upstream using a POSTING feed

u Sending LOCAL posts upstream using an IHAVE feed

u Sending a full feed onto someone else

u Allowing a downstream server to administer what is sent to them with an IHAVE feed.

u Routing news between other news servers

u Shotgun posting, making sure your articles get around the world fast

u Writing uucp bag files

u Setting your exclude parameter correctly

u Sending a feed to a program

u Help! my local posts aren't going upstream

Sending LOCAL posts upstream using a POSTING feed

With the posting mechanism DNEWS pretends to be a news reader and sends items into the upstream news server as if it was itself a news reader. The only tricky bit is setting the exclude parameter correctly. In newsfeeds.conf

        site me
                groups *
        site $nntp_feeder
                type builtin
                posting
                groups *
                exclude news.pbi.net

The variable $nntp_feeder is replaced by the name you have used in dnews.conf as your nntp_feeder. A posting feed is not entirely legitimate although perfectly workable you should use an IHAVE feed to send articles upstream if your provider will allow it. The main advantage of the posting feed is that it works when you only have normal news reader access to your provider.

Note: NEVER remove the 'me' feed from the top of the newsfeeds.conf file, it MUST be the first feed in the file.

To allow DNEWS to 'mark' all local posts so you will have some chance of figuring out who posted a 'spam' message you should add this line to DNEWS.CONF:

nntp_xposting true

Help! my local posts aren't going upstream

Sending LOCAL posts upstream using an IHAVE feed

The IHAVE feed is the normal way to send articles upstream, to convert a posting feed to an ihave feed simply remove the 'posting' keyword from the entry in your newsfeeds.conf, e.g.

        site $nntp_feeder
                type builtin
                groups *
                exclude news.pbi.net
onlyposts         #only send local posts to this site

The variable $nntp_feeder is replaced by the name you have used in dnews.conf as your nntp_feeder. Again you MUST get your exclude parameter correct or use an option to only allow local posts to be sent to this feed.

Note: NEVER remove the 'me' feed from the top of the newsfeeds.conf file, it MUST be the first feed in the file.

Help! my local posts aren't going upstream

Sending a full feed onto someone else - Live Links

DNEWS 2.7 and later includes 'Live Links' this is where DNEWS holds open a channel to the site you want to send to, and as items arrive they are immediately sent on to the down stream site. This is significantly more efficient than other systems as the item does not need to be read off disk for every feed it is sent to. In this way a server can support dozens of outgoing feeds

The DNEWS implementation of Live Links is extremely advanced, it includes the following features:

u Automatic sensing and using of the streaming protocol if the destination site can support it.

u Multiple channels, DNEWS will allow you to use 'n' channels to send to a site, this is often necessary to get higher throughput, particularly if the destination site doesn't support streaming.

u Automatic refeeding. Unlike other news servers which may require a second process which may not be running DNEWS automatically refeeds waiting articles back into the live link to clear back logs. (which may occur during a sudden burst of articles or if the destination is down).

u Automatic purging of back logs. If a destination site stops accepting news, DNEWS will not allow your entire disk spool to be filled up with the feed file for a machine that may not even exist any more. After a specified number of mega bytes the back log will be deleted.

Here is a simple live link example (in newsfeeds.conf):

        site downstream.site.name
                type live
                groups *

Here is an example of a more complex live link using all the options.

        site downstream.site.name
                type live
                live_nchan 3
                maxsize 100000
                maxcross 5
                groups comp.*,rec.*,news.*,alt.*,biz.*

Routing news between other news servers

If you want to route news articles between your system and other news servers then it is important to use the 'live' links rather than the 'builtin ihave or posting' feeds. A live links feed can process hundreds of thousands of articles every day. A builtin feed is only intended to process a few thousand every day.

If you have a local incoming ihave feed (from a local bulletin board for example) which you wish to send out thru a posting feed then you must use this setting in dnews.conf.

        post_route true

Shotgun posting

Some providers are not very good at getting posts out to the rest of the world, or even if they do get out it takes many hours or even days to reach other major news systems. Shotgun posting is another innovation unique to DNEWS, basically it is where you send local posts out to several distant servers to make sure it gets around the world fast. To get posting access to a server somewhere else you might offer posting access to your system in return.

        site main.feeding.site
                type builtin
                posting
                groups *
                exclude main.feeding.site
        site distant.news.server
                type builtin
                posting
                groups *
                exclude main.feeding.site

Note the exclude parameter to prevent your system from routing items across to the distant site which is not your intention.

Writing uucp bag files

You can write rnews uucp bag files to a directory with a feed like this.

        site uucp1
                groups *
                type uucp
                uucp_dir c:\uucp_bbs
                uucp_size 4000000
                uucp_n 500

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.

Sending a feed to a program

site prog1
groups local.*
type program
prog_name \dnews\darchiv.exe
prog_args \dnews\darchiv.log

When items arrive a pipe will be opened to the darchiv program, which must read articles from stdin and do something with them. The articles are sent in the following format:

ARTICLE group:item_number <messageid>
(Actual header and body of article)
. (single full stop is end of article)
ARTICLE group:item_number <messageid>
(Actual header and body of article)
. (single full stop is end of article)

A sample 'c' program is provided in this file to assist you in writing or modifying existing software. The program must not block or die, it must continue running between each message.

/* ---------------------- Example code darchiv.c -------------------- */
/* This sample archiver just writes all the articles to a single file */

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif

#define MAX_LINE 20000
void main(int argc, char *argv[])
{
FILE *f;
char bf[MAX_LINE];
int inarticle= FALSE;
f = fopen(argv[1],"a");
if (f==NULL) {perror(argv[1]); return;}

for (;!feof(stdin);) {
if (fgets(bf,MAX_LINE-1,stdin)==NULL) break;
if (!inarticle) {
  if (strncmp(bf,"ARTICLE",7)==0) {
inarticle = TRUE;
continue;
  } else if (strncmp(bf,"EXIT",4)==0) {
fprintf(f,"--- DNEWS asked us to exit\n");
break;
  } else {
fprintf(f,"--- Unknown Command {%s} \n",bf);
continue;
  }
} else {
  if (strcmp(bf,".\n")==0) { /* single full stop is end of message */
fflush(f);
fprintf(f,"-------------Next Message----\n");
inarticle = FALSE;
continue;
  }
  if (strcmp(bf,"..\n")==0) strcpy(bf,".\n"); /* message contained a full stop so it was translated */
  fwrite(bf,1,strlen(bf),f); /* Write message to archive */
}
}
fclose(f);
}
/*------------ End of sample program --------*/

Help! my local posts aren't going upstream

Type in:

tellnews update_clear

Then post a message to a test news group "e.g. alt.test"

Then examine dnews.log, look for the following lines, first here is an example of a post going upstream successfully:

21 15:37:19 0:info: cmd: Do cmdx[0:161.29.2.7] {POST} {post}
21 15:37:19 0:info: Processing local post
21 15:37:20 0:info: feed: Queued outgoing NNTP {161.29.2.5}
21 15:37:20 0:info: feed: Queued outgoing feed {161.29.2.5}
21 15:37:20 :warn: feed: Starting NNTP-feed to {161.29.2.5}
21 15:37:22 :info: chan: chan_open {161.29.2.5}
21 15:37:22 :info: suck: upstream name 161.29.2.5 ( )
21 15:37:22 :info: suck: feed_out item 19479 5
21 15:37:23 :out: ok: {<33d2cb5f.0@cplap.netwin.co.nz>} {test@netwinsite.com (Chris Jones)}
21 15:37:23 :warn: suck: Confirmation to {test@netwinsite.com}

The key line is the second from last ":out: ok:" this means the upstream site accepted the article so if you see this line and your posts are still not working then the fault lies with your upstream site, possibly you should investigate sending posts to some other news server see the description of 'shot gun posting above'

21 15:32:51 0:info: feed: Queued outgoing NNTP {161.29.2.55}
21 15:32:51 :warn: feed: Starting NNTP-feed to {161.29.2.55}
21 15:32:53 :info: chan: chan_open {161.29.2.55}
21 15:32:54 :info: suck: upstream name 161.29.2.55 ( )
21 15:33:41 1:error: nntp: Channel closed or didn't open [1] 25 {161.29.2.55}
21 15:33:41 :info: suck: Drat channel closed or failed to open properly or timed out

The above example is typical of sending posts to a site that is not 'alive' or if your network is not working.

If you see this in the log file: "Sorry I can't talk to you" then you probably haven't been granted access to the news server that you are trying to send news to, or possibly you are sending to the wrong news server. Call up the admin of that server and ask him to add your 'ipnumber' to his access file.

If you see "Transfer permission denied" then you don't have 'ihave' access to the server you are trying to send posts to, try adding the 'posting' keyword to the newsfeeds.conf file for that feed. Or call up the admin and ask for 'ihave' access to his server.

This help file was generated from HTML source using WebTwin version 1.1


Tellnews Commands

DNEWS News Server Manual

Tellnews - controlling the dnews server

Tellnews commands can be used in all versions of dnews, they are just typed in on the command line, with the Windows NT and Macintosh versions they are also available through the DNEWS Manager interface. This section provides a listing of tellnews commands with explanations.

Commands

cached	check_index	checkgroups	clear_cache	crash_now	debug	disconnect
diskuse	dns_clear	dns_show	exit	expire	fileonly	fixnames
fixtimes	getgroups	getnames	getold	group_age	group_merge	group_nodup
hist_test	key	killgroup	killitem	killone	log	logchan n
Loglvl	matchfeed	matchgroups [suckn]	newgroup	purgegroups	rebuild_gids	rebuild_hist
rebuild_index	remove_lost	refeed	reject	reload	reload_fts	report
reque	resort_index	rmgroup	rotate	setused	showcached	showmem
showqueue	showusers	speed	speed_reset	spool_convert	spool_import	stats
stats_in	stats_out	stats_groups	status	test_files	test_mem	test_sleep
test_sockets	trace_expire	uncached	undelete	update, update2, update3, update4	update_clear	updateone

Command: cached

Syntax: tellnews cached group_wildcard n_days

Description: Causes the group or groups listed to be cached on the server for the number of days specified.

Example: tellnews cached rec.bicycles.* 3

This will cause dnews to update the rec.bicycles hierarchy every day for 3 days even if no one reads any of those groups.

Command: check_index

Syntax: tellnews check_index

Description: Takes a few seconds, checks the index and corrects the group ranges to match the index.

Command: checkgroups

Syntax: tellnews checkgroups check_news_item.txt

Description: Processes the given file as if it had been received as a checkgroups message. A checkgroups message is a list of 'real' news groups in a given news hierarchy, for example all the rec.* news groups. Any news group that is not in the check groups messages is deleted, any news group which is missing is added. The file must be complete with some headers followed by a blank line and then the list of groups.

Example: tellnews checkgroups message.txt

Command: clear_cache

Syntax: tellnews clear_cache

Description: Clears some of the internal caches used for reading item files.

Command: crash_now

Syntax: tellnews crash_now

Description: very dodgy command used to simulate the behavior of certain other companies news servers.

Command: debug

Syntax: tellnews debug [chan_read:chan_write:… ]

Description: Used with loglvl debug or flush, to control which debugging messages are sent to the log file. The list of options must not contain spaces. The default list is:

control:db:cancel:file:lib:,warn:,fatal:,post:,chan:,feed:,hist:,nntp
str:,err:,debug:,expire:,info:,item:,group:,suck:,cmd:,ncmd:,init:,db:,mem:

Example: tellnews debug chan_read:chan_write:

Command: disconnect

Syntax: tellnews disconnect n (where n is the number of the channel to disconnect)

Description: Used by the dnews admin to disconnect a single channel, select the number 'n' by doing a tellnews status command

Command: diskuse

Syntax: tellnews diskuse comp.os.*

Description: Gives the disk usage of all the groups in that directory tree. This total counts each cross post so the total can be larger than your entire system. Where "comp.os.*" is any group/subgroup/wildcard that you wish to specify.

Command: dns_clear

Syntax: tellnews dns_clear

Description: Used by the dnews admin to clear DNEWS's cache of ip numbers and names. Very rarely necessary. If you change the names or numbers of local machines then this command should be used.

Command: dns_show

Syntax: tellnews dns_show

Description: Used by the dnews admin to inspect DNEWS's internal cache of ip numbers and names. Very rarely useful for normal operation unless you are having trouble granting access to a particular ip name and you need to see what name DNEWS is finding for that computer in the DNS.

Command: exit

Syntax: tellnews exit

Description: Shuts down the DNEWS server cleanly. This command will often finish with a socket error, this is normal as the connection is aborted as dnews shuts down.

Command: expire

Syntax: tellnews expire

Description: Used by the dnews admin to force an expire run during the day, this is occasionally necessary if something has prevented normal expire runs to work and after fixing the problem you wish to start an expire run immediately to free up disk space. The expire run will begin as soon as the current entry in the sucking queue has completed.

You can use the command 'tellnews status' to see the expire command in the update queue.

Command: fileonly

Syntax: tellnews fileonly

Description: Used by NetWin support staff to test dnews performance. NEVER use this command :-).

Command: fixnames

Syntax: tellnews fixnames

Description: Used by dnews admin to fix the active.names file. This command will check the file is internally consistent and it will remove any duplicate entries. This command should be used every few months to keep the system clean.

Command: fixtimes

Syntax: tellnews fixtimes days_old

Description: Tells dnews to re-write the active.times file and pretend that all groups were created 'days_old' ago. This command should be used once every 6 months to clean out old groups from the active.times file.

Command: getgroups

Syntax: tellnews getgroups [n]

Description: Used with a sucking feed to get the list of groups from the provider, if there are more than 300 groups cached dnews will do this automatically every update_at period, if there are less than 300 groups cached it will do this command automatically once per day. It can also be used to get the groups lists from additional feeds by specifying 2, 3, or 4 as n. This has to be used to add an additional feed to dnews.

When you first start up dnews it will also try and get the full list of groups, but if it fails on the first attempt (due to some temporary problem, e.g. you forgot to plug in the ethernet cable) then use this command to force it to fetch the list again.

Example: tellnews getgroups 2

Command: getnames

Syntax: tellnews getnames

Description: Gets the list of news group names from the news server you are sucking from and stores them in the active.names file.

Very few news readers display these full names so it is not critical to get this.

Example: tellnews getnames

Command: getold

Syntax: tellnews getold <group wildcard> n

Description: DNEWS keeps track of the latest item number for every group on the site it is sucking from. This command lets you adjust this counter downward by 'n' for every matching group, this can be useful as a way to 'refetch' items that were somehow missed previously.

This command will not result in duplicate articles, because of the history file dnews will not refetch an article if it's message id is stored in the history file.

Example: tellnews getold rec.bicycles.tech 100

Command: group_age

Syntax: tellnews group_age

Description: Age all groups, this command emulates the passing of a day. Each cached group has a counter of how many days it should remain cached for and this command will reduce every counter by one, and will then 'un-cache' any groups who's counter has reached 0.

Example: tellnews group_age

Command: group_merge

Syntax: tellnews group_merge

Description: Merge a file called active.add (in the workarea directory) with the existing active.dat file. This is the correct way to update your active list to include groups from a new site that is now sending you items via IHAVE. Don't edit the active.dat file by hand :-)

The workarea directory can be found by searching dnews.conf for 'workarea'.

Command: group_nodup

Syntax: tellnews group_nodup

Description: Checks the active file and removes any duplicates, this command should never be necessary, it was added during an early version of dnews which had a bug which could allow duplicate groups to get into the active file.

In DNEWS 4.3 this command is not needed as the file is checked on startup.

Command: hist_test

Syntax: tellnews hist_test

Description: Shows in the log file every time an actual history file read is necessary, this was used to confirm that history lookups were as rare as possible while accepting an IHAVE feed.

Command: key

Syntax: tellnews key

Description: Enter a license key to the server, if you have trouble entering your key please cut and paste the entire error and send it to NetWin support.

Example: tellnews key a6j5a0a2a4p6a9

Command: killgroup

Syntax: tellnews killgroup <group wildcard>

Description: Removes the specified group(s) from the active file, you must shut down and restart dnews after using this command. This command does not attempt to delete the items related to the group, this command is intended for use only when you know best.

To cleanly remove a news group use the rmgroup command (which is reversible)

Example: tellnews killgroup NetWin.chat.group

Command: killitem

Syntax: tellnews killitem <group name item number | "message id">

Description: Delete an item in a group, the item is defined either by it's message id or by a combination of it's number and the group it is in, this information can be found by using a news reader such as WinVN that shows the article numbers. Usually used for removing inappropriate postings from private local groups.

This command will remove the item and all it's cross posts, use the command killone to delete a single crosspost.

Example: tellnews killitem "<540kfg$75p@hplms2.hpl.hp.com>"

Example: tellnews killtitem rec.bicycles.tech 57536

Command: killone

Syntax: tellnews killone group_name item_number

Description: This command deletes a single part of a cross post, as opposed to the killitem command that deletes all cross posts of a single item.

Example: tellnews killtitem rec.bicycles.tech 57536

Command: log

Syntax: tellnews log

Description: Display the last 50 lines of the dnews.log file.

Command: logchan n

Syntax: tellnews logchan 3

Description: Creates a log file chan_3.log which is a summary of all the data sent and received on the specified channel (as shown in tellnews status), this is used to debug live feeds.

Command: Loglvl

Syntax: tellnews loglvl <debug | flush | info | warn | error>

Description: Set the level of messages to be recorded in the dnews.log file, can be used in conjunction with the tellnews debug command. This command is very useful for enabling a higher level of debugging for a brief period while testing some problem system.

Example: tellnews loglvl debug

Example 2: Testing a problem with report messages not arriving:

        tellnews update_clear
        tellnews loglvl debug
        tellnews debug chan_read:chan_write:suck:
        tellnews report
        (wait 20 seconds)
        tellnews loglvl info
        (now examine the log file in detail)

Command: matchfeed

Syntax: tellnews matchfeed

Description: Marks all groups that don't match the groups entry under site ME in the newsfeeds.conf file as deleted. This is typically used to change the me feed to allow groups that were previously blocked (in conjunction with tellnews undelete) or to set newly blocked groups to deleted.

Example:

        notepad newsfeeds.conf
        tellnews reload
        tellnews undelete *
        tellnews matchfeed

Command: matchgroups [suckn]

Syntax: tellnews matchgroups 2

Description: Compares the list of news groups from the upstream site nntp_suck2 and adds missing ones and removes extra ones. If the setting in dnews.conf limits the groups that can be sucked from this feed, then the same limit applies to groups deleted by this command.

Command: newgroup

Syntax: tellnews newgroup <groupname> [y |m][creator][description]

Description: Add a new group to the group list, this can be a local group or a new group from another feed site, or a group from the upstream feed. The optional y or m field is to set the group as normal (y) or moderated (m), the optional creator field is a one word name of the groups creator, the optional description field is a few words describing the group.

Example: tellnews newgroup local.bicycle.rides y eddym Info about bike rides in our vicinity

Command: purgegroups

Syntax: tellnews purgegroups

Description: Actually remove and forget about groups that have been marked for delete. You must stop and start dnews after using this command. If you use this on a sucking feed and the deleted groups exist on the site you are sucking from, then the groups will re-appear.

Command: rebuild_gids

Syntax: tellnews rebuild_gids

Description: This command should ONLY be used if you somehow stuff up your active.dat file by over writing it with a non DNEWS version. The active.dat file contains group id's that relate to database files, if you mess these up then rebuild_gids will un tangle the mess (if you are lucky) ONLY use this command if you are certain it's the right thing to do.

Command: rebuild_hist

Syntax: tellnews rebuild_hist

Description: Add any items to the history file that aren't already in it. (rebuild_hist should not generally be used alone as the history and index files are co-related they should be rebuilt together with rebuild_index, see below)

Command: rebuild_index

Syntax: tellnews rebuild_index

Description: Rebuilds index and the history database from scratch, the items will disappear, then reappear during the rebuild. (rebuild_hist should not generally be used alone as the history and index files are co-related they should be rebuilt together with rebuild_index)

Command: remove_lost

Syntax: tellnews remove_lost

Description: Scans the database for items that are not in the history index, and flags them to be deleted during the next expire.

Command: refeed

Syntax: tellnews refeed feed.name

Description: This command will re-send all current articles to a particular news feed, this command is fairly cpu intensive as the entire history file (maybe 80MB) must be parsed. Also, it does not apply all the rules associated with the feed you have specified, it only checks that the group name matches. This command us particularly useful when setting up the FTS (Full Text Searching) system on a running server. It allows you to 're-index' all existing items. It should not be used for other purposes.

Command: reject

Syntax: tellnews reject "<message@id.host>"

Description: Tells dnews to immediately reject the specified item if it is offered it by an IHAVE feed. This command is very rarely useful if a particular item is blocking an incoming feed for some unexplained reason.

Command: reload

Syntax: tellnews reload

Description: Reloads the .conf files, necessary to make any changes to the files take effect, if not done the changes will not take effect until you restart dnews.

Command: reload_fts

Syntax: tellnews reload_fts

Description: Tells dnews that the fts index has changed and should be reloaded from disk. This command is not usually needed, the index is normally re-read fairly often automatically.

Command: report

Syntax: tellnews report

Description: Forces dnews to generate the expire report and mail it to the manager address set in dnews conf. Very useful if you are not getting these reports, it allows you to check the log file and see why the report isn't successfully sent.

Command: reque

Syntax: tellnews reque

Description: Puts all outgoing feeds into the sucking queue and attempts to send them. Again this is useful if a builtin outgoing feed or smtp feed is not working, it allows you to trigger a retry and watch to see why it fails.

Command: resort_index

Syntax: tellnews resort_index

Description: Sorts the index so any group can be read with a single disk scan, this will also remove deleted entries from the index. This command is worthwhile after a disk crash, in most other circumstances it is not needed.

Command: rmgroup

Syntax: tellnews rmgroup <group name>

Example: tellnews rmrgroup local.secret*

Description: Flags the specified group(s) as deleted. This is the clean way to delete a group, and if you make a mistake you can undelete the groups.

Command: rotate

Syntax: tellnews rotate

Description: Manual command to rotate the log files and remove the oldest one, there is an automatic setting for doing this in the dnews.conf file (debug_rotate n) Moves dnews.log to dnews2.log, dnews2.log to dnews3.log, etc.

Command: setused

Syntax: tellnews setused

Description: Set DNEWS's internal count of diskuse based on a check of current disk use, this command should only be needed after a crash of some kind.

Example: tellnews setused

Command: showcached

Syntax: tellnews showcached [wildcard]

Description: Displays a list of the groups that are cached on the system and the number of days that they will continue to be updated for. At the end of the update time no more new articles will be fetched for the group and the expire process will gradually remove the items from the group. The cached life of the group is reset to the value specified for the life parameter in dnews.conf each time an article from the group is read.

Command: showmem

Syntax: tellnews showmem

Description: Shows how much memory dnews is using in great detail, note: the value under strdup is not accurate. The output of this command is useful to NetWin support staff if you are having a problem with memory use. (see also the related command test_mem)

Command: showqueue

Syntax: tellnews showqueue

Description: Display a list of groups waiting in the queue to be updated.

Command: showusers

Syntax: tellnews showusers

Description: Displays a list of ip addresses and user names who have connected since startup. The display includes a summary of bytes transferred etc. The data is only added when a connection is closed so current sessions are not included.

Command: speed

Syntax: tellnews speed

Description: Shows how fast articles are arriving. Use in conjunction with tellnews speed_reset for performance testing.

Command: speed_reset

Syntax: tellnews speed_reset

Description: Resets the counters for testing how many articles are arriving per second.

Command: spool_convert

Syntax: tellnews spool_convert /var/spool/news

Description: use this command to convert an existing INN or CNEWS spool area, as each file is processed it is deleted, you should comment out your feeds before doing this or you may end up re-feeding all this old stuff to your outgoing feeds. (added at version 3)

See the alternative command spool_import which is non destructive (it does not delete the items after converting them)

Command: spool_import

Syntax: tellnews spool_import /var/spool/news

Description: same as spool_convert but the items are not deleted after being imported.

Command: stats

Syntax: tellnews stats

Description: Returns a listing of statistics showing which nntp commands have been used and how long dnews has taken to process each command.

Command: stats_in

Syntax: tellnews stats_in

Description: Returns a report about what dnews has sucked/accepted since the last expire.

Command: stats_out

Syntax: tellnews stats_out

Description: Returns a report about what dnews has sent out on various feeds..

Command: stats_groups

Syntax: tellnews stats_groups

Description: Shows the top 40 groups by the number of times they have been read by users, and by the volume of articles recieved into that group. This allows you to spot groups which are gobbling up disk space and bandwidth, but are not being read by significant numbers of users.

Command: status

Syntax: tellnews status

Description: Returns a report about the status of the system, explanation and example output here.

200 161.29.2.10 DNEWS Version 3.0f, posting OK
#This line shows the name and version number of the server, it
#also tells you if posting from your ipaddress is possible.

Feed[0]: me *,!to.*,!*.binaries.*
Feed[1]: 161.29.2.5 Posting Builtin Posts=0 Rej=0 Req=0 Dup=0 file=100k Del=10MB *
# This is a list of the feeds in newsfeeds.conf, the first feed must be called 'me'
# it specifies what groups to accept locally, the other feeds specify where to
# send items and what items to send, (*=send all groups)  The word 'posting' means
# feed[1] is to send items upstream using the posting mechanism, and it is a builtin
# feed (e.g. doesn't need an external xmit process to send items)
# The number of Posts, Rejects, Reque'd and Duplicate messages sent out that
# feed since startup are shown.  Also if there is a queue of waiting articles
# then the size of the queued file is also shown.
# The 'del' figure is how much queued articles have been deleted because they
# couldn't be sent (This is automatic if the queue grows past 10MB)

Chan[0:5] B o=130 in=1/s out=6/s 161.29.2.10 test.NetWin.co.nz C_CMD
Chan[1:5]   o=0 in=13000/s out=600/s 161.29.2.3 test.NetWin.co.nz C_IHAVE
# This is the list of currently connected sessions, the ip number and name are shown
# but in this case reverse translation is disabled so it shows the number twice.
# B = Channel busy, as in it is still processing a command and producing output.
# o=130       Output buffer has 130 bytes.
# in=13000/s  Input speed has been 13K /s for the last 30 seconds
# out=600/s   Input speed has been 600 bytes/s for the last 30 seconds
# C_CMD = The channel is waiting for a normal NNTP command
# C_IHAVE = The channel is part way through an IHAVE transaction.

Expire started at Fri Feb 16 13:31:05 1996 Done, start 1% end 1%
  Processed 920 removed 0 deleting 200/-1/150 speed 170.429
Expire finished at: Fri Feb 16 13:31:12 1996, Elapsed 0 hours, 0 minutes
# Shows the start and finish time and %'s of the last expire run.
# Processed = number of history lines in your history file.
# removed = number of history lines removed
# deleting shows the number of items being deleted, total and actual
# (of 200 items deleted 50 were cross posts so don't count as real deletes)
# The -'ve 1 is a progress counter which ticks over when the expire is running.
# Speed = history articles processed/second

Contents of DNEWS group fetching queue, 2 entries:
    Group rec.humor.funny    fetching, got 20 items
    Group comp.os.vms    pending (low priority)
    Group comp.lang.java    pending (low priority)
End of queue.
# This is the list of groups dnews is currently trying to fetch.

Reverse lookup took 80 seconds, disable lookups if possible (see nodns)
# This error means your name server is faulty (or not contactable), you
# should disable name translation,  set NODNS TRUE in dnews.conf

History: disk 76k memory 7k/80k, Str 2k/5k/500k Malloc 1097k/1097k/2128k
# Current history file is 76K (40mb would be more normal) and the in memory
# amount for this file is 7k (5mb would be more normal)
# The Str and Malloc's are for debugging, they show the total memory allocated and
# also what is being used at present.
Used 1MB=1%, Free work 34Mb, hist 34Mb, spool 34Mb, log 34Mb
# Disk space used as a percent and how much is actually free.
Groups Cached 3 of 4624,  Uptime 0 day(s) 0 hour(s)
# Shows how many groups are cached, and how long the system has been running.

Command: test_files

Syntax: tellnews test_files

Description: Used on UNIX systems for checking on memory problems, checks to see how many file handles dnews can allocate.

Command: test_mem

Syntax: tellnews test_mem

Description: Used for checking on memory problems, checks to see how much memory dnews can allocate. If it cannot allocate at least 20 or 30 MB then your page file is probably not big enough.

You MUST restart dnews after using this command to allow the memory to be freed.

Command: test_sleep

Syntax: tellnews test_sleep n

Description: Locks up dnews for n seconds (only works on Windows NT). This is used to test behavior of dnews under certain load conditions.

Command: test_sockets

Syntax: tellnews test_sockets

Description: Tests how many sockets dnews can open.

Command: trace_expire

Syntax: tellnews trace_expire "message-id" (or "groupname")

Description: Logs at info level the reason for keeping or expiring any message that matches the message id or group name you have specified.

Command: uncached

Syntax: tellnews uncached <group wild card>

Description: Sets the specified groups as not cached.

Command: undelete

Syntax: tellnews undelete <group wildcard>

Description: Mark a previously deleted group as undeleted

Command: update, update2, update3, update4

Syntax: tellnews update[n]

Description: Cause an update from the specified feed to be queued, only used for sucking feeds. New items in any cached groups will be fetched.

Command: update_clear

Syntax: tellnews update_clear

Description: Clear the update queue

Command: updateone

Syntax: tellnews updateone <group wildcard> [n]

Description: Add the specified group or groups from the feed [n] in the update queue, n is an optional value from 1 to 4, it will default to the main feed if there is no n specified.

Example: tellnews updateone rec.bicycles.* 2, get the rec.bicycles hierarchy from the second feed.

This help file was generated from HTML source using WebTwin version 1.1


the conf files

DNEWS News Server Manual

Configuration Files

DNEWS uses six configuration files which together provide all the information the server needs. This section provides a detailed introduction to each of these files and their use.

File Name	Description
dnews.conf	Main configuration file (found in /etc or \winnt\system32)
access.conf	Controls nntp access to your server
expire.conf	Specifies how long to keep news items
newsfeeds.conf	Defines feeds out of your news system up the line of news servers
moderators.conf	Defines where to send email to a moderated news group
control.conf	Defines how to process control messages for auto creation and deletion of news groups

dnews.conf

The dnews.conf file is where most settings are stored, unlike all other config files dnews.conf is stored in \winnt\system32\dnews.conf or on unix \etc\dnews.conf

All lines in dnews.conf have the following syntax:

Syntax: Setting Value

Setting (Symbol)	Value (Example)	Description
access_twice	true	If this is 'true' dnews will try and lookup users by 'number' before attempting a DNS lookup which can slow dnews down.
active_static	true	Stops new groups from being added by the sucking feed. Use this if your feed site has lots of groups you never want added into your active file.
auth_case	true	Tells dnews to be case sensitive when testing usernames and passwords
autoexpire	95	Trigger an expire when disk usage hits 95%
bind_in	1.2.3.4	IP number of adapter to listen for connections on.
bind_out	1.2.3.4	IP number of adapter to use for output connections (typically sucking). These two settings only have meaning if you have multiple IP addresses for some reason.
body_chunk	20000	Sets the size of chunks to read from disk when a user reads an article, the default is 20000
bucket_size	10000000	Sets the size of each bucket, optimally you want more than 10 buckets and less than 3000. 10MB is the default for spool areas over 100MB in size.
cachedall	true	Pretend all groups are cached, use this if you are taking a full IHAVE feed in. This command stops the 'Downloading' messages appearing.
cachedonly	true	Only accepts items into groups which are cached, this is used for the hybrid feed where items are sent by a feed but only taken if users are reading that particular group.
cache_onxover	true	This makes dnews 'more' sensitive to users reading a group. Without this the group is not 'cached' unless an item is actually read but with this setting the group is 'cached' if an xover request is made for this group.
cancel_anyone	true	Allows cancel messages to work even if they are not from the original poster
cancel_users	me@here	Only allow cancel messages from this person
chan_nobuff	true	Use to help the Mosaic news reader to work. (it has a bug)
config	dnews_top:	Directory for configuration files (*.conf) all except dnews.conf
confirm	*.this.place	Send email confirmation to postings from these addresses. (set this to match your local email addresses)
convert_add	true	Alters the behavior of tellnews spool_import/spool_convert to simply add the items rather than trying to 'replicate' the item numbers.
convert_feed	true	This option allows the tellnews spool_import/spool_convert commands to send items to outgoing feeds.
debug	chan_read:chan_write:	Use to set which debug lines should be printed to the log file. The parameters cannot be separated by spaces. The default setting is control:db:cancel:file:lib:,warn:,fatal:,post:,chan:,feed: ,hist:,nntp:,str:,err:,debug:,expire:,info:,item:,group:,suck: ,cmd:,ncmd:,init:,db:,mem:,");
debug_rotate	10000	Automatically rotates log files (renames and deletes the oldest one) if more than 10000 lines are written. This is good if you have turned on debugging as you always have the last few thousands lines if a problem develops but you don't run out of disk space due to the huge log file.
debug_rotate_in	1000	Number of lines before .in file should rotate. Ver 4.
debug_rotate_out	1000	Number of lines before .out file should rotate. Ver 4.
debug_store	100	Stores the last 100 items as files, the items are stored before they are processed, this was used for finding items that crashed dnews, the last stored item was the problem. It is not an official setting. (i.e. it may be removed)
df	/usr/bin/df -Pk	Define the df command to use on Unix systems, where to find it if necessary and the switches to use if needed. DNEWS expects the output to be in K blocks. df -k or df -Pk is often the correct setting.
diskspace diskspace2 diskspace3 .......... diskspace8	diskspace 100 diskspace2 50 diskspace3 60 diskspace4 1000	Define the size of each disk area. diskspace2 ... diskspace8 are Version 4 commands. Total disk space in megabytes a dynamic feed needs 20-200MBs, a full feed needs approx. 1000MB See Spool, below.
expire_any	true	If a link of a cross post should be deleted during an expire, then all will be deleted, this fixes the problem of people cross posting binary messages to non binary groups and thus filling up your disk.
expire_at	5 23,3	Run an expire job at 5 past eleven and 5 past 3 in the morning. Unless expire_minutes is set to true the minutes value will be ignored.
expire_chunk	100000	Sets how many lines from the history file to expire in one go. Increasing this makes expire faster but uses more memory. Generally the default will be fine.
expire_delay	3	The maximum delay before dnews will expire some more items even if it is flat out answering user requests. (not generally needed)
expire_fast	true	Increases priority of expire job to get it done fast in the night.. (not generally needed)
expire_min	10	This sets the maximum wasted space in the bucket files, the value is a percentage, the default is 10% or 5% if disk usage is above 90%.
expire_minutes	true	Used to make dnews use the minutes setting in the expire_at rule.
expire_small	1000	When dnews is using more than 89% of the disk space there is a danger of it deleting to many items in one go, this setting is used to limit how many it deletes before checking to see if the disk is still almost full.
feed_reader	true (default)	Sends the 'mode reader' command when connecting to a feeding site, this is the default. You will probably never have to change this setting.
fts_dir	d:\dnews\fts	Sets the directory where the fts index files are being stored. (see the section on FTS for more details)
fts_expire	true	Automatically set if fts_dir is true, this tells dnews to write a list of all expired articles so that the fts system can remove them from the fts database.
groups_at	20 2	Sets when dnews should check for newly created news groups on the site that it is sucking news from. (not needed with an IHAVE feed where the control news items perform this function).
head_cache	200	How many item headers to keep in memory, if you have memory to burn then a setting of 3000 will improve performance of some nntp commands
head_limit	2000	Limits the size of headers to keep in the cache, the default is about 2000
hide_queue	true	Stops the list of groups being sucked from being shown in the 'Downloading...' message.
history	\dnews\spool	Directory for history file, this could grow to 40MB for a full feed (80,000 blocks)
history_min	5	Pause if less than 'n' megabytes free.
item_max	100000	Sets the maximum size for any article that DNEWS can deal with, the default is 1,000,000. A smaller number will save memory.
life	30	Number of days to keep fetching a news group from the upstream server after someone reads an item in it.
list_min	300	How many groups need to be cached before the update method switches to the technique that works best for large numbers of groups.
live_stream	false	stops live feeds from using the streaming extensions to send articles, (this configures automatically normally)
log_ihave	true	Enables logging of ihave/takethis commands
log_inline	false	Stops logging of all the 'item ok' messages inside the dnews.log file
log_nntp	false	Stops logging all the nntp commands sent to dnews.
logdir	\dnews	Directory to write log files
logdir_min	5	Pause server if less than 5MB is left free on logging disk.
loglvl	info	One of: error,warn,info,debug,flush There are four levels of error reporting, "error" includes serious errors, "warn" includes possible problems, "info" includes general information messages and "debug" which is used for tracing bugs. "flush" is the same as debug but the log file is flushed with every single line written, this is useful if the system is crashing but not providing a stack dump.
loguse	true	Write a log of every item body read by users in the file used.log
mail	smtp	This is only used on VMS systems. The name of the foreign email system on VMS, typically in% or smtp% (don't include the %)
mail_from	system@your.domain	Sets the from address used when dnews sends a report or email confirmation to a user, this is sometimes needed by smtp servers which require a valid return address.
manager	system@here.this.place	Email address of the news manager
max_out	10000	Limits the speed that any channel can read news articles in characters per second.
max_speed	10000	Limits the speed, in characters per second, that any channel can send news into dnews.
myname	news.this.place	Your full Internet name, if left out this may be picked up from the system. It's best to put it in by hand to make sure it's right. See path_stamp below.
newnews_users	161.28.4.2,*.co.nz	List of IP names or numbers from which to allow the newnews command.
nntp_block	true	Sets all the sockets as blocking, we don't know why you would want to do this.
nntp_feeder	news.feeder.site groups username password	The news site where you are going to SUCK a feed from. You need NNTP READER access to this site. If you are not sucking a feed then comment this line out. If you need to specify a PORT other than the default one (119) then add it on the end of the name, e.g. feeder.site.edu:2021 The groups field is optional, the default is *. The username and password are also optional, alternatively nntp_user and nntp_pass can be used to specify these.
nntp_logoff	You are not one of our users	Specifies the message to give to users who are not granted connect access via access.conf.
nntp_pass	mysecretword	Use this if the site you are sucking from requires a username and password to access it.
nntp_suck2, 3, 4	second.feeder alt.irc.* myuser mypassword	Get irc groups from another news server, every 10 minutes, the user/passwords are optional. (also see update_groups)
nntp_user	jbloggs	Use this if the site you are sucking from requires a username and password to access it.
nntp_xposting	true	For a posting feed this lets you add a header which will identify any user that attempts to post spam through your server.
no_newnews	true	Disables the newnews command.
nocontrol	true	Prevents automatic creation of the 'control' news group.
nodns	true	Stops DNEWS from doing reverse DNS lookups every time a user connects, you will have to put ip numbers into access.conf if you use this feature, but if your DNS is faulty or slow then this can improve connection times.
nospacecheck	true	Stops dnews attempting to find out how much disk space is free. If this test is failing your server may pause itself so this setting gets it working again. This is quite safe as the test is only used as a backup check.
nostream	true	Tells dnews to pretend it cannot take a streaming incoming feed.
nwserver	hostname	Use on netware servers if NetWin suggests it should be used.
open_block	true	Makes nntp open calls block the news server
open_retry	5	How long to wait after failing to open an nntp connection before retrying .
org	NetWin Ltd	Sets the name to be added to local posts which do not have the Organization: header set
org_replace	true	Forces local posts to have your organization name even if the news posting software attempted to put some other name in.
out_size	4000	Sets the size of packets to be sent in one write operation to a socket.
path_stamp	news.netwinsite.com	The name used to stamp the path of messages that go through your system, this should be a fully qualified text name in lower case, it need not have a genuine DNS entry. Use this if your MYNAME parameter is a single word or a number. e,.g.myname 22.33.23.4 path_stamp news.netwinsite.com. Ver 4
pgppath	c:\pgp	The path of your PGP utility. If you use PGP to authenticate control messages then you may need to define this.
pident	true	Enables pidentd checking (a way of authenticating users on multi user unix systems)
port	119	The TCP port which DNEWS should listen for incoming connections on.
post_log	true	Logs every local message to a post.log file
post_route	true	Enables routing of incoming ihave messages to outgoing posting feeds.
post_nosuck	true	This option disables the 'suck' that occurs when a group is posted to
postonly	true	Stops items from being posted locally until the 'echo' back from the feeder site, this gives a very clear confirmation that the message has been passed up stream. You cannot do this if you want to have local groups which are not on the site you are sucking from.
ras_entry	AOnline	This settins is used to get DNEWS to automatically dial up, fetch news and hang up by itself and is an alternative to using ras_number, ras_username and ras_password."AOnline" should be the text name of the RAS phone book entry you wish to dial, if this settings is used then all of the following ras settings are not needed. Start up 'Dial Up Networking" to see the list of entries in your phone book.
ras_number	56779568	If you are have a dial up line to the Intenet you can on Windows have DNEWS automatically dial up, update news and then hang up. To do this you set the ras_number, ras_username and ras_password commands to the dial up phone number, your username and password respectively and DNEWS will automatically dial up in accord with your update rules. Alternatively simply set the ras_entry as described above and DNEWS will look up the informantion it needs.
ras_username	Username	Refer ras_number
ras_password	Password	Refer ras_number
replicate	true	Makes dnews use the same item numbers for each item as are used on the server it's sucking from. The result is a second server that mirrors the first. It is essential that you also set POSTONLY TRUE.
report	no	Stops the daily email report from being sent to the manager after every expire run.
send_at	*5 *	Send messages upstream when the time matches, this would do it every 10 minutes. e.g. at 1:05, 1:15...
send_later	true	Stops DNEWS from attempting to send a post immediately, useful if you are using a dial up connection. You can trigger this by hand using 'tellnews requeue'
sendmail	/usr/ucb/sendmail	Path to sendmail or equivalent software with switches. (only used on unix)
slave_feed	1.2.3.2,1.2.3.4	IP NUMBER of any host that will be sending an ihave feed to your news server. IP names cannot be used, sorry.
slave_n	3	Number of dnews processes to run, 2-5 is recommended.
slave_ports	7400	TCPIP ports to use for the slaves. (Just use the example it will work :-)
slave_restart	5	Restarts the slave processes at that time each day. (5a.m.)
sort_chunk	1000000	Sets how many items to read in one go when re-sorting the master index, setting this larger speeds up the sort but uses more memory. Ver 4
spool_free	true	This tells dnews to chose which spool area based on the amount of actual free space rather than it's internal count of how much space it's allowed to use.
spool spool2 spool3 ....... spool8	spool f:\spool spool2 g:\spool spool3 h:\spool spool4 i:\spool	Disk name (or logical) for news articles For use with multiple drives (upto 8). Spool2 ... Spool8 are Version 4 commands. Defines the disk areas that dnews can use to store it's buckets of news. See diskspace, above.
spool_min	5	Pause if less than 'n' megabytes free
suck_batchn	100	Maximum number of items to get from one group before going onto the next group.
suck_batchsize	1000000	Maximum bytes to get from one group before going onto the next group. Use this to stop dnews spending all day on a binary group.
suck_disable	true	Disables sucking groups, but not getgroups, matchgroups, this is handy for keeping the active files in sync between two servers, it can be used with the xreplic setting below.
suck_requeue	true	Tells dnews to reque a group that is not finished.
suck_maxold	1000	Limits the maximum number of old items that dnews should suck from a group.
suck_maxgroups	500	If more than this many groups become 'cached' dnews will 'uncache' all the groups, this is a good 'backstop' in case some user does something strange and manages to 'cache' 10,000 news groups.
suck_stream	true	Makes dnews suck much faster, don't set this unless you need to as it hurts the server you are sucking from.
suck_timeout	300	How many seconds a sucking feed can be idle before dnews should close the connection to try and get it un-stuck.
suck_uucp	/uucp_in/*.bag	Directory and file names of incoming uucp files. Every minute dnews will scan this directory and read in any files it finds, and then delete them. They should be in standard rnews format.
tcp_nodelay	true	Sets the socket to send data immediately, this may solve problems with bugy news readers. (e.g. Mosaic news reader) The default is 'true' on NT, it should be changed to 'false' if you have hundreds of concurrent users.
timeout	30	Define how long to wait after a channel becomes idle before disconnecting it, the default is 120 minutes.
timezone	NZST	Timezone hh:mm or timezone name, this setting is ignored on all systems except VMS
too_old	50	Refuse items that were created more than this many days in the past, this prevents old items from being re-distributed when a machine dumps old news items onto the network.
update_at	*0,*5 *	Check for new items every time the minutes end in a 5 or a zero and at any hour, e.g. every 5 minutes..
update_at2, 3, 4	10 *	Update setting for second, third and fourth feeds, check less frequently, every hour at 10 minutes past.
update_groups1, 2, 3	*binaries* 45 1	A way of getting specific groups more frequently, only works with the main feed. For example, get binary groups once a day at 1:45, this is in addition to the update_at setting, not instead of.
uucp_crlf	true	Writes uucp files as MSDOS text files instead of proper unix format.
workarea	\dnews\spool	Directory for work files (active.dat, *.feed, etc)
workarea_min	5	If less than 'n' megabytes are free on this disk then pause the news system, (stop accepting new articles)
xover_cache	4000	How many xover records to cache, this is the best way to improve performance if you have spare memory, set it as high as 15000.
xover_dir	/var/spool/xover	Sets the directory to store the *.xov database files, if you define this copy *.xov from the workarea to the new directory and then restart dnews.
xover_moved	true	If your xover directory is not on the spool disk then you should set this true so dnews doesn't add in the xover files into the diskuse total.

access.conf

The access.conf file is very powerful, it can be used to control access to your server in many different ways and as a result it is also tricky to use. The main source of confusion comes because of two features, first the file is passed twice, once when a user connects, and a second time when/if they supply a password. The second tricky bit is that the 'last' matching rule in the file is used. So the order of rules is very significant.

Access.conf allows you to do all of the following:

Allow ip numbers/names access
Allow incoming IHAVE feed
Allow users name and password access
Allow DNEWS Manager/Tellnews commands
Allow read and post protection separately

All access rules in access.conf have the following Syntax:

Syntax:

host:perm:user:pass:groups [:extension settings]

Parameter	Example	Description
host	*.my.domain 161.29.4.*	A wildcard name or number, this rule is only used if the connection matches this address
perm	Read, Post, Ihave,logoff	Allow any combination of reading posting or ihave feeding from this site.
user	chrisp	Some news readers can send a user name, if so then it will be matched here, and the password can be checked.
pass	rumplestiltskin	The password in plain text.
groups	*,!*.erotic.*	Allow access to groups matching this wild card.
extensions	con=3	Limit individual ip addresses to 3 simultaneous connections
extensions	users=20	Limit the users in this domain to 20 concurrent users
extensions	con=3,users=20	If both settings are set separate with a comma, not a colon

Notes:

If <user> is "$lookup$" and <pass> is "$lookup$" then NT Authorization is used to lookup users via the nt database. Use a line like this in access.conf:

your.ip.range.*:read,post:$lookup$:$lookup$:*

At the same time you must add to dnews.conf "auth_case true" as NT username/passwords are case sensitive and by default DNEWS is not case sensitive.

Unlike other news implementations, you can permit reading and posting to different combinations of news groups, for example you may wish to allow students to read all groups but only post to local news groups.

The last matching line in the file is used. This file can be tricky to setup, if it doesn't work as expected check that you have the entries in the right order so that the last matching ip name does what you want.

The extension settings can get complex because the are not applied strictly by order as with the other settings this is because in both cases the extension rule is affected by other users so the logic cannot be worked out by a single parse of the file. As a result you cannot limit the number of concurrent users to overlapping ip ranges, for example:

*:read,post:::*:users=2
*netwinsite.com:read,post:::*:users=10

Would NOT work, because the limit of '2' would apply to everyone not just netwinsite.com users.

Example 1 : Extract access.conf

*:logoff:::*
*netwin.co.nz:read,post:chrisp:passwd:*
*netwin.co.nz:read,post:::*,!*sex*
161.29.1.*:read,post:::*,!*sex*
news*.mci.net:ihave:::*
mypc.netwin.co.nz:read,post:::*

Command	Description
*:logoff:::*	Immediately closes a connection from anyone outside our domain
*netwin.co.nz:read,post:chrisp:passwd:*	Allows me to read and post to any news group (including the naughty ones) as long as I configure my news reader with the username: chrisp and password: passwd
*netwin.co.nz:read,post::*,!*sex*	Allows users to read and post to any newsgroup except ones with the word ‘sex’ in the name.
news*.mci.net:ihave:::*	Allows an ihave feed from an MCI machine, e.g. news12.mci.net
mypc.netwin.co.nz:read,post:::*	Allows me to read all groups, even the naughty ones, from my own PC as long as it has a reverse DNS entry.

Note: reverse DNS translation is often not properly setup, don’t rely on it, always give ip numbers as well as names. You can give wildcard numbers like 122.33.44.* to allow everyone from a given subnet. Also consider using the 'nodns true' setting which stops DNEWS even trying to perform the reverse name translation, this can improve performance.

Complex access.conf example

Here is a more complex example that would work: In this example we have two domains, 161.29.3.* and 161.29.4.*, one of which can have 50 concurrent users, the other 10, both are limited to 5 connections per reader to prevent a single reader hogging the system. We also have a username and password for the 'sex' groups. "naughty,secret", and two users have access to a private news group "netwin.private"

Example 2 - Extract access.conf

*:logoff:::*
161.29.*:read,post:naughty:secret:*,!netwin.private
161.29.*:read,post:joe:secret2:*,!*sex*
161.29.*:read,post:fred:secret3:*,!*sex*
161.29.3.*:read,post:::*,!*sex*,!netwin.private:users=50,con=5
161.29.4.*:read,post:::*,!*sex*:!netwin.private:users=10,con=5

expire.conf

This file can be tricky to use, remember order is significant!! It contains the rules that define how DNEWS will expire news.

The expiration file is very different from INN and CNEWS implementations, Rather than a simple set of rules, the DNEWS expire rules match both news group names and current disk usage, so as use increases the rules can become more strict.

In addition rules can specify minimum or maximum numbers of items, this allows a single rule to apply to groups which get 20 items a day, or 20 items a month.

Since 4.3 it's also possible to expire groups differently depending on whether or not anyone is reading them. (If no one is reading a group you might expire items after 1 day instead of 5)

By default, cross posted items are only deleted from disk when they have expired from every group that it has been cross posted to. This is logical, but allows abuse, by cross posting items to non binary groups your entire expire strategy is ruined. There is dnews.conf setting expire_any true which allows dnews to delete all the cross posts of an item as soon as one part expires.

Each line of the file must have the following format:

Syntax:

UPTO x GROUPS wild KEEP n DEFAULT n PURGE n MAXITEMS n MINITEMS n UNREAD n

Setting	Value (example)	Description
upto	20%	This rule applies if less than 20% of the disk space is full. This confuses a lot of people. Here's an example, say disk use is currently 25%, then any rule ABOVE 25% will apply, a 20% rule would be ignored.
groups	alt.*,comp.binaries.*	This rule applies if the group matches this list
keep	2	Keep items for this many days even if they have already expired. (From the expire date in the article header) If the article has no expire header then this rule is ignored. If the article has an expire setting and is younger than the keep value it is kept regardless of the 'purge' setting.
default	10	Keep items this long and then delete unless the expiration date says to keep it longer. This is the 'main' control of how long items are kept together with the maxitems/minitems rules that will override this rule.
purge	35	Delete after this many days even if the expire header says to keep it longer. This should be set long enough to keep FAQ's and no longer to prevent abuse. A typical value is 30 to allow monthly posts.
maxitems	1000	Ignore the other rules and delete items until the most recent 1000 are left. Items with an expiration date will be left (e.g. faq's)
minitems	10	Don't apply any other rules if the group has less than this many items in it, this is good for making 'low volume' groups useable.
unread	3	If the group is not 'cached' (it has not been read recently) then delete items that are more than 3 days old.

Example:

# Default rule
upto 10000% groups * keep 0 default 1 purge 10 maxitems 0 minitems 0
# Start to panic a little
upto 90% groups * keep 0 default 2 purge 33 maxitems 100 minitems  0
# Normal operation, put your meaningful settings here.
upto 60% groups * keep 2 default 5 purge 33 maxitems 1000 minitems  10
upto 60% groups comp.* keep 2 default 10 purge 33 maxitems 2000 minitems  10
# Lots of space, just stop things getting silly (e.g. 10000 items in...)
upto 30% groups * keep 2 default 17 purge 33 maxitems 3000 minitems  100
upto 20% groups * maxitems 2000
# Keep any local groups forever (this line must be last to work)
upto 1000% groups local.* keep 99999 minitems 10000

If disk use is 58% then the rules that will be applied are the upto 60% rules,once the usage goes past the upto value of a rule the rule is no longer matched on. DNEWS will use the last rule it finds that matches, searching from the top down. The upto 60% rules comprise of one rule for all groups and one rule for the comp.* hierarchy, the specific rule must be after the general rule or it will never be matched. DNEWS will apply the rule like this, if the item has an expire header DNEWS will apply the keep rule and keep the item for 2 days even if the expire header says not to. The default rule is the rule that gets applied to all of the articles, DNEWS will expire an item that it has had for more than this many days unless the expire header says not to, for the comp.* groups this is 10 days, for all of the other groups 5 days is applied. The purge setting removes anything that has been on the server for this many days even if the expire header says not to, this setting is used for removing periodic posts such as FAQ's.

The maxitems and minitems settings override the other settings and will keep or remove items even if the other rules say not to. There are cases where the maximum and minimum counts may seem to not be applied, this is usually due to crossposts or to missing data for the history.dat file in which case a rebuild_index might be worth running (but this can take hours and does partly interrupt news operation so pick a time when not too many users are on).

Click here for an example for systems with limited disk space trying to carry binary groups

newsfeeds.conf

This file controls feeds out of DNEWS to other sites, it defines the sites to feed news to, which news groups to feed to each site (including the sites you receive news from), the type of feed (eg builtin, live, uucp or program) and the nntp command used to send items (eg post or IHAVE).You can also exclude news recieved from one site from being sent to any specific site. For your main feed the exclude setting is set by default to prevent the system trying to send every article that comes in back to the feeder site.

The newsfeeds.conf file also controls feed(s) 'into' DNEWS via the special "ME feed" . This must be the first entry in newsfeeds.conf. and defines which groups will be accepted from any feed(s) into DNEWS. It also allows you to set specific accept/reject rules to automatically idnetify and remove spam articles.

Symbol	Example	Description
site	me $NNTP_FEEDER my.leaf.site	The name of the site to feed, usually it's full Internet name. The 'me' feed must be the first one in the file.
type	One of: live, builtin, uucp, program	Specifies the type of feed, if this is left out then a feed file will be written but the items will not be sent to anyone. The xmit service could then be used to send the items.
posting	(flag, no value)	Specifies that the nntp 'post' command should be used to send items upstream. This gives your feeder site the job of deciding how to email postings to moderated groups.
exclude	feeder.real.name,feeder.third.name	Use this if your feeder site is 'name stamping' articles with a name other than it's ip name. This MUST be right or DNEWS will attempt to echo everything it gets back to the feeder site. (check the path header)
smtp	(flag, no value)	Specifies this is not really a feed, but on a vax it is actually the email queue used to send articles to moderated groups, this is only needed on VMS and then only if you are not using the 'POSTING' mechanism to feed upstream.
maxcross	50	Throw away items which are crossposted to more than '50' news groups. This is good for preventing 'spamming' which is where people post adverts and money making schemes to inappropriate news groups.
groups	rec.*,!alt.*,@*binaries*	List of news groups or wild cards. The entire list is checked so ,!* on the end will block all news groups. The '!' and '@' characters should both be read as 'not' however '@' also means, 'if this rule matches then don't allow any cross posts' Normally if an item was posted to three groups and two of them are 'rejected' the article would still be taken. You can use the continuation character '\' on the end of the line, but there must be no spaces between the last group and the slash, and there must be a comma before the next group name. You can have leading spaces on the next line. There must be no spaces between items in the list, e.g. "a, b" would not work but "a,b" would.
maxsize	100000	Limit items to 100K, the default is 1MB, if you want to make it larger than 1MB then you must also increase ITEM_MAX in DNEWS.CONF. Personally I think 100K is too big, ftp sites and web should be used for larger items. DNEWS will still download the items it just doesn't store them if they are larger than this setting.
xreplic	(flag no value)	This is a modifier for a live feed, it makes dnews send out replicating feed. A replicating feed is one that matches article numbers on each slave so that the servers are 'identical' from the users perspective. You should use 'postonly true' in dnews.conf on the slave server.
live_nchan	3	The number of concurrent channels to use to send the live feed, 2 or 3 is recommended for a full feed.
onlyposts	true	Only send 'local' posts to this feed. This is an alternative to trying to get the exclude setting correct. It basically means 'don't act as a news router' which is the default behavior.
uucp_dir	c:\uucpout	Directory to write uucp files to.
uucp_size	100000	Max size at which to skip onto the next uucp file.
uucp_n	100	Max number of items before skipping to next uucp file.
accept	header|default|body "quoted string"	Used to accept or reject messages based on content
reject	header|default|body "quoted string"	Used to reject messages based on content

Type builtin

No external program (like nntpxmit) is required for either the live,builtin or uucp feeds.

The builtin feed type is used for sending local posts back upstream, it can send using the standard nntp protocol 'IHAVE' or by using the 'POST' command like a news reader, this is controlled by the 'posting' switch. Here is an example:

  site $nntp_feeder
    groups *
    builtin
    onlyposts
    posting

The 'builtin' feed type is not designed to send on a full feed, and if you don't have 'onlyposts' or 'path_max 4' or a correct 'exclude' setting then it could end up trying to send your entire feed back upstream.

Type live

The 'live' feed type is intended for sending a full feed (e.g. 8 articles per second or more) to another site. This option is very smart, it figures out whether or not the other end can 'stream' and it tries to send new articles as they arrive without even writing them to disk this is both very efficient and means that news is completely up to date. You can specify how many concurrent channels DNEWS should use to send items, we recommend at least 2, and maybe 3 or 4 if the remote end does not support streaming. Here is an example:

...
site downstream.news.server
groups *
 type live
live_nchan 2

Type live - xreplic

One special option you can add to live feeds is 'xreplic' this instructs DNEWS to tell a slave news server what item number to use to store each message, this allows the slave server to appear identical to your master server. To setup a slave server you must also use the dnews.conf setting postonly true option in the slave server and configure it to send posts back to the master using a builtin posting feed. e.g. On the master you would have:

...
site local.slave.news.server
groups *
 type live
live_nchan 2
xreplic

 And on the slave

...
site local.master.news.server
groups *
type builtin
posting

Type uucp

The uucp type feed will write a news feed for a selection of groups to uucp format bag files.

site uucp1
groups local.chat,rec.humor,netwin.*
type uucp
uucp_dir c:\uucp1
uucp_size 4000000
uucp_n 500

This will create bag files in the c:\uucp1 directory, and switch every 4MB or 500 items to the next bag file.

Accept/Reject rules

With any feed in 'newsfeeds.conf' you can add accept/reject rules to control what news items to accept. Here is an example, by using these rules on the 'me' feed you effectively prevent spam from getting into your server.

site me
groups *
accept default
reject subject "sex"
accept newsgroups "sex"
accept newsgroups "erotic"
reject subject "make money fast"

This examples rejects any message with 'make money fast' anywhere in it's subject header, and also rejects articles that contain the word 'sex' in the subject unless they are in a news group that also contains the word 'sex'.

The list of rules is processed in order, and if the rule 'matches' then the 'result' is changed to accept or reject accordingly. You must have a default rule first. You can also match against the special header 'body' which is actually the entire body of the article, but this should be avoided as it is not efficient in this version (but this may be changed)

Example newsfeeds.conf

site me
groups *
maxcross 10
site $nntp_feeder
groups *
type builtin
site downstream.site
groups *
type live
live_nchan 2
site localposts
groups *
onlyposts
type uucp
uucp_dir c:\local_posts

This example would reject incoming messages cross posted to more than 10 groups, it would send local messages back to the site defined in dnews.conf as nntp_feeder. It would send a full feed to the downstream site 'downstream.site', and it would keep a copy of all local posts in the directory c:\local_posts in 'uucp' format. This is handy because you can always feed these items back into dnews at a later date if they are lost for some reason. (like a disk crash).

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. Although with version 4.3 you could use the options "maxpath 3" or "onlyposts" to prevent DNEWS from routing news.

However, ignoring those options, it's best to get the exclude setting correct. 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: yoursite.com!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. The second or third name in the list is usually correct.

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. The exclude parameter can include wild cards or a list of values, e.g.

     exclude *world.net,*.sprint*

moderators.conf

This file defines the moderators email for moderated groups. Articles sent to moderated groups are redirected by DNEWS to the group moderator. Each line follow the syntax:

Syntax: group(s) moderators_email_address

You should only need to touch this file if you want to add a local group and make it moderated. In that case add your groups at the top of the file as the first match is used.

If the email address contains a "%s" then that is replaced by the news group name with the dots changed into dashes. e.g. to moderate a group called "netwin.gossip.moderated"

netwin.gossip.moderated:chrisp@marc.cri.nz
gnu.*:%s@tut.cis.ohio-state.edu
*:%s@uunet.uu.net

Click here for more details on moderating a news group

control.conf

This file controls the action taken when control messages are received. This is the secret to the administration of news. Control messages are just like normal Usenet news articles, but they are read by your news server and make it automatically do things, like adding and deleting news groups. This may seem invasive but with dozens of news groups being created and deleted every day you really don't want to be doing this yourself.

See the section on Adding PGP authentication to control.conf if you are concerned about security issues involved with control messages. However there is not too much need for concern, DNEWS does not actually remove anything if a news group is deleted so it can always be recreated if necessary.

Here is an up to date copy of control.conf, you need to update this file periodically as news group administrators change. Click here for latest control.conf

Cancel messages are not processed by this file, for performance reasons they are dealt with differently.

The following control messages are checked by this file:

u newgroup

u rmgroup

u version

u checkgroups

u ihave

u sendme

u sendsys

u senduuname

However only the following four are implemented.

u newgroup

u rmgroup

u version

u checkgroups

Blanks are not allowed, e.g. :: would be misinterpreted.

For each type of control message, you can specify based on who sent it, whether or not to do what the message says, just log it, or email the message to the news administrator. The log file that DNEWS creates can be used to action the control messages at a later date as it contains valid commands.

All control messages are logged to files in the workarea as 'control_(message).(action)'

Format:

message-type:email-address:action
message-type    rmgroup, newgroup, version
email-address   A wildcard email address, e.g. news@trusted.site
action          "drop", "log", "mail", "doit", "doit,mail", "doit,pgp"

Example:

all:*:*:mail
ihave:*:*:drop
sendme:*:*:drop
sendsys:*:*:drop
senduuname:*:*:drop
newgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sci.*,soc.*,talk.*:doit
rmgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sci.*,soc.*,talk.*:doit

This help file was generated from HTML source using WebTwin version 1.1


DNEWS FAQ

DNEWS FAQ

(Frequently Asked Questions )

General Information

u The FTP site

u Why is a DNEWS dynamic sucking feed so great ?

u Why is a DNEWS traditional IHAVE feed so great?

u Should I use the Dynamic Sucking Feed Option or traditional IHAVE Feed Option?

u Where are the log files?

u Where is dnews.conf?

u Where can I suck news from?

u Where can I get an IHAVE feed from?

u Local posts don't go upstream?

The most common, common questions

u I don't know if posts are working?

u Running DNEWS for Intranet groups only (stand alone DNEWS)

u Hints for sites with more than 10,000 users

u MAIL-NEWS Gateways (both ways)

u Creating local news groups

u Creating local moderated news groups

u Posting to a moderated group

u Putting news on more than one drive

u Remote Control

u Setting your EXCLUDE parameter correctly

u Calculating Memory Use

General "How do I" questions.

u How do I limit user access to the server

u How do set my local groups so they won't expire

u Creating local news groups

u How do I move the spool area to a bigger disk

u How do I make the updates run only at night

u How do I test the server using TELNET

u How do I suck from a two sites at once

u How can I cut out spamming (cross posts)

u How can I make XOVER faster?

u How do I Uninstall DNEWS

Unix questions

u Using GUP with DNEWS

u How do I rename a volume on UNIX

Common Configuration Questions

u How do I setup DNEWS to take in a 'normal' NNTP - IHAVE feed

u How do I setup DNEWS to take an IHAVE feed from 4 machines and send back to another.

u How do I setup a news gateway for my LAN

u How do I set my EXCLUDE parameter correctly

u How do I setup DNEWS for local (Intranet) use

u How do I split the spool directory into it's separate parts

u How do I restrict the news groups available on my server

u How do I censor the contents of news groups on my server

u How do I manage DNEWS remotely using dnewsmanager

u How do I set up Clarinet groups

I did something stupid, can I fix it?

u I deleted some item files by hand, is that OK?

u I deleted the history.dat file, is that OK?

Errors & Problems

u Large messages & Memory Use.

u I'm not getting any binary groups, why not?

u My news reader says the newsgroups don't exist?

u I don't know if posts are working?

u I'm still not convinced my posts are getting to the other side of the planet?

u I have an old fashioned feed coming in but I'm not getting any items?

u Why doesn't the status report match actual diskspace used?

u My system runs out of memory?

u DNEWS goes very slow

u DNEWS locks up for brief periods (or permanently)

u DNEWS Crashes

u TELLNEWS fails or locks ups

u TELLNEWS says "Cannot access tellnews.pass"

u I see errors "NNTP, Sorry I can't talk to you" in the log file?

u What does "Transfer permission denied" mean?

u Posts not going upstream, 437 Duplicate article?

I still can't figure it out, how can I get help?

u DNEWS Mailing List

u To subscribe to the discussion list send to:

u To subscribe to the announcement list

General Information

The FTP site

You can FTP the latest copy of the files from our main ftp site, their are binaries for common platforms (Windows NT (Intel & Alpha), Linux, Solaris, VAXVMS, ALPHAVMS.

ftp ftp.netwinsite.com
cd pub/netwinsite/dnews
binary
get dnews43c.exe  (Windows NT version 4.3c)

This is a self extracting archive, that means you just run dnews_nt.exe and it will extract itself , e.g.

dnews43c.exe   (extracts the new files and upgrades your system)

Use the following references to see our web pages and ftp area.

http://netwinsite.com/
ftp://ftp.netwinsite.com/pub/netwinsite/dnews

Return to the Index

Why is a sucking feed so great?

A sucking feed has several advantages, not all obvious.

Disk space and line usage

This is the most obvious advantage, you may only end up getting a couple of hundred groups, possibly saving 80% of your disk space and 80% of your network bandwidth. A 64Kbps line isn't enough to take a full news feed, but with a sucking feed it is easily enough to give the 'impression' of a full news feed.

More items in 'low use' groups

More items in 'read' groups: As disk space is saved, it becomes very easy to keep 1 or 2 weeks of news (or more) in the groups people actually want, most full feed systems can only store a few days of news in each group.

Efficient file IO

As items are fetched for one group at a time, most file IO is to a single open file, this is a lot more efficient that the standard news system of getting items in a 'random' order. This efficiency is more significant on operating systems with slower file systems, e.g. Windows NT and VMS.

Low impact on upstream site

DNEWS does not use the 'newnews' command which all news managers hate, it uses low impact commands to find the new messages and retrieve them without accessing the history database on the upstream server. As so much fewer articles are fetched the overall load is greatly reduced. The exact load depends on how many groups are being sucked.

Easy configuration on upstream site

On the upstream site, instead of setting up and managing a feed, something which is difficult to do and tends to require almost constant maintenance, all that is required is to give your system simple 'news reader' access.

Return to the Index

Why is a DNEWS traditional IHAVE feed so great ?

There are two things that make DNEWS really great with a traditional IHAVE feed : Speed and Efficiency.

Speed: The advanced data base design (first introduced in DNEWS v4.0) allows DNEWS to take a feed several times faster than other news server software. So DNEWS can keep up with a true full feed with no difficulty whatsoever.

Efficiency: DNEWS is very efficient on resources allowing it to serve more readers and downstream sites per $ invested in hardware and software. And spending a small fortune on high cost hardware is not an essential requirement.

Why are Speed and Efficiency so Important: Speed and Efficiency may once have been seen as nice features, today they are critical.With today's news volume and growth rates suggesting news volumes may well double in as little as 1-2 years old server software is reaching the limits of its effectiveness. Many sites running older news servers are already struggling; to keep up with a full feed, maintain a reasonable history of news and serve their readers and downstream sites. Temporary solutions tend to have been a mix of adding expensive hardware, reducing news coverage from a full feed to a partial news feed and reducing the number of days of news they keep. Upgrading to DNEWS allows these sites to provide a full news service, improve performance and avoid added expenditure on hardware.

Return to the Index

Should I use the Dynamic Suck Feed or a traditional IHAVE Feed Option?

With the Dynamic Sucking Feed Option there comes a point of diminishing returns, as a rule of thumb if you have more than 3000 subscribers or plan on taking all the binary groups then a standard IHAVE feed may be more efficient. The number of groups and which groups users read determines the actual break even point. So, for example if your users have similar interests and actively read less than about 1000 groups and binaries are not significant a suck feed will generally offer advantages regardless of the number of users.

Remember DNEWS also works easily with a traditional IHAVE feed and will still beat the pants of most other news server software because it's database is much faster at taking a feed and it is designed to make far more efficient use of your system resources.

Return to the Index

Where are the log files?

Look in dnews.conf for the symbol LOG_DIR, this will tell you which directory to find them in, there are three files:

dnews.log       The main log file
dnews.in        A one line log of each message that came in
dnews.out       A one line log of each item dnews sent out.

The file dnews.log contains .in and .out messages as well. By default the logging level is set to INFO, you can set it in dnews.conf to one of, error,warn,info,debug. E.g.:

loglvl warn

In debug mode all error messages are sent to the log file, in info mode only error,warn and info messages are printed. In warn mode only error and warn messages are sent, and in error mode only serious errors are printed to the log file.

Every night, or if the log files get more than DEBUG_ROTATE lines in them the files are rotated like this:

dnews.log -> dnews.log2 ->dnews.log3 ->dnews.log4 ->(deleted)

Return to the Index

Where is dnews.conf?

This is the main configuration file, and you can't move it from it's built in directory which is:

Windows NT      /winnt35/system32/dnews.conf (system dir)
Unix            /etc/dnews.conf

All other configuration files will be in the config directory defined in dnews.conf

Return to the Index

General "How do I" questions.

How do I limit user access to the server

You can limit user access to the server by username and password and by group, to do this you need to edit access.conf. This file is both tricky in it's syntax and order sensitive, but quite powerful.

Note that the Netscape news reader does not currently implement usernames and passwords so you will need to make your users use a proper news reader :-)

Here is a simple access.conf where you only allow users in your domain with ip names and you only let them connect using usernames and passwords:

# By default don't let anyone even connect
*:::!*
# Let people in my domain connect long enough to send a username/password
pc*.here.edu:read:::!*
# Here are the individual users and their passwords
pc*.here.edu:read,post:joe:joespassword:*
pc*.here.edu:read,post:alice:alicespassword:*
pc*.here.edu:read,post:jack:jackspassword:*

Here is a second example, where we want to stop joe from posting to the group local.rules, but he can read it ok still.

# By default don't let anyone even connect
*:logoff::!*
# Let people in my domain connect long enough to send a username/password
pc*.here.edu:read:::!*
# Here are the individual users and their passwords
pc*.here.edu:read:joe:joespassword:*
pc*.here.edu:read,post:joe:joespassword:*,!local.rules
# And don't let anyone from the finance section even connect
*finance.here.edu:logoff:::*

Return to the Index

How do I set my local groups so they won't expire

At the end of your expire.conf file add a line like this, lets assume your local company groups are ford.cars, ford.trucks and ford.bikes (e.g. your company name is 'ford')

upto 1000% groups ford.* keep 999 minitems 10000 maxitems 100000

This will keep all items in the local groups for 999 days, and even then will keep at least 10000 items but will expire items if more than 100000 items are in the group. In other words the local items will be kept virtually forever.

Return to the Index

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 still have local groups if you can't get IHAVE access, it's just not the 'recommended' setup.

You can add groups with the TELLNEWS NEWGROUP command, e.g.

tellnews newgroup here.chat y myname Local group

here.chat = name of group
y = Normal group (m = moderated)
myname = A record of who created the group (one word)
Local group = 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. (of course this isn't a major problem unless the items are very secret as your upstream site will probably just reject them anyway)

Return to the Index

How do I move the spool area to a bigger disk

First shutdown DNEWS:

tellnews exit

Then move the entire SPOOL tree structure from it's current place to it's new place, for example on NT you might use file manager to move

c:\dnews\spool...             to      e:\dnews\spool...

Change the definition of SPOOL in DNEWS.CONF

NOTEPAD \winnt35\system32\dnews.conf
spool   e:\dnews\spool

Restart DNEWS:

(NT)    Control Panel, Services, Start
(UNIX)  su root; dnews_start.sh

Return to the Index

How do I make the updates run only at night

Updates for a sucking feed normal run once every ten minutes, this is controlled in DNEWS.CONF with the command

update_at *5 *

This "*5" tells dnews to do an update whenever the minutes end in a digit '5' and the second "*" tells it to do updates during any hour.

To do one update a night at 5 past 2 in the morning you would use:

update_at 5 2

To do updates every 10 minutes from 6p.m. to 8a.m. you would use:

update_at *5 18-8

Return to the Index

How do I test the server using TELNET

NNTP is a text based protocol, this means you can test it, and even read news without any software, just by using telnet and typing in commands by hand, this is not a seriously good way to read news, but it is a very good way to test your own server or your feeding server:

NT      Accessories, Telnet, Connect, Remote Service
        Enter the feeder.site and under PORT type in NNTP
        Under Terminal Preferences turn ECHO on
        Press Control J to end lines instead of ENTER
VMS     $ telnet feeder.site /port=119
UNIX    > telnet feeder.site 119

Type in this sequence of commands to read an article by hand:
mode reader(tell it we are reading news)
        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)

Return to the Index

How do I suck from a two sites at once

Use the alternate suck names, NNTP_SUCK2, NNTP_SUCK3, NNTP_SUCK4

Put these in dnews.conf, followed by the list of news groups that should be sucked from these alternate sites. You should use the NNTP_FEEDER variable (suck1) for the largest number of groups.

nntp_feeder news.upstream.site *,!chat.local.*
nntp_suck2 other.news.site chat.local.*

Alternatively you can take a feed and suck from another host at the same time.

Your list of groups will be based on the NNTP_FEEDER host, other groups must be added using the tellnews newgroup command.

To do this just setup the system to suck as usual, but then add a line to access.conf to allow your secondary feed to come in, e.g.:

other.feed.machine:ihave:::*

Return to the Index

How can I cut out spamming (cross posts)

Spamming, is where people cross post to hundreds of news groups with information which is not relevant to the content of the news group. e.g. advertising pyramid schemes etc...

Cross posting is a neat idea but enormously abused mechanism, you can limit the abuse by rejecting items that are crossposted to more than 'n' groups, a value of 5-10 would seem reasonable to me. The default is 100 for DNEWS.

You can change the limit in newsfeeds.conf under the ME settings, e.g.

site me
groups *,!*binaries*
maxcross 4

Click here to see how to control more extreme forms of spamming

Return to the Index

How can I make XOVER faster?

By default DNEWS caches the last 200 item headers that it has read, if you have spare memory then it is well worth increasing this value: The upper limit is 9000, at approx. 3K per header this would use about 27MB, but a value of 2000 would use 6MB which most systems could easily deal with. In DNEWS.CONF

HEAD_CACHE 2000

Return to the Index

How do I rename a volume on UNIX

You may wish to rename a current volume /var/spool/news to be /var/spool/dnews, to do this:

cd /var/spool/news
        mkdir OLD
        mv * OLD
        umount /var/spool/news
        emacs /etc/vfstab (or /etc/fstab)
                (change /news into /dnews)
        mount /var/spool/dnews

How do I uninstall DNEWS

On Windows NT

cd /dnews
        addsvc -del dnewssvc
        del /dnews...
        del /winnt/system32/dnews.conf
        del /winnt/system32/dnews.exe
        del /winnt/system32/xmit.exe
        del /winnt/system32/drobot.exe
        del /winnt/system32/dposter.exe
        del /winnt/system32/tellnews.exe

On UNIX

        rm -r /var/spool/dnews
        rm -r /usr/local/dnews
        rm  /etc/dnews.conf
        Remove dnews_start.sh from rc.local

Return to the Index

Common Configuration Questions

How do I setup DNEWS to take in a 'normal' NNTP - IHAVE feed

In access.conf, give your feed site access to send you ihave messages:

        my.feeder.site.com:ihave:::*

In dnews.conf, comment out the nntp_feeder definition.

In newsfeeds.conf, replace:

        site $NNTP_FEEDER
                groups *
                builtin
                posting

With:

        site my.feeder.site
                groups *
                builtin

And in dnews.conf add a line:

        cachedall true

You need to FTP an active file from your provider, if he won't supply you one then you can get one of the NetWin FTP site, but it is better to get a local one. Copy this file to your spool directory:

(Stop DNEWS first)
copy active_from_provider.txt /dnews/spool/active.dat

Now, read the FAQ section entitled "3.6 How do I set my EXCLUDE parameter correctly?"

Here is an example of a full feed from UUNET. Note the exclude parameter is essential.

-------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.*
                builtin
                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:::*

Return to the Index

How do I setup DNEWS to take an ihave feed from 4 machines and send back to another.

Lets assume you have been told you will get a feed from any or all of:

news1.xxx.net
news2.xxx.net
news3.xxx.net
news4.xxx.net

And you have also been told to send your feed back to

newsup.xxx.net

And after examining the PATH header in a news item from your upstream feed you have seen that they stamp all incoming messages with the name 'news_stamp.xxx.net'

Then you would setup access.conf like this:

news1.xxx.net:ihave:::*
news2.xxx.net:ihave:::*
news3.xxx.net:ihave:::*
news4.xxx.net:ihave:::*

And you would setup newsfeeds.conf like this:

site me
        groups *
site newsup.xxx.net
        groups *
        builtin
        exclude news_stamp.xxx.net
site your.mail.gatewway
        smtp

Return to the Index

How do I setup a news gateway for my LAN

With DNEWS, a modem, and Windows NT (or 95) you can give all the users on a LAN internet news access (to read and post) with only a single dial in modem to any local internet provider. You can use the RAS dialing features to allow dnews to dial when it wants to get or send news.

ras_number 2343234
ras_username chris
ras_password hahahaha

Return to the Index

How do I set my 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.

You can use the settings 'onlyposts' or 'maxpath 4' to stop routing without having to get the exclude setting correct.

Return to the Index

How do I setup DNEWS for local (intranet) use?

This is fairly simple to achieve, install DNEWS normally, then in dnews.conf set

cachedall true

Don't define the 'nntp_feeder' variable at all, remove the word 'posting' from newsfeeds.conf then start the server.

Now create your local groups, try to pick names that will never conflict with internet names if you decide to join up at a later date, to achieve this add your company's name to the start of each group name (or an abbreviation of it)

tellnews newgroup netwin.chatting y Group for chatting about things
tellnews newgroup netwin.schedule y For scheduling meetings
tellnews newgroup netwin.products y Product sheets and info for sales staff

Done!

How do split the NT spool area up

By default the history, workarea and spool are all in the same directory on NT, to split it up after installation stop dnews and split the files like this:

*.xov --> xover_dir directory

history.* --> history area

db_*.* --> spool

(everything else) --> workarea

How do I restrict the news groups on my server

Do this my modifying your ME feed in newsfeeds.conf, e.g.

site me
    groups *,!*sex*,@*binaries*,!*erotic*

The '!' symbol means 'NOT'

The '@' symbol also means 'NOT' but it also rejects items that are cross posted to other groups that are acceptable, so it is more severe.

After adjusting your me feed use these commands:

tellnews reload
tellnews undelete "*"
tellnews matchfeed

How do I censor the items within news groups

Since version 4.2g you can use the following commands, however use these with restraint as they do affect performance.

site me
groups *
accept default
    reject subject "sex"
    reject from "baduser@badsite"
reject body "naughtyword"
reject article "make money fast"
site local.interest
groups *
reject default
accept body "netwin.co.nz"
accept body "dnews"

Any header can be used including the fake headers 'body' meaning everything except the headers, and 'article' meaning everything.

The matching is NOT case sensitive. If the header CONTAINS the specified text then the rule is applied, rules are applied in order, if no rule matches then the default rule is applied, and there MUST be a default rule.

There is one special character allowed '\n' which can be used to match 'beginning of line' in the body or article option.

To reject items containing Mime attachments you might use something like:

reject body "\nContent-Transfer-Encoding: x-uue"

For performance reasons it is best to only use headers rather than body and article, and it is also best to minimize the number of rules.

How do I manage dnews remotely using dnewsmanager

Obtain dnewsmanager.exe and tellnews.exe from the windows version of dnews. Copy the dnews.conf file from your news server and put it in the /windows/system or /winnt/system32 directory, also copy the tellnews.pass. Set the workarea directory to point to the directory where you have put the tellnews.pass file. You should now be able to send tellnews commands to the remote machine.

Return to the Index

I did something stupid, can I fix it?

I deleted some item files by hand, is that ok?

This is like editing a database with a binary editor and removing a few records by hand, it is not a good idea :-(

However, DNEWS is written for people just like you, the database will correct itself with a little luck. :-)

Please do not edit an item file and remove individual items or change them, this will corrupt the database and the items will simply disappear.

Return to the Index

I deleted the history.dat file, is that ok?

No, it's not. You need to do this, type in:

tellnews rebuild_hist

And cross your fingers and wait until the rebuild finishes (it could take a few hours on a full feed system)

Return to the Index

Errors & Problems

Large messages & Memory Use.

Unless you have infinite memory on your system then it is necessary to limit the size of messages that can be processed. This also saves a lot of wasted bandwidth and disk space for you and every other news system. DNEWS limits messages to 1MB by default, (a fairly generous limit considering many news readers still die horribly with messages greater than 64K and anything bigger than this should not be sent via news but should be put on an FTP/WEB site and a pointer to it should be sent)

To deal with messages of size 1MB dnews needs about 6MB of memory, so if you are short of memory you may want to reduce this. To limit messages to 100k you would add a line in DNEWS.CONF

ITEM_MAX 100000

(this setting is not dynamic, you must restart DNEWS)

Return to the Index

I'm not getting any binary groups, why not?

The default configuration file (newsfeeds.conf) that comes with DNEWS excludes all binary groups. In my opinion these groups should not exist, they are a left over from the days before FTP and WEB and even EMAIL, so that news was the only option, now it is much more appropriate to post pointers to large files, rather than the file itself.

Anyway, you or your users demand it, to fix the problem edit your newsfeeds.conf file and remove the !*binaries* from the 'ME' feed.

Then use the commands:

tellnews undelete *binaries*
tellnews matchfeed

Return to the Index

My news reader says the newsgroups don't exist?

Check access.conf, you might have access to get in, but no access to read the news groups so they will appear empty or give 'no such newsgroup' errors. Also check you have an active.dat with groups in it.

Return to the Index

I don't know if posts are working?

There are two main reasons for posts to fail:

1. You've messed up your newsfeeds.conf file.

2. Your provider is not allowing you to send messages via 'ihave'

Follow these instructions to figure out where the error is:

Post an item to some local TEST news group, e.g. nz.test, then check the file DNEWS.OUT, this should give one line per message sent 'out' of your system, if this file is empty, or gives an error, first consider if the error is from DNEWS or if it is from the site you are sending items to. Second, look in dnews.log, search for "out:" once you've found the failure message you will probably find more clues just above or below it as to what went wrong.

Another common problem is sending the incoming feed back out to your provider, this clogs up your feed so that local posts almost never get sent. To confirm this problem look in the *.feed,*.send files in the workarea directory, if they contain message ID's that are not local then your EXCLUDE parameter in newsfeeds.conf needs adjusting.

See here for more help on sending out local posts

Return to the Index

I'm still not convinced my posts are getting to the other side of the planet?

Post an item to alt.test, you should receive 10-15 messages from news robots all over the world.

Return to the Index

I have an old fashioned feed coming in but I'm not getting any items?

There are two main reasons for incoming feeds to fail:

1. You've messed up your access.conf file (or your DNS does not work)

2. Your provider has not successfully setup the feed.

3. You don't have any newsgroups defined, you need to get an active file from your provider

In case 1), first try letting everyone in by putting a wildcard access line at the bottom of access.conf

*:read,post,ihave:::*
tellnews reload

Then check the log files, or use tellnews status, and you will see the name and number of any machine sending you IHAVE messages, (in the list of connected channels) put this name in access.conf.

If tellnews status shows the number twice, but no name, then your DNS is not working, use numbers in the access.conf file instead or fix your DNS.

Return to the Index

What should I do now that I've deleted history.dat

First I advise you not to play with guns because you are in danger of shooting yourself in the foot.

Before restarting dnews, delete history.idx and history.dat, and then start dnews and type:

tellnews rebuild_index

Which will scan the entire database and rebuild the history file. This could take 12 hours or more to run on 4 Gig of news.

Return to the Index

Why doesn't the status report match actual diskspace used?

DNEWS maintains an internal count of free disk space, this can be wrong, or possibly your setting for 'diskspace' in dnews.conf could be wrong. To correct the internal count use:

tellnews check_buckets
tellnews setused

Return to the Index

DNEWS goes very slow

On unix remove 'nohup' for dnews_start.sh and then stop and start dnews.

Check your DNS is working.

Type in:

tellnews stats

(not status)

This gives a listing of NNTP commands and how long dnews is spending on each one, this will show if one command is slow, and also if one command is being used more than is reasonable. Also consider adding memory.

Send the output of tellnews stats and status to the mailing list or NetWin for further suggestions.

Check the log file dnews.log, work out from the time stamps what dnews was doing when it locked up. Send the section showing the lockup to NetWin@netwinsite.com

This can happen if you run an expire while lots of people are trying to use the system. In this case you may need to use DMULTI if this is going to be a regular problem.

Use the tellnews stats command, this will also point to commands which are taking too long to process for some reason.

Check your DNS and also that site you are sucking from is working and it's news server is working, either of these can cause a problem. If the site you suck from is down for a few hours, you may have to remove the feeder line from dnews.conf until it is up again. (normally you won't have to do this, it's just a thing to watch for)

Return to the Index

DNEWS Crashes

Check the end of the file dnews.log, the only partly acceptable reason for a crash is if DNEWS runs out of memory, if the errors indicate this then see the section on memory use

If it gives an error 'signal xxx causing exit' then set the debugging level to 'debug', if the log files just ends suddenly, then set the debug level to 'flush'

loglvl debug           (or flush)
debug_rotate 3000

Now next time it crashes email the last few hundred lines of dnews.log to NetWin. We really don't accept crashes as acceptable behavior and will go to some extreme lengths to fix this sort of problem.

Instructions for getting a stack trace on NT

If dnews crashes on NT the most useful file you can send us (with the end of dnews.log) is the file:

/winnt/drwtsn32.log

This will help us find the problem and probably get you a fix within a few days.

Instructions for getting a stack back trace on solaris / unix

cd /usr/local/dnews
gdb dnews
core core
bt
(send the output of this to netwin@netwinsite.com)

Return to the Index

TELLNEWS fails or locks ups

The DNEWS process may take 1-2 minutes to initialize, so wait a bit before panicking.

If it gives the error 'Connection refused' then dnews probably isn't running, try starting it.

Check if the process is running

        ps -axl | grep dnews    (linux)
        ps -ef | grep dnews     (SunOS)

Check the log files

        more /usr/local/dnews/dnews.log

On UNIX 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:

  /usr/local/dnews/*

Also on UNIX it is possible to start dnews twice, this can cause real disasters, always check with ps and by looking at the log before restarting DNEWS.

Return to the Index

TELLNEWS says "Cannot access tellnews.pass"

For some reason tellnews cannot find it's configuration files, on NT this could be caused by a file protection problem or more likely if the disk drive letter was not specified in the configuration file DNEWS.CONF.

On VMS and UNIX you must be running the tellnews command from the usercode ROOT or NEWS or NEWS$SERVER.

Return to the Index

I see errors "NNTP, Sorry I can't talk to you" in the log file?

Your news-host does not want to talk to you, this is because there is a security file which gives a list of hosts which are allowed to connect, the name of your machine must be in this list, and your machine's name must be in the Domain Name Server tables as well as the Reverse Translation Domain Name server tables.

The access file may be called something like:

CNEWS /usr/local/lib/news/nntp_access

INND /usr/local/news/nnrp.access

DNEWS /usr/local/dnews/access.conf

DNEWS-NT /dnews/access.conf

Return to the Index

What does "Transfer permission denied" mean?

This can come from one of two directions, DNEWS can give this error when a site tries to feed it new items.

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

If you do want to allow incoming IHAVE messages, then add an IHAVE record for this ip address in the ACCESS.CONF file, and also remove the 'POSTING' flag from the NEWSFEEDS.CONF file for the ME site.

The last possibility is that this error is coming from your feeding site, in which case you need to contact the system manager of that site and ask him to give you 'ihave' access.

Return to the Index

Posts not going upstream, 437 Duplicate article?

The problem is DNEWS is echoing all your incoming news back to your news feed site, this is clogging the outgoing feed. To fix this see the section above entitled "3.6 How do I set my EXCLUDE parameter correctly?"

Return to the Index

I still can't figure it out, how can I get help?

You have two options, the DNEWS discussion list has lots of expertise on it. So try that first.

If that fails, or if you are a registered (not free) customer then as part of normal support NetWin provide email advice and help on setting up your system. In general try and give as much information as possible about your setup and what you want to do, and ALWAYS include a FAX or phone number just in case your mail system is broken as well :-) e.g.

Hardware & OS: Windows NT - Intel (or NT-Alpha or Solaris 4.3 etc...)

Version of DNEWS: 2.0b

Type of feed: Sucking feed (or full ihave feed...)

FAX: (include country code)

And any relevant setup files, usually one or more of: dnews.conf, newsfeeds.conf, access.conf

And maybe a few dozen lines from dnews.log showing the problem

(Please don't email 3MB of log files to us :-)

And state your problem clearly:

(a bad example) My feed doesn't work, why not?

(a good example) The IHAVE feed coming INTO my system from my provider is being refused, he says it gives an error, 'transfer permission denied', I have searched the log files but can't find an equivalent error at my end, what should I do? My dnews.conf and the output of 'status are attached.

Return to the Index

DNEWS Mailing List

There are two mailing lists for DNEWS, one is only used to make major announcements of new version or urgent patches. The other is for general discussion, you may want to join both.

Return to the Index

To subscribe to the discussion list send to:

dnews-request@adam.com.au

A message containing one word:

subscribe

Then to post to the list send to:

dnews@adam.com.au

Return to the Index

To subscribe to the announcement list

Send a message to:

dnews-announce-request@netwin.co.nz

Containing the line:

subscribe dnews-announce

This is a moderated list, it's only function is to provide timely information on new features, releases, bugs, installation gotcha's etc to interested people. You will not get 20 messages a day from this list, it will probably average 1-2 messages per month.

Return to the Index

This help file was generated from HTML source using WebTwin version 1.1


New features and bug fixes

DNEWS Updates List

Note: known bug in 4.5d, if you are using 4.5d please upgrade to 4.5h or later

4.5h 1 November 1997

Fixed rebuild_index so it is even more careful not to read in corrupt data.

Added tellnews command: tellnews copy_group old.name new.name This command copies the contents of the group, modifying the 'newsgroups' headers correctly and creating new message-ids. If you copy a group repeatedly to the same new name, only 'new' items will be copied. This allows you to have a group that is an 'archive' of a real group, the archive might have a longer retention period (in expire.conf)

Added a dnews.conf setting C_AUTH_SHOWPROT TRUE This gives the entire list of news groups even if the user does not 'currently' have access to the specified groups. This allows the user to then select a group and be prompted for the correct user/password. (This works well for NS4)

Modified authentication responses to attempt to trick both NS3 and NS4 into working with protected news groups, this appears to work as well as is possible (given the bugs in NS3), NS3 requires that you shut down netscape (both the news reader and the browser) before connecting to a second protected news group (because it refuses to prompt for a second user/password)

4.5g5 29th Oct 1997

Fixed period of time during expire process during when some items would not be readable.

Fixed slow database leak.

Fixed database leak on dmulti systems

Made spam rejection silent for local posts and non descriptive for ihave feeds. Use in dnews.conf spam_debug true to make the rejections noisey again while testing spam rules.

4.5g3

Added check for approved header with moderated groups.

4.5g2

Fixed live feeds.

4.5f6

Fixed bug which could under 'rare' conditions cause the active file to shrink. (e.g. killing dnews in the middle of it's startup)

4.5f4

Removed dependence on 'df' for most versions of unix

Fixed dmulti problem with restart leaving zombies

4.5f3

Fixed problem with live feeds occasionally sending bad headers.

Added config paramter cache_ongroup true which if set will allow Agent to cache an empty group that was previously cached.

Fixed problem with active.dat getting control characters in group names, this could cause 'IE' to lock up while downloading groups.

4.5f

Fixed bug with sucking list of news groups introduced in 4.5e

4.5e

bind_in now works on unix

suck_uucp now stops if disk space runs out.

Fixed program feeds on unix so they restart correctly on failure.

Added logging for live feed debugging.

4.5d8

Fixed bug with header caching not working

Fixed bug with sort_lastmbmade newgroup control messages only email if not already done

4.5d4

Fixed bug with dmulti and local posts over 100K intermittently failing.

Changed behaviour to allow Netscape 4 to work with some news groups password protected. (removed, will be re added when fixed)

Changed main loop to decrease cpu use.

Added support for a distrib.conf file, this should be the same format as distrib.pat as used by INN.

Fixed problem with tellnews newgroup causing readers to hang when updating the list of news groups IF the moderator flag was left off the command.

4.5d3

Changed update syntax from, updaten, to update n e.g. tellnews update 6 To queue an update from nntp_suck6

Fixed bug with , reject < 3000, reject > 3000 (reversed logic and allowed non quoted strings)

4.5d2

Added cache so multiple incoming streaming live feeds will not allow articles to come in twice. Added debugging for history (hist_debug true)

If (uucp_simple true) is set in dnews.conf then the rnews counts are ignored, and the messages are read in based on the 'rnews headers' alone. Also if the rnews count is '0' then this format is assumed.

RAS support fixed, it now works correctly and phone book entries can be used.

4.5d 26-Aug-1997

tellnews update_clear now clears pending tellnews commands as well

Fixed bug with some missing items in groups caused by cancels.

Fixed bug with diskuse drifting if 'xover_moved' is true.

On unix added two dnews.conf settings:

log_system true # Log to system log daemon
log_files false # (stop logging to dnews log file)

Added 'content_type' config parameter to dnewsweb.ini

Fixed slow database leak, use the command: tellnews remove_lost to remove the 'lost' messages from your database, this may free a significant amount of storage.

Fixed problem with IEX4 crashing when reading from dnews.

Patched output from list overview.fmt which should fix a problem with some versions of NewsWatcher

Added dnews.conf setting suck_percent 90 for sucking only old stuff, this makes dnews suck only 90% of items from a group.

Added sucking feeds 5-16. Sucking feeds 4-16 cannot overlap, e.g. you cannot suck rec.humor from sucking feed 6 and 8 but you can suck rec.humor from suck2 and suck3. (clear as mud)

Improved performance at taking a full feed

Improved performance of taking cancel messages by a large factor

Modified the index behaviour so that it is partially sorted every hour instead of only once a day. This improves reader performance.

Added standard password $lookup$ support for VMS, BSDI, FreeBSD, Linux, Solaris.

Added external authentication support for Linux, FreeBSD, Solaris. See the file libauth.c for details.

4.5a Spam protection (Beta release)

Experimental spam protection system. The following settings can be added to dnews.conf, you can just set 'spam_stop true' or you can fiddle with all the settings and thus tune your system differently to other peoples which may be an advantage as 'spammers' will try and get past some of these rules.

Setting	Default	Description
spam_stop	false	Enables spam protection
spam_test	false	Enables spam protection but doesn't reject anything, just logs what it would do.
spam_keepn	5	Number of rejected items to store in spam_n.tmp files (for reviewing)
spam_dup_total	5000	Number of items to 'remember' in our history of 'duplicate' bodies. Uses about 30 bytes per entry.
spam_dup_hits	6	Number of duplicate bodies (not cross posted) to allow
spam_dup_cross	400	Number of duplicate bodies counting cross posts to allow
spam_from_hits	60	Number of messages from any single user per hour
spam_from_cross	1000	Number of messages counting cross posts from any single user per hour
spam_from_total	5000	Number of users to keep tabs on in our history of duplicate users, uses about 100 bytes per user.
spam_host	false	Use 'nntp-posting-host' instead of 'from' for the above 3 rules.

In addition to fiddling with all the above settings, you can create a file in the WORKAREA as defined by dnews.conf and add lines to the file, any message containing text matching the lines in the file will be rejected.

The idea is to use things that common spammers place in the body of their messages, this allows you to stop anyone who manages to get past the automatic mechanisms above.

e.g. c:\dnews\spool\filter.dat

sex
1-800-3333-4343
1-800-SEXYPHONE
www.sex.
Make money fast

Here is a sample filter.dat file which has kindly been donated by one of our customers, this will stop about 98% of known spammers at the cost of killing about one in a thousand real news messages.

DNEWS uses a 'super' efficient mechanism to test matches in this file so that you can have several hundred lines in the file without performance sufferring, each line must be at least 3 characters long. The matching is not case sensitive and is only in the 'body' and 'subject' of the message.

4.4c

Fixed slow database leak which required a 'tellnews remove_lost' to periodically recover lost space.

Fixed crashing bug related to 'tellnews matchgroups' command

Fixed erroneous warning about access.conf giving world access to your server.

4.4a - 5th August 1997 - Major release of version 4.

Fixed bug that could 'occasionally' show 'no such article' when the item really did exist.

Fixed fault with dnewsmanager not working if the server is run on a port other than 119

4.3f

Fixed problem with dnews/cyclone/diablo, where messages containing nul characters caused the feed to stop. Also included are settings to prevent incoming feeds jaming up under any conditions.

4.3e

ADded dnews.conf setting nidxbf. The default is 6000, this must be big enough to handle all new items that arrive during a resort_index. Added some timeout code to fix feeds that block due to faulty messages.

4.3d

Made live_stream true the default.

Added code to fix unsynchronized live feeds.

Fixed problem with 'downloading' message not appearing if (cache_onxover true) is set.

Fixed newgroup command so it updates active.names correctly

If you use '$lookup$" and you have case sensitive passwords then you should add to dnews.conf auth_case true and you must change each line in access.conf to lower case unless you have dnews 4.3d or later.

4.3c

Fixed major bug in 4.3a (which could cause DNEWS to die)

4.3a July 14 1997

Allowed 'postonly' to work on a dmulti system.

Replaced command tellnews trimgroups [feednumber] with tellnews matchgroups [feednumber] which will add and remove groups to match the groups on the specified feed, this is intended for use with replicating servers to keep the active files synchronized.

Changed startup to automatically check for duplicate entries in active.dat (which was the cause of trimgroups occasionally deleting groups erroneously)

Fixed file handle leak introduced in version 4.2i, symtoms include tellnews status not responding.

Improved performance of live feeds

Added 'unblocking' code to live feeds to prevent problem items from blocking an outgoing feed.

Changed default live mode to non streamed for performance reasons.

Changed default live_nchan to 2.

Changed format of .feed files, the group:num field has been extended, it now includes: group:num:bucket_id:offset:len This allows direct database reads, but ONLY if the data is read before the next expire.

Added dnews.conf settings for NT/95 ras_number, ras_username, ras_password If these are set (in dnews.conf) then dnews will auto dial, fetch news and then hang up on its own.

Added tellnews command to detect when is a good time to 'hangup' a modem. tellnews isbusy, this command returns a different error status if DNEWS is fetching news still.

Fixed bugs in DMULTI relating to slaves not detecting the index switch

Fixed bugs in DMULTI related to 'recent' news not being visible

4.2t

Two extra settings in dnewsweb.ini:

wrap_post 60
wrap_text 60

wrap_post: wraps new posts, wrap_text: wraps the text in existing messages when they are displayed.

Added debug option for dnews.conf, debug_mem true

If set dnews will check all malloc'ed data every 20 seconds for over-writes and under-writes. (only used for debugging purposes, not intended for normal use)

Added default for suck_maxold to prevent news groups with big gaps from confusing the sucking logic.

Increased timeout on failed posts from a slave to a master dnews process from 30 seconds to 5 minutes.

Fixed possible bug in history indexes. Minor improvement to history indexes, and speeded up startup.

Speeded up a startup between a rebuild_index and an expire (which used to be very very slow)

4.2s

Fixed bug introduced in 4.2r :-)

4.2r

Memory handling changed to reduce usage, changes include:

u Move strings between blocks.

u Free string blocks.

u list newsgroups, group names stored more efficiently

u Bug with db_dir using too much memory fixed

4.2p

Corrected number of items shown in non cached groups

Minor changes for y2k problems with newnews/newgroups commands

Extended flexibility of acceptable dates.(Y2K issues)

Added dnews.conf setting reject_addhist true which if enabled, adds rejected items to the history database, this can reduce bandwidth wastage if you have more than one full feed coming in.

4.2o

Added tellnews command: tellnews killone group.name itemnumber This is like killitem, but does not remove crossposts.

Added dnews.conf settings: post_rec true (logs pertinent information about each post)

Fixed stip_auth

Improved checkgroups so it will deal with mis formatted messages better.

4.2n

Corrected posting mechanism on dmulti so that if it fails the user will be informed immediately.

Removed deletion of items that can't be accessed.

Updates file for 4.2m and older

This help file was generated from HTML source using WebTwin version 1.1


Guide to Usenet News and DNEWS

Guide to USENET news and DNEWS

The following is a brief guide to explain how Usenet news works, we suggest you read thru this in a linear fashion to gain a good basic understanding of News.

How UseNet News works?

The first question you should ask is how does news work, how does a news message get from your computer to every other news server in the world, and versa visa, how does a message get from somewhere in Japan to your machine.

Many people imagine the news servers are connected in a tree like pattern, the message would go up from your machine to the 'top' of the tree and then propagate down to all the other news servers.

This is entirely incorrect. Although simple in concept this would not work well in reality, and because the internet is more of an anarchy than an organized system so the news topology is much more random.

The real topology of news servers

Note that systems are more or less randomly connected together, there is no ‘top’. This structure results in three conditions that a server can find itself in.

1. Tails, machines connected to only one server

2. Feeders, servers connected to 2 or more servers

3. Loops, servers which are part of a loop, so the same message could arrive from two directions at once.

Imagine a message posted on “Goofy”. The message is stamped with a 'PATH' header which is added to as it passes thru every machine. If a host name is in the path then the server knows not to send it to that host again.

Here is what happens to the 'path' header as a messages travels from machine to machine:

On Goofy: Path: Goofy

On Mickey: Path: Mickey:Goofy
On Mars: Path: Mars:Mickey:Goofy
On Pluto: Path: Pluto:Mars:Mickey:Goofy

On Venus: Path: Venus:Mars:Mickey:Goofy
On Sun: Path: Sun:Venus:Mars:Mickey:Goofy

It may sound dumb but a news server will use this logic even to decide about sending a message straight back to the host it just got the message from. And because machines have multiple names it's possible for this logic to fail, when this happens your news server will try and send every single message back up stream. (A waste of network bandwidth)

Above the message is about to be delivered to 'Earth' from two directions. Here even with the path header working correctly both machines will try and send to 'Earth' (because neither has ‘Earth’ in it’s path header). How does Earth know when it has received this message once? Enter the history database...

Each message is guaranteed to contain a unique message ID (The unique message ID is created by the news client when the message is generated and reflects the machine on which the message is generated and the time it is generated). The news server stores these unique message ID's in a database, and with every incoming message it first checks if it currently has that message ID before it stores the new message.

This database which could be 100MB’s, has to be very fast, DNEWS probably has the fastest history database of any news server.

Pseudo code for processing an incoming message

u If the article is in the history database then reject it.

u For each group in ‘Newsgroups:’ header:

u If the group exists locally, store the item (or link it to stored item), at next free item number for that group.

u Stored: rec.juggling 3028

u Stored: rec.humor 205 (Linked to rec.juggling:3028)

u Stored: alt.magic 4266 (Linked to rec.juggling:3028)

u For each server FEED: if the server is not in PATH header add the article to the FEED file for that server or in the case of live feeds send the item to the specified machine.

NNTP Protocol / commands

Network News Transfer Protocol (NNTP) is a protocol that enables news server and client software to "communicate" with each other to; distribute, inquire, retrieve, and post news articles. NNTP is designed so that news articles are stored in a central database allowing a subscriber to select those items he wishes to read. Indexing, cross-referencing, and expiration of aged messages are also provided.The description of the protocol is embodied in RFC's 977 and 1036 and maintained by the Internet Engineering Task Force (IETF), the standards body that maintains Internet protocols.

NNTP works with simple TEXT commands, using telnet you can run NNTP by hand.. On some computers (NT 3.5) you need to type ^J after each command instead of just ‘enter’ There will be no ‘echo’ so you have to type carefully :-), here is a list of some of the NNTP commands you might use by hand.

200 161.29.2.2 DNEWS Version 2.4d, posting OK
help
mode reader
list
group rec.humor
article,head,body number|<message id>
ihave,post

Command	Description
help	Gives a list of valid nntp commands for this server
mode reader	Tells it you are a news reader, not a machine trying to send a feed in.
list	Gives a full list of news groups, this could take 20 minutes!
group x.y	Sets the current group, and shows you the number of articles and the first and last item in each group
article nnn	Shows you an entire article, you can specify it by item number or by message
ihave	Offers the server a news message, it responds with please send the message, or no thank you.
post	Offers the server a NEW article.
NNTP example

telnet news.server.name 119
200 161.29.2.2 DNEWS Version 2.4d, posting OK
mode reader
200 DNEWS, Posting OK.
group rec.humor
211 299 101760 104058 rec.humor selected
article 104058

NNTP Protocol & extensions

Here are some important NNTP commands that you should understand:

ihave <message-ID>
check, takethis
post
xover
xhdr

When a news server wants to send a feed at your news server it would traditionally use the 'ihave' NNTP command. Here is how the traditional IHAVE protocol works:

Send: ihave <messageid>
Waitfor: Wanted or Not Wanted
Send Message (if wanted)

This protocol doesn’t allow streaming, as it is necessary to wait until the server responds before sending the message, or skipping.

The new NNTP commands 'check' and 'takethis' are basically the same as ihave, but the operation is split in half so that a feed can send 100 check’s and then send ‘takethis’ followed by the articles for the ones that the server wanted.

The 'XOVER' command was added to allow a directory of articles in one group to be shown without downloading the header information from every article in the group. Example:
xover 1200-1400
The server responds with 200 lines, each line contains the interesting header fields for one message separated by tabs.

A raw NNTP article

From: bn946@FreeNet.Carleton.CA (Les Griswold)
Newsgroups: soc.couples.intercultural,alt.politics.white-power,alt.fan.oj-simpson
Subject: Re: Beaver's pride
Date: 23 Apr 1996 09:06:26 GMT
Message-ID: <4li6ii$fj8@freenet-news.carleton.ca>
NNTP-Posting-Host: freenet3.carleton.ca

This is the message here
which I’ve actually just made up.

Problems

Traditional news servers have the following problems:

u 20,000 News Groups

u 128Kbps 24 hours / day

u 146000 articles / day

u INN, installation

u INN, management

u Disk Use

u Memory Use

u With a full feed a 64kbps internet connection cannot deal with the volume. At 400MB per day you need 4Gig just to hold 10 days of news.

u Large numbers of file open and append operations/second to store each item in a separate file.

u On the average site, only 200 news groups are ever read, or approx. 1-10% of the full news volume.

u INN is comparatively difficult and time consuming to install, setup and maintain and requires a certain level of unix expertise.

u News sin’t smooth, some days 800MB’s arrive, and so the disk is filled up and the system fails.

u Each news reader requires 1-2MB of RAM, (maybe more if nnrpd has not been linked using sharable images) the INN process itself uses 32MB of ram at least. The result on limited resources, heavy swapping and slow response.

For many organizations these problems have made it either not practical to run a local news server or difficult to provide a good news service. DNEWS was developed to overcome these problems: DNEWS is easy to install, exceptionally stable and designed to run unattended. It was also designed to be very fast and much more efficient than earlier servers.

In addition to being able to take a full several times faster than earlier news servers DNEWS introduces the unique dynamic sucking feed option. In many enviroments where less than about 3000 groups are actively read the Dynamic Sucking Feed can provide substantial performance advantages and savings in network bandwidth and diskspace.

DNEWS Dynamic Sucking Feed Option

Characteristics

u Only groups which users read are sucked.

u All groups are available for the user to choose from (within your organizations policy) without having to ask

u Standard NNTP ‘reader’ protocol is used, so a feed doesn’t have to be setup

u Low impact, history lookups avoided, newnews not used

DNEWS dynamic sucking results

Advantages

1-10% of disk space used
1-10% of network bandwidth used
Messages can be stored much longer
Nightly expire run down from 24 hours to 5 minutes
Much easier to setup at both ends.

This help file was generated from HTML source using WebTwin version 1.1


DNEWSWEB Installation and Upgrade instructions

DNEWS News Server Manual

Installing DNEWSWEB

DNEWSWEB is a web to news gateway, it lets you merge your web pages and your news groups. By displaying usenet and local news groups on your web pages users can read and post news directly using their favourite web browser.

DNEWSWEB is provided FREE with your DNEWS News Server and is quick and simple to set-up.

You will have recieved the following DNEWSWEB files when you downloaded DNEWS:

dnews\dnewsweb.exe
dnews\dnewsweb.ini
dnews\dnewsweb.txt
dnews\web\*.tpl (directory of template html files)

templates d:/dnews/web

You must install DNEWSWEB on your WEB server, in a directory that you have already setup on your server as containing CGI programs, you must read your server documentation if you don't currently know how to setup a cgi program, typically you would copy the files to a directory like:

SERVER_ROOT\cgi-bin\

Two files should be copied to this directory

copy \dnews\dnewsweb.exe \SERVER_ROOT\cgi-bin
copy \dnews\dnewsweb.ini \SERVER_ROOT\cgi-bin

In some instances you will have to place the .ini file in a different directory, this is dependent on your server software, sometimes the 'SERVER_ROOT' is the right directory. (DNEWSWEB will give an error if it can't find this file, in which case just try moving it somewhere else).

Now edit dnewsweb.ini and define: your news host, templates directory and news groups to display on your web page.

Example:

notepad \SERVER_ROOT\cgi-bin\dnewsweb.ini

Syntax: Parameter Value

Parameter	Value (Example)	Explanation
newshost	news.your.domain	The name or number of your DNEWS news server. Use an IP number to speed up the process.
templates	c:/dnewsweb	The directory where you have copied the *.tpl files
groups	rec.humor, local.chat,local support	This setting allows you to list the news group who's names you want to appear on the top dnewsweb page. Generally you will want to list some Groups of particular interest or importance. For example you may have a local support news group or want everyone to see the rec.humor group or rec.chat
allow	local.*,rec.*	Groups to actually let people read: This setting allows you to specify which of all news groups you will allow access to via your website. For example allow rec.* allows all groups matching the rec.anything in the news header

Now copy the tpl files from the distribution directory to the directory you have defined for templates in dnewsweb.ini

cd /dnews/web
copy *.tpl /dnewsweb

If you wish, you can tailor the template files to give dnewsweb the same look and feel as your own web pages. It is assumed you know how to edit raw html files, in addition there are some variables that you can use. The list of variables depends on which page dnewsweb is showing. For example the %%h_subject%% variable only works when displaying an item, or directory listing.

Note: If you leave the template files in the /dnews directory, then they will be over-written next time you upgrade dnews, so it is best to move them if you wish to tailor the appearance.

Here is a list of the template files, and a brief description of each. In some cases alternate files have been included in the distribution, you may want to try one of these for an alternate layout, simply copy the alternate file over the top of the original.

File Name	Description
top.tpl	The first/top page shown when dnewsweb is run
list.tpl	A list of newsgroups at a given level in the tree
items.tpl	A single news group, listing articles in that group
item.tpl	A single article within a news group
follow.tpl	Used when user posts a FOLLOW-UP message
post.tpl	Used when a user post a NEW message
posted.tpl	To tell the user that the post was successful
required.tpl	To tell the user that a required field was not filled in
search.tpl	For searching the FTS database (if enabled)
results.tpl	Results of FTS search
xsearch.tpl	For searching a single news group
xresults.tpl	Results of searching single news group
postit.tpl	Template for messages posted using posting form
post_form.tpl	For posting with extra fields on form (replace post.tpl with this)

Template Variables

Here is a list of some of the variables that you can use in these templates

Variable	Description	Typicall in
%%b_action%%	the cgi ref to dnewsweb needed for a form 'action'
%%b_group%%	href to go to an individual group	top.tpl
%%b_search%%	href to go to the FTS search form	top.tpl
%%b_allgroups%%	href to go to the list of all news groups
%%begin_dir%%	Starts list of all news groups at this tree level	list.tpl
%%end_dir%%	Ends list of news groups	list.tpl
%%ifdef%%var%%	Conditional inclusion if variable is defined
%%b_related%%	List of related message	item.tpl
%%b_recent%%	Most recent articles in group	item.tpl
%%b_topgroups%%	Goes to top/main page of dnewsweb	item.tpl
%%b_allgroups%%	Goes to list of all news groups	item.tpl
%%b_follow%%	Goes to form for posting followup messages	item.tpl
%%b_post%%	Post a new message to this group	items.tpl
%%b_searchgrp%%	Search this group for text	items.tpl
%%b_next%%	Next page of this group	items.tpl
%%b_prev%%	Previous page of this group	items.tpl
%%indent%%1%%	Used to define each indent level for threaded display	items.tpl
%%begin_item%%	Starts definition of how each item in dir is displayed	items.tpl
%%end_item%%	Ends definition of each item	items.tpl
%%b_item%%	Goes to a particular item	items.tpl
%%h_subject%%	The subject for a given item	items.tpl
%%h_date%%	The date for a given item	items.tpl
%%h_date_trim%%	The date trimmed to be readable	items.tpl
%%h_from%%	The email address of the person who posted it	items.tpl
%%h_from_trim%%	The email address trimmed to be readable	items.tpl
%%h_lines%%	The number of lines in this message	items.tpl
%%h_content-type%%	The value of the mime content type header	items.tpl
%%h_scores%%	The score an item got in a search
%%h_subject_30%%	The first 30 characters of the subject, also 40 and 60	items.tpl
%%summary%%	The summary of a search result
%%quote_body%%	Used in 'followup' to quote a previous message
%%show_item%%	Used to show the actual item	item.tpl
%%begin_dir%%	Starts the list of items within a group	items.tpl
%%end_dir%%	Ends item list
%%indent%%	Define the codes to indent and un indent	items.tpl
%%h_references%%	The references header
%%h_message-id%%	The message id of a message
%%h_newsgroups%%	The newsgroups it is posted to
%%h_group%%	The current group being displayed.
%%include%%file%%	Reads the named file in, (it cannot contain variables)

%%ifgroup%%comp.*%%

The %%ifgroup%%ListOfGroups%% can be used to change the appearance of pages based on the news group being displayed. (e.g. you might want to use a background image of little cars for a newsgroup devoted to cars)

%%include%%advert.htm%%

Useful for displaying adverts, you would setup a cron job (or program that runs every 10 minutes) to change the advert file, thus displaying a new advert each time someone reads the group. By only changing the advert every 10 minutes you avoid the problem of people turning off the images because they are too slow.

Table Layout

See the file items_t.tpl (or copy it to items.tpl) to see how a table can be used instead of the standard list format for news items.

DNEWSWEB.INI settings

Symbol	Example	Explanation
newshost	news.your.domain	The name or number of your DNEWS news server
templates	c:/dnewsweb	The directory where you have copied the *.tpl files
groups	rec.humor, local.chat	Groups that will appear on the top dnewsweb page, this setting is obsolete, use the top.tpl file instead.
post_groups	local.*,rec.humor	List groups that users may post to using dnewsweb
post_users	232.33.2.1,22.44.*	List IP addresses (not numbers) that may post
debug	True	Enables verbose debug output, (for NetWin use)
pagesize	60	Approx. number of items to show per page
allow	comp.lang.*,local.*	Groups to allow users read access too.
content_type	text/html	Used for some web servers which allow fancy features if the content type is changed to something non standard.
log_file	/var/log/dnewsweb.log	Allows you to specify a directory where dnewsweb has 'write' access to create it's log file.
sort_rev	true	Puts new messages at the top of each page instead of the bottom.
wrap_post	60	Wraps new posts at 60 characters
wrap_text	60	Wraps current existing articles at 60 characters

Extended Form Feature

With DNEWSWEB you can define a posting form, with required and optional fields, these will be used to force the user into giving you specific information with every post, for example with a newsgroup that is used for technical support you would require that the user tells you what version of the software they are using etc. To try this out start switch to the example forms:

copy post_form.tpl post.tpl
copy postit_2.tpl postit.tpl

Then try posting a message.

In the post.tpl there are two hidden fields to tell dnewsweb what fields it should look for and which ones are required.

<input type=hidden name="required" value="os,version,reg">
<input type=hidden name="optional" value="keywords">

And then you can use normal form input fields to ask for the extra data, e.g.:

Operating System <input name="os" size=50 > (Required)<br>
Software Version <input name="version" size=50 > (Required)<br>
Registration Number <input name="reg" size=50 > (Required)<br>
Keywords <input name="keywords" size=50 > (Optional)<br>

And finally you need to define a file called postit.tpl which dnews will use to construct the actual layout of the message that will be posted to the news server, e.g.

Operating System: %%os%%
DNEWS Version: %%version%%
Customer Registration Code: %%reg%%
Keyword: %%keywords%%

%%message%%

Using frames just like a Windows news reader.

The following example (frame.htm) can be used to run DNEWSWEB inside frames, the http address below needs to be changed to match your server.

<html>
<head>
<Title> DNEWSWEB using frames </title>
</head>
<frameset rows="50%,50%">
<frame src="http://your.web.server/cgi-bin/dnewsweb.exe" name="items">
<frame src="empty.htm" name="item">
</frameset>
</html>

Then in the templates items.tpl and item.tpl define the targets for buttons that should switch forms, for example the 'show item' href in items.tpl must point to the 'item' frame, e.g.

<li><a href="%%b_item%%" target="item">%%h_subject%% </a> ...<br>

Make similar changes to the href buttons in item.tpl that should jump back to the "items" frame. (see items_f.tpl and item_f.tpl for examples.)

<td><a href="%%b_related%%" target="items">Related Items</a>
<td><a href="%%b_recent%%" target="items">Recent Items</a>
<td><a href="%%b_topgroups%%" target="items">Standard Groups</a>
<td><a href="%%b_allgroups%%" target="items">All Groups</a>
<td><a href="%%b_follow%%">Post Followup</a>

This will display the directory of a group in the top window, and the actual items in the bottom window, just like a regular windows based news reader. This is totally implemented via the flexibility of dnewsweb templates.

HELP, It asked me where to save dnewsweb.exe?

This means you have failed to tell your web server that the directory cgi-bin/ contains CGI programs and not WEB pages. Go back to your web server administration window and look for help on CGI directories. (This is the single most common question we get !!)

Do I have to use it with DNEWS?

It will run with other news servers, however it is much faster with DNEWS and the 'list all newsgroups' function will only work with DNEWS.

Full text search engine

To enable the full text searching button you need to add

search true

to dnewsweb.ini (as well as installing the xmit process to build the indexes, see the manual for details on doing this, NOTE: the FTS database is resource intensive, especially if you try and index your entire news spool, plan on doubling your RAM if you want to set this up)

The threading doesn't make sense, is it faulty?

If you are looking at a large news group, then the threading will 'break down' because all you can see are parts of many different threads. You can increase the page size to reduce the extent of this problem. Also the next version will add a visual break to show where one 'thread' finishes and a new 'partial' thread starts.

Upgrading DNEWSWEB

Copy DNEWSWEB.exe into your cgi-bin directory.

NOTE: The old mechanism of header and footer files has been replaced by TEMPLATE files in this version to increase flexibility, this means that when you upgrade you must define a template directory in DNEWSWEB.ini and you must copy all the template files into that directory from the distribution directory.

This help file was generated from HTML source using WebTwin version 1.1


Full Text Search

Full Text Searching - An Extension to Dnewsweb

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 significant 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 (NT)

fts_dir /var/spool/dnews/fts (Unix)

2) Create the directory and move or copy fts.conf into it.

(NT)

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)

(UNIX)

mkdir /var/spool/dnews/fts

copy fts.conf /var/spool/dnews/fts

3) Install an xmit service to build the indexes:

(NT)

addsvc -del dfts

addsvc -add dfts xmit.exe "dfts ftsfeed -fts -at *5 *"

(UNIX)

nohup xmit ftsfeed -fts -at "*5" "*" &

(put that in a startup file)

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

(UNIX) nohup xmit ftsfeed -fts -at "*5" "*" &

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. You might need to run an expire (tellnews expire) to trigger the initial index to be written.

This help file was generated from HTML source using WebTwin version 1.1


Gui's

The GUI's - Windows NT, Windows 95

The Windows versions of dnews ship with the DNEWSMAN interface, the Macintosh version has a similar interface called the Tellnews Control. These are graphical interfaces that allow the user to control the dnews server including starting and stopping the dnews service

The DNEWS Manager allows easy setup and management of the news server. The following chapter describes what can be done from each dialogue.

The front dialogue is divided into two main areas, on the left options for configuring DNEWS and on the right options for controlling the running system and sending interactive commands to it.

Setup DNEWS Server - Configuration Options

Main Options

This dialogue covers the major settings in dnews.conf that need to be configured.

My IP Name

This is the ip name or number of your news server. It must be a working name or number which you could use to connect to your PC via FTP or TELNET. If you have multiple IP numbers then use the local ethernet IP number. If you use a name that doesn't work the status and other COMMANDS won't work. (and may lock up for extended periods when you try them)

Suck News From

This is the ip name or number of the server you are going to fetch news from. If your name server is flaky, or not always available (e.g. with RAS) then using the IP number can avoid lock ups. You need simple NEWS READER access to this machine.

If you are getting a full IHAVE feed from a site (e.g. they are pushing the news at you), then this item should be left blank.

Disk Space (MB)

DNEWS will try and keep it's disk usage below this setting. A value of 300 is good for about 200 users but it is dependent on their reading habits.

Manager Email

DNEWS will send you a daily report of the expire process. This should be a valid internet email address, e.g. joe@my.domain

Confirm Postings

DNEWS can send your users confirmation messages when the local postings are sent up stream, this setting lets you tell DNEWS who your users are (as it doesn't want to send confirms to every person on the internet who sends a message 'through' your machine. You must include a wild card (* character) in this. e.g. *this.domain. Note: *.this.domain would not match joe@this.domain whereas *this.domain will. (the extra full stop causes the problem)

If you run two domains you can give both domains separated by a comma, e.g.

*this.domain,*other.domain

Warn Info Debug Flush

The default logging level is 'info' If you experience crashes NetWin support staff will ask you to set the debugging level to FLUSH and then send the log file next time a crash occurs. The debugging level will slow down the server.

Try to translate IP numbers to Names

When a user connects DNEWS can try and translate the ip number (e.g. 161.203.12.5) into an ip name (e.g. pc1.my.domain) But this translation could lock up your server if your DNS is faulty (or if it can't be contacted for some reason) So you may want to stop DNEWS from doing this translation. However if you do this you must put ip numbers into access.conf (the user access file) because it will not be able to check the ip names.

Advanced…

This dialogue lets you modify advanced settings from dnews.conf

Cached Life

The number of days that a group should remain 'cached' after it has been read by a user. When a group is 'cached' items will be fetched on the off chance someone will want to read them. This setting has nothing to do with how long items are stored for after they have been fetched, that is set in the configuration file expire.conf

Expire At

The time in hours and minutes that DNEWS should run it's automatic expire job. Either value can be a wild card or a list, so if the minutes were set to 15,45 then the expire would run at quarter to and quarter past the hour. If the hours were set to 3,20 then an expire job would run at quarter past 3 and quarter to 4 and quarter past 8p.m. and quarter to 9:00p.m.

Update At

How often DNEWS should fetch new articles, this is runs every 10 minutes by default. It would not hurt to decrease this to once per hour. e.g. minutes=15 hours=*

Rotate Log

The log files tend to grow very rapidly, in order to stop them getting too big they can be automatically rotated (deleted) every 'n' lines.

Config Files

This setting is where the config files are, don't play with this!

Spool Files

This setting is where the spool directory is, you may need to move the spool area to a larger disk if you want to have heaps of news. To do this:

stop the server

Move the spool tree using file manager

Change this setting using DNEWS Manager

Start the server

Cross your fingers :-)

Sucks …

This dialogue is used to set up the site or sites that DNews will suck from.

Multiple sucking feeds can be set by supplying a wild card of news groups to fetch for each sucking feed. The largest set should be the first in the list.

E.g.
suck1  main.news.site *
suck2  local.news.site secret.*

Feeds Out

This dialogue lets you modify the settings of the selected feed.

Users and Feeds In

This dialogue lets you control access to your server.

Each line in the access.conf file is checked when a connection is made, both ip numbers and names (if reverse dns translation is enabled) are matched to the first column. If a match occurs then the READ, POST, IHAVE and GROUP settings are then assigned to that user.

After connecting the user can then supply a username and password, when this happens the file is checked again, and the read,post,ihave and group settings are modified for that connection.

Note also, that every line in the file is matched, and the last match is used, so you have to put general settings at the top, and specific user settings near the end.

Here is an example of allowing a user to connect and then give user/passwords

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

This will prevent the rest of the world from even connecting, while letting most people read and post messages, Joe will be able to connect from any domain as long as he uses his username and password.

If you use the Netscape browser then there are limitations on how you can use this file, this is because Netscape doesn't allow you to enter the username and password unless access is refused by the server. This isn't generally a problem but it can cause a problem if you want to have people from one domain connecting with and without passwords, this will not be possible via Netscape, but will work with all other browsers.

Setup Wizard

This dialogue will step you through the basic DNEWS setup, it is intended to get the system running when the person answering the questions doesn't really know what they are doing :-)

It should only be run ONCE when you first install DNEWS as it may change settings which you have since modified.

1. Type the ip name or ip number of the machine that you are running dnews on in the available box and then click on the OK button.

2. If you want to set up a sucking feed click on the check box then the OK button, if you will be taking an Ihave feed, ensure that the box is not checked, then click on the OK button.

2a. If you checked the box to suck news then you'll need to set where news is to be sucked from, type in the ip name or the ip number of the site that is providing you with a sucking feed.

3. In this dialogue box you need to enter the name of your mail gateway, this may or may not be the machine which you are running dnews on. If this is the same machine you need to use the mail alias which will be different from the name that you set for the dnews machine in box 1. Type in the name and click the OK button.

4. DNews produces a daily report supplying a number of statistics about what it has done over the preceding 24 hours, type the address of the person to mail these reports to into this dialogue box and click on OK.

5. Decide how much space to give dnews to store news on, for an Ihave feed with binaries groups 4000 to 10000Mb are needed, without the binaries groups 2000 to 4000Mb will be sufficient. With a sucking feed 200Mb is about the minimum required to accept a feed. If you are using DNews as an intranet server and will have only local groups then as little as 30Mb may be enough.

6. When someone posts to a group dnews can send a confirmation that their post has been successful, type in the address range that dnews should send confirmations to. E.g. you@machine.your.domain will send confirmations to you only, *@machine.your.domain will send confirmations to anyone who posts from an account on the machine, *your.domain will send email confirmations to anyone who posts from that domain.

Type in the ip numbers of the people you want to allow to read news and click on OK.

Type in the ip names of the people you want to allow to read news and click on OK.

Write Changes

This button will write any changes you have made to your configuration files. If you don't press this button the changes will be lost.

WARNING: Generally you should make changes, then press "Write Changes" then press "Do Reload" to force the DNEWS server to reload it's configuration files.

Manage Server - Command Options

Stop Service

This button stops the DNEWS service (it will not work on Windows 95 or from a remote PC using a mapped drive, in those cases you should use the Commands dialogue, and send an EXIT command.

Start Service

This button attempts to start the DNEWS service, it will not work from a remote workstation using a mapped drive or on Netware or on Windows 95).

For Windows 95 you must start the service by double clicking on the dnews.exe icon.

For Netware you must load the NLM from the console (or with rconsole)

View Log

This button shows the last 100 odd lines of the dnews.log file. After starting the server you can use this button to find out when the server has actually finished it's initialization. Also in the event of any unexplained behavior you should check the log file.

Status

This buttons sends a 'status' command to the server and shows you the output, if it locks up doing this then you probably have a problem with your reverse name translation, which you can disable in the main setup dialogue.

Commands…

This dialogue lets you send any of the builtin TELLNEWS commands to the server. If the command has parameters you will be prompted for them. You can use this to add new local news groups, or perform other strange and wonderful management tasks.

Do Reload

This button send DNEWS a reload command, this will make the server re read all it's configuration files, You need to press "Write Changes" before pressing the reload button.

WARNING: This button DOES NOT reload the configuration files into DNEWS Manager, if you change the files outside of DNEWS Manager then exit it and restart it to pickup your changes.

Config Files

This dialogue lets you tell DNEWS Manager where to find the DNEWS configuration files.

Use this if you are running DNEWS Manager from networked PC, first SHARE or MAP a drive to the disk where DNEWS.CONF and the dnews configuration files are stored, and then run DNEWS Manager and tell it which drive and directory to look in.

FEED Modify

This dialogue lets you modify the settings of the selected feed

Note the first FEED must be the ME feed. This is a dummy feed, which is actually used to check if incoming items match the list of news groups that you want.

If you change the ME feed you may have to send the TELLNEWS COMMANDS:

undelete *

matchfeed

Don't do this without first understanding what they mean :-) (see the manual)

Access Modify

This dialogue lets you modify the settings of the selected access line.

Read access lets users read news items

Post access lets users post news items

Ihave access lets an IHAVE feed come into your machine

Registering DNEWS.

To register to DNEWS click on the REGISTER button in DNEWSMAN and fill in the questions.

Alternatively you can use the TELLNEWS REGISTER command from a COMMAND SHELL. We do require payment before issuing a license key, you can make payment by giving credit card information with your registration. If you wish you can fax credit card information to us on +64 9 630 0689. Other forms of payment are also acceptable, Bank transfer, Cheque, Purchase Order etc.

After answering all the questions you can then start up your favorite email system, create a new message and then press SHIFT+INS to paste the registration form into the message.

Send the message to your local DNEWS reseller, or netwin@netwinsite.com in 24-48 hours your will receive a license key to fully enable dnews.

Entering your registration Key (when you get it via Email)

Enter the key with the tellnews key command or from the COMMANDS button on DNEWS Manager.

e.g.

         tellnews key a1b2c3d4e5

This help file was generated from HTML source using WebTwin version 1.1


Gui's

TellNews Control the Mac GUI

The Windows NT version of dnews ships with the Dnewsman interface, the Macintosh version has a similar interface called Tellnews Control. These are graphical interfaces that allow the user to easily manage the DNEWS server including starting and stopping the dnews service.

TellNews Control allows easy setup and management of most aspects of the DNEWS server. The following chapter describes what can be done from TellNews.

The main control panel provides buttons to start and stop the DNEWS news server, to check the status once the server is running and fields to configure the main DNEWS options. Two forms of help are provided within TellNews Control: Firstly, baloon help is available and can be turned on and off by clicking the light bulb button at the left of the main message bar. Secondly you can option click any field to see a brief explanation of what should be entered in it.

Setup DNEWS Server - Configuration Options

Main Options

There are two windows provided by TellNews. The top window provides buttons and fields for all the main DNEWS configuration settings and a small help and message area at the bottom with a lightbulb button for ballon help. Below this is a large message window which will show the various messages returned by DNews in response to command messages such as show status.

My IP Name

This is the ip name or number of your news server. On initial startup TellNews will enter this field for you. It must be a working name or number which you could use to connect to your Mac via FTP or TELNET. If you use a name that doesn't work the status and other COMMANDS won't work. (and may lock up for extended periods when you try them)

News Feeder

This is the ip name or number of the server you are going to fetch news from. If your name server is flaky, or not always available (e.g. with RAS) then using the IP number can avoid lock ups. You only need simple NEWS READER access to this machine.

If you are getting a full IHAVE feed from a site (i.e. they are pushing the news at you), then this item should be left blank.

Disk Allocation (MB)

DNEWS will try and keep it's disk usage below this setting. A value of 300 is good for about 200 users but it is dependent on their reading habits.

Manager Email (field to right of My IP Name)

DNEWS will send you a daily report of the expire process. This should be a valid internet email address, e.g. joe@my.domain

Confirm

DNEWS can send your users confirmation messages when the local postings are sent up stream, this setting lets you tell DNEWS who your users are (as it doesn't want to send confirms to every person on the internet who sends a message 'through' your machine. You must include a wild card (* character) in this. e.g. *this.domain. Note: *.this.domain would not match joe@this.domain whereas *this.domain will. (the extra full stop causes the problem)

If you run two domains you can give both domains separated by a comma, e.g.

*this.domain,*other.domain

Logging Level

The default logging level is 'info' If you experience crashes NetWin support staff will ask you to set the debugging level to FLUSH and then send the log file next time a crash occurs. Changing the debugging level will slow down the server.

DNS Available

When a user connects DNEWS can try and translate the ip number (e.g. 161.203.12.5) into an ip name (e.g. pc1.my.domain) But this translation could lock up your server if your DNS is faulty (or if it can't be contacted for some reason) So you may want to stop DNEWS from doing this translation. However if you do this you must put ip numbers into access.conf (the user access file) because it will not be able to check the ip names.

Life

The number of days that a group should remain 'cached' after it has been read by a user. When a group is 'cached' items will be fetched on the off chance someone will want to read them. This setting has nothing to do with how long items are stored for after they have been fetched, that is set in the configuration file expire.conf

Expire At

The time in hours and minutes that DNEWS should run it's automatic expire job. Either value can be a wild card or a list, so if the minutes were set to 15,45 then the expire would run at quarter to and quarter past the hour. If the hours were set to 3,20 then an expire job would run at quarter past 3 and quarter to 4 and quarter past 8p.m. and quarter to 9:00p.m.

Update At

How often DNEWS should fetch new articles, this is runs every 10 minutes by default. It would not hurt to decrease this to once per hour. e.g. minutes=15 hours=*

Config Files

This setting is where the config files are, genrerally best not to play with this!

Spool Files

This setting is where the spool directory is, you may need to move the spool area to a larger disk if you want to have heaps of news. To do this:

stop the server

Move or copy the spool folder using the finder

Change this setting using DNEWS Manager

Start the server

Cross your fingers :-)

Sucks …

This dialogue is used to set up additional options for the site or sites that Dnews will suck from. (Still under construction for Mac version - currently Mac users must modify the dnews.conf file directly to change these settings)

Multiple sucking feeds can be set by supplying a wild card of news groups to fetch for each sucking feed. The largest set should be the first in the list.

E.g.
suck1  main.news.site *
suck2  local.news.site secret.*

Feeds Out

This dialogue lets you modify the settings of the selected feed. (Still under construction for Mac version - currently Mac users must modify the newsfeeds.conf file directly to setup outgoing feeds.)

Users and Feeds In

This dialogue lets you control access to your server. (Still under construction for Mac version - currently Mac users must modify the access.conf file directly to limit access)

Each line in the access.conf file is checked when a connection is made, both ip numbers and names (if reverse dns translation is enabled) are matched to the first column. If a match occurs then the READ, POST, IHAVE and GROUP settings are then assigned to that user.

After connecting the user can then supply a username and password, when this happens the file is checked again, and the read, post, ihave and group settings are modified for that connection.

Note also, that every line in the file is matched, and the last match is used, so you have to put general settings at the top, and specific user settings near the end.

Here is an example of allowing a user to connect and then give user/passwords

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

This will prevent the rest of the world from even connecting, while letting most people read and post mesages, Joe will be able to connect from any domain as long as he uses his username and password.

If you use the Netscape browser then there are limitations on how you can use this file, this is because netscape doesn't allow you to enter the username and password unless access is refused by the server. This isn't generally a problem but it can cause a problem if you want to have people from one domain connecting with and without passwords, this will not be possible via netscape, but will work with all other browsers.

Save/Reload

This button will write any changes you have made to your configuration files. If you don't press this button the changes will be lost. If DNews is actually running then it will also reload the changed values.

Manage Server - Command Options

Stop Service

This button stops the DNEWS service. If for any reason it does not work you can switch to DNews using the finder and use command Q to quit.

Start Service

This button attempts to start the DNEWS server.

Display DNEWS Log

This item in the Utilitiy menu shows the last 50 odd lines of the dnews.log file. After starting the server you can use this to find out when the server has actually finished it's initialization. Also in the event of any unexplained behavior you should check the log file. NOTE: If DNews is not actually running then you must use a text editor to display the log file.

Status

This buttons sends a 'status' command to the server and shows you the output, if it locks up doing this then you probably have a problem with your reverse name translation, which you can disable in the main setup dialogue.

Commands Menu…

This menu lets you send any of the builtin TELLNEWS commands to the server. If the command has parameters you will be prompted for them. You can use this to add new local news groups, or perform other strange and wonderful management tasks.

Save/Reload

This button send DNEWS a reload command, this will make the server re read all it's configuration files.

FEED Modify

This dialogue lets you modify the settings of the selected feed (Still under construction for Mac version - currently Mac users must modify relevant config file directly)

Note the first FEED must be the ME feed. This is a dummy feed, which is actually used to check if incoming items match the list of news groups that you want.

If you change the ME feed you may have to send the TELLNEWS COMMANDS:

undelete *

matchfeed

Don't do this without first understanding what they mean :-) (see other sections of the manual)

Access Modify

This dialogue lets you modify the settings of the selected access line. (Still under construction for Mac version - currently Mac users must modify relevant config file directly)

Read access lets users read news items

Post access lets users post news items

Ihave access lets an IHAVE feed come into your machine

Registering DNEWS.

To register DNEWS click on the REGISTER menu in TellNews and fill in the questions.

We do require payment before issuing a license key, you can make payment by giving credit card information with your registration. If you wish you can fax credit card information to us on +64 9 630 0689. Other forms of payment are also acceptable, Bank transfer, Cheque, Purchase Order etc.

After answering all the questions you can then start up your favourite email system, create a new message and then paste the registration form into the message. (It is automatically copied to the paste buffer once you have answered the various questions.

Send the message to your local DNEWS reseller, or netwin@netwinsite.com in 24-48 hours your will receive a license key to fully enable dnews.

Entering your registration Key (when you get it via Email)

Enter the key with the KEY command from the COMMANDS menu in Tellnews Control

e.g.

         key a1b2c3d4e5

This help file was generated from HTML source using WebTwin version 1.1


File Formats

File Formats

Active.dat

        group end start modflag cacheflag feed1last life range feed2last feed3last feed4last gid

group = The name of the news group
end = The last item in the group
start = The first item in the group
modflag = m=Moderated group, y=Normal group, d=Deleted, g=Gone,
e=Deleted-moderated
cacheflag = n = not cached, c = cached
feed1-4last = The last item successfully sucked from our upstream site.
life = Number of days to continue caching this group for.
range = Number of items in the group, -1 means it will be calculated when
needed.
gid = The GID given to this news group, these are unique and MUST NEVER change.

Active.times

This file is used by news readers to find new news groups.
      group time
group = group name
time = time in seconds that the group was created.

Active.names

Don’t worry to much if you don’t have this file, almost no news readers
even use it.
      group<tab>description

This help file was generated from HTML source using WebTwin version 1.1


Error Messages

Error Messages

Common error messages and what they mean.

411 License key expired, sorry

This error is returned to users when your license key has expired. NetWin are always happy to provide a temporary license key to get things going until the 'paper work' can be sorted out, or until you have finished your testing process. netwin@netwinsite.com

411 no such news group

This means the news group does not exist in the active.dat file on this server.

411 no permission to read that group

This means the users does not have permission to read the group, see the file access.conf

411 group did exist but has been deleted

This means the group has been deleted with the 'rmgroup' tellnews command, it can be undeleted with tellnews if necessary.

Read error on group %d:%d, offset %d wanted %d got %d

This usually means the index file '.idx' for the specified group was corrupt. An addlost is probably a good idea if these happen too often.

Error reading index file {%s}

Ignore this error, DNEWS will often look for files that don't exist, this is considered normal :-)

Syntax error in expire.conf
expire: syntax error in expire.conf line %d
Syntax error in expire.conf {%s}

This means one of the lines in your expire.conf file did not make sense, check the file carefully and make sure you are editing it with a 'text' editor.

active.times is too big, please use command: tellnews fixtimes -100

This means the active.times file which grows slightly every day is getting a bit too large, you must issue the suggested command, you need to do this every 6 months or so.

Discarding incoming data due to big error above %d

This may occur if you run out of space in the workarea directory, basically look above this error to find the real cause of the problem.

nntp: Socket closed, errno=%d

This means an nntp connection from a reader or another server closed in an unusual way, normally this can be ignored. You can lookup the errno in a unix errno.h file to see if that gives more help but it is unlikely to.

socket_read failed

Often this occurs when a news reader closes a connection unexpectedly, it can usually be ignored.

Socket newchan accept() call failed

This means someone tried to connect to your server, but when dnews tried to 'accept' the connection the user had gone, or somthing prevented the connection being accepted, this is an unusual error and may be significant if you are having other problems.

socket_write error

Ignore this, it's usually just caused by a connection closing unexpectedly.

wsock: (%s) The virtual circuit was reset by the remote side.

This usually means the other end closed the connection.

wsock: (%s) Connection Refused

This usually occurs when you try to connect to a news server that isn't running at all, it doesn't mean that you were refused access by the access.conf file.

wsock: (%s) Address in use

This often means you have some other news server or port mapper running which has a hold on port 119

last error: NNTP open of {%s} failed, check dnews.log

This error can often be ignored, but it implies that the sucking feed may be down briefly, if you stop getting new news then this would indicate something is wrong with the place you are sucking news from.

suck: BAD status code returned {%s} {%s} {%s}

Read the error message inide the brackets carefully, this error probably came from the site you are sucking from, not dnews itself, so if the error in the brackets sais 'you have no permission to talk' then the problem is that the place you are trying to suck from has not given you permission to talk.

DNEWS.IN error messages

Already in history file, Already got messageid, Article in history file

The item has already arrived, it was found in your history index which uses the unique message id of each message to establish if it already has a given message

No newsgroups match

None of the newsgroups in this news item exist on your server, if you get a few of these then ignore them, if you get too many you may have no active file, or an out of date list of news groups, you should get a new active file from your provider and use the group_merge command to add the new ones into your system DO NOT overwrite your own active.dat file. !!!!

Control item rejected

Control messages are for creating and deleting news groups, and for cancel'ing news items. They are rejected for various reasons, see control.conf for more info.

This help file was generated from HTML source using WebTwin version 1.1


Usage information for utilities

DNEWS News Server Manual

Usage information for utilities

xmit

The xmit service performs several functions, it can send a news feed to another site, it can send news messages to a mail address (or email list) and it can build the full text searching database.

xmit site.name [-at minutes hours] [-mail list@address -name list-name]

site.name	The site exactly as specified in newsfeeds.conf that this process should send items to
-at mins hours	Specifies how often to wake up and attempt to send more articles
-mail	Specifies the email address to post articles (this is the gateway from news to email
-smtp mail.gate	Your local SMTP mail gateway
-name	Specifies the list name to insert in the headers of emailed messages.
-fts	Specifies this feed should be used to build the fts search database

Examples:

Unix mail gateway
    ./xmit send.to.site.name -at "*2" "*" -mail JUGLIST@HERE.COM -name juggling"

NT news feed  (superseded by live links)
    addsvc -add dxmit1 xmit.exe "dxmit1 site.name.edu -at *5 *"

NT Full Text Searching
    addsvc -add dfts xmit.exe "dfts ftsfeed -fts -at *5 *"

dposter

The dposter service is intended to only be used in conjunction with the drobot email robot. drobot writes email messages into a directory, and dposter scans the directory periodically and then posts the email messages into the news server.

dposter -dir workarea -to news.server.name

-dir workarea	The directory to scan for messages written by drobot
-to news.server	The name of the news server to post these messages into

Example:

   addsvc -add dposter dposter.exe "dposter -dir c:\ntmail\news
          -to news.here.com"

drobot

drobot -dir workarea -groups group.name -from gatway_name [-approved moderator@here.com]

This program should be run by NT-mail as a robot, it will take the incoming message, reformat some of the headers, and write them to a directory ready for dposter to read.

Example:

   drobot -dir c:\ntmail\news -groups rec.juggling -from juggle-list

On unix place this in your .forward file (in your home directory)

   |"/usr/local/dnews/drobot -dir /var/spool/gateway -groups rec.juggling -from juggling"

addsvc

This utility is used for adding or removing services from the NT services list.

addsvc [-add servic_name program.exe "Name in service list"]
addsvc [-del servic_name]

-add	Add a service to the NT services list
-del	Remove a service
service_name	A unique name for the service, you can use this to delete the service later on
program.exe	The executable program to install, typically it must be in the system32 directory
"parameters"	This string is shown in the service list, it is also used to emulate the parameters that would be used if the program was run from the command line.

Example:

   addsvc -add dfts xmit.exe "dfts ftsfeed -fts -at *5 *"

dtail

dtail -lines filename

This command can be used to show the last 'n' lines of a file, it is a simplified version of the unix tail command. This is very useful for checking the end of the dnews.log file.

Example:

        dtail -30 dnews.log

This help file was generated from HTML source using WebTwin version 1.1


Using dnews

DNEWS News Server

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.

Creating local news groups

You can add groups with the TELLNEWS NEWGROUP command, e.g.

     tellnews newgroup here.chat y myname Local group for chatting

On Windows you could do this from the COMMANDS menu in DNEWS Manager by selecting the NEWGROUP command. Here is a detailed breakdown of each of the parts of the above command.

   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 groups line in your newsfeeds.conf file to exclude the local groups. For example to stop the groups here.chat and all the groups here.secret.XXX from being sent we would change

site $nntp_feeder
     groups *

to

site $nntp_feeder
     groups *,!here.chat,!here.secret.*

(note: ! means "not")

On Windows you could do this from DNEWS Manager by selecting Feeds Out and clicking on $nntp_feeder and amending the groups field as above.

Creating local moderated news groups

Lets say your company name is 'Genesis' and you want a local moderated group for announcing major company decisions, lets call the group "genesis.announce"

First create the moderated group using tellnews (or dnews manager)

tellnews newgroup genesis.announce m theboss Company Announcements

Then add one line to moderators.conf to send any messages posted to this group to the person who is going to 'moderate' this group. The new line must go above the default rule.

    genesis.announce:secretary@genesis.com
    *:%s@uunet.uu.net

Lastly you MUST have an SMTP gateway defined in your newsfeeds.conf, you should already have this but check to make sure you do.

Now you are all set, the moderator will receive all posts via email, he must then add an Approved: header line to the message before re-posting it to the news group. This can be done with FreeAgent, see above for details.

Remote Control

DNEWS on any platform may be controlled remotely, the local machine may be running a different OS to the remote dnews machine, hence it is possible to use the graphical interfaces to control non graphical versions of dnews. To set this up the local machine must have a copy of the tellnews executable and the tellnews.pass file, the tellnews.pass file is a protected file on the dnews machine used to verify that the correct machine is sending commands.

Copy the dnews.conf, the tellnews.pass and the tellnews executable to the local machine, if you are using a different platform to the one that you are running dnews on then you'll have to download the tellnews executable. If you want to run the Windows GUI you'll need a copy of the dnewsman.exe file also. Edit the dnews.conf file and set up the workarea directory as the directory on the local machine where the tellnews.pass is. The dnews.conf file, the dnewsman.exe and the tellnews.exe must be in the /winnt/system32 directory on Windows NT, the /etc directory on Unix. The myname in the dnews.conf file must be set to the name or number of the remote machine. On the dnews server the machine that is to be used for remote control must have a read and post entry in the access.conf file.

In the dnews.conf, on the local machine

  myname remote.machine.name (this will be correct if you copy the file from the dnews machine)
  workarea d:/dnews/spool (the name of the directory where the tellnews.pass is)

In the access.conf, on the remote machine

  remote.machine.name:Read,Post:::* (this is the name of the machine to send commands from)

Putting News On More Than One Drive

With DNEWS 4 you can add extra spool areas like this: Just mount the new drive somewhere, lets call it "/news2" On NT it might be "h:\news"

Create the directory: mkdir /news2

On unix set it to be owned by news: chown news /news2

Then assuming you have a 3GIG disk, then in dnews.conf add:

    spool2 /news2
    diskspace2 2900

Then restart dnews.

Giving DNEWS access to an INN news system.

Give normal NEWS READER access to the dnews machine by adding a line to your nnrp.access file

   dnews.ip.name:read post:::*

Give DNEWS ihave access to your server Add a line to hosts.nntp

   dnews.ip.name

DMULTI Installation and use

DMULTI is a mechanism for running multiple DNEWS processes, this is ONLY worthwhile if you have more than 50 concurrent users and you have many users on the system 24 hours a day. You will also need 'lots of RAM' and preferably more than one spool drive.

DMULTI installation:

Configure your system to startup DMULTI instead of DNEWS:

  Unix: Use dmulti_start.sh, instead of dnews_start.sh
  NT: addsvc -del dnewssvc
  NT: addsvc -add dnewssvc dmulti.exe "DNEWS Multi Process Manager"

Configure the new slave parameters in dnews.conf

  slave_restart 5 # The hour at which to restart the slaves (5a.m.)
  slave_ports 7500 # TCPIP port to start dnews slaves processes on
  slave_n 3# Number of dnews processes to run 2-4
  slave_feed 202.37.150.84,161.29.2.* # Ip NUMBER of this host and feeds

The slave_feed setting MUST include 'this machine' and any machine that is sending you a news feed, ONLY ip numbers or wild cards will work (ip names will not work)

Add your own machine to the list of hosts that can take an IHAVE feed, add this in access.conf, if you miss this step out local posts will fail.

your.ip.number:ihave:::*

Startup the dmulti process:

NT: net start dnewssvc (or click on start in dnews manager)
UNIX: /usr/local/dnews/dmulti_start.sh

There is a log file dmulti.log which will show you if anything goes wrong.

How dmulti works

DMULTI starts up 'slave_n' dnews processes (typically 2 or 3) the first one S0, is the master process, this is the one that accepts incoming news feeds, and this is the one your tellnews commands will go to. The others, S1-Sn, are reader processes, each one might have 30 news readers on it. DMULTI acts as a gateway, routing the incoming connections to the correct dnews process, this is why your slave_feed parameter must be set correctly, this is how dmulti knows whether the connecting session is a reader, or a feed.

You can communicate with each slave individually using a new tellnews option. The first status line shows which process s0-sn is talking to you:

(Master process) tellnews -s 0 status
(First reader) tellnews -s 1 status

You should always ensure that all the processes have closed before re-starting dnews/dmulti

If a problem develops, establish 'which' slave is not responding using 'tellnews -s n' and then copy the dnews.log from the faulty slave before restarting DNEWS.

To uninstall dmulti

Remove the slave parameters from dnews.conf and then replace the original dnews service (or startup script)

Uninstall NT: addsvc -del dnewssvc
Uninstall NT: addsvc -add dnewssvc dnews.exe "DNEWS News Server"

Notes for BIG sites (10,000-1,000,000 users)

Multiple processes

If your site is going to have more than 200 concurrent users and /or many users will be reading news 24 hours a day (while the expire is running) then you might want to configure DMULTI.

Multiple servers

Multiple servers give better performance and a good backup mechanism, with the price of PC's it's probably better to budget for 4 cheap servers than to try and build 1 super server.

If you need more than one news server, then you can configure DNEWS to send out an xreplic feed, this means that item 23 in 'rec.humor' on the master dnews machine will be the same as item 23 in 'rec.humor' on the slaves system. This enables you to have 'n' news servers, each handling 100-500 concurrent users and you can use a DNS to 'rotate' the users between the servers randomly balancing the load. This also gives you a 'backup' as any server can be removed or made the 'master' in a minimum of time.

However, another option is to simply configure several news servers and use normal feeds between them and then spread your users by simply telling them to use different news servers, this is simpler and therefore slightly more reliable. But this does prevent you from any load balancing.

Hardware

A typical 'large' system would look like this:

Single or Dual Pentium 200
128-256MB RAM
8-50Gig SCSI disks (or raid array)

Operating System for large servers

We don't want to get into an OS war, but basically the following OS's (in no particular order) make good news servers with DNEWS, this only becomes an issue when you are trying to pack as much news and as many users as possible onto one server:

Windows NT
Linux, Solaris, AIX, HPUX, FreeBSD, BSDI

We think Linux is the best of the 'unix' flavors, but this is more of a slight personal preference than a significant performance difference.

With most of these systems it is important to configure them with at least 200MB swap partitions when you install the system as NEWS uses a lot of memory and changing the swap partition can be very difficult.

Running DNEWS for intranet groups only

You can run DNEWS completely 'stand alone' here's what to do with the config files, in newsfeeds.conf you should have:

site me
groups *
site mail.gateway.name
smtp

And in dnews.conf you should comment out 'nntp_feeder' and add:

cachedall true

Then create the local news groups, you should start each group with your company name. e.g.

tellnews newgroup netwin.ideas y chris Discussion of new ideas
tellnews newgroup netwin.memo m chris Support news group

Notice 'netwin.memo' is a moderated news group, this means you must add a line to moderators.conf to tell dnews where to send the items to, the line must be added ABOVE the default line at the end of the file, e.g.

netwin.memo:chrisp@netwinsite.com
*:%s@uunet.uu.net

And when the moderator posts to 'netwin.memo' they would have to use FreeAgent or some other news reader that allows the 'Approved' header to be added.

This help file was generated from HTML source using WebTwin version 1.1


license

DNEWS News Server Manual

Contents:

A. Registration, Licensing and Support Guidelines.

B. How to register?

C. Netwin End User License Agreement For DNEWS News Server. (IMPORTANT - Read this License Agreement Carefully)

A. Registration, Licensing and Support Guidelines

Evaluation:

DNEWS a NetWin LTD Product. You may, for the purpose of evaluating this product, use this software for 2 months following the month of installation at no charge.

After that period you MUST register your copy and pay the appropriate license fee or stop using it, if you are a State University or School using this software for a NON PROFIT purpose then you can register for free. Schools or Universities may still wish to purchase a support contract.

Current License and Support Options:

Netwin is committed to providing the best license and support options. When you purchase a DNEWS News Server License, you'll receive these complimentary benefits:

u Free technical support by email for 12 months.

u Free maintenance and update releases for the product or version purchased.

u Free any major new release of DNEWS for 12 months.

Our expert support staff will provide you fast, focused support.

Current Prices

License	Cost
Unlimited User License on one machine - This includes 1 Years Standard support and the right to install upgrades(if any) free for 1 year.	US$485
2 concurrent user license  - This includes 1 Years Standard support and the right to install upgrades (if any) free for 1 year.	US$220
1 concurrent user license  - This includes 1 Years Standard support and the right to install upgrades (if any) free for 1 year.	US$95

Note: The one and two concurrent user licenses refer to the number of users who may access the server at the same time, not the number of users who may have access to the server.

License life time:

Your DNEWS license allows you to continue using your version of the software forever, it does not expire. However if you wish to update to new versions released after the 1 year period then you must purchase a new license or take up a support and/or upgrade plan.

Upgrade and Support Options

When your 1 Years Complimentary Support and Upgrades Ends, you can continue to receive expert support and/or new releases by subscribing to one of our annual upgrade and/or support plans.

Ongoing Upgrade/Support Plans	Cost
1 Years Standard Support and Upgrades.	US$320
1 Years Upgrades Insurance on it's own.	US$160
1 Years Priority Support and Upgrades.	US$2950

Standard Support/Upgrades Plan:

Email advice on installation, configuration and management. Free upgrades to new versions of the software (if any) during the supported period. This level of support is provided free for the first 12 months when you purchase a DNEWS Server license. It is recommended you continue this level of support when you have some technical expertise in house but do not have years of experience running news software. Response will vary depending on your time-zone but in general all messages are responded to by the next working day.

Upgrade Insurance Plan:

Upgrade Insurance gives you access to upgrade Free to any new version of DNEWS for a period of 12 months. This option insures you against the rapid development of news server technology, and allows you to budget your upgrade costs easily. IMPORTANT: You may purchase Upgrade insurance any time before the end of the complimentary period or before the end of any upgrade and/or support plan. Upgrade Insurance is for those users who want to ensure that they are always running the most advanced news server software but don't require technical support.

Priority Support Plan Includes:

Standard support plus direct Telnet support on your machine if/when requested. In addition your problems will be given priority when multiple fault calls are waiting. This level of support is recommended for commercial customers who cannot afford any down time. Basically with this support, we drop what we are doing and work on your problem.

In future support may be moved from NetWin to a nominated company specializing in this service.

Porting

NetWin may port to any unix'ish platform on request. We require a registration before performing this service as well as Telnet access to your machine.

Send Email to netwin@netwinsite.com if you have any questions.

B. How to register?

To register your copy of DNEWS

Step 1:

For Windows NT and 95 : Click the register button in the DNEWS Manager and complete the registration form

For Macintosh: Select Register from the menu in Tellnews Control and complete the registration form.

For UNIX or other OS's: Run the command: tellnews register and answer the registration questions.

This creates a file called REGISTER.TXT

Step 2:

Email the registration file, register.txt to your netwin@netwinsite.com OR DNEWS Reseller.

If you are registering a State School or University please also confirm your request on headed notepaper by fax.

That's It:

You will receive an email reply (within 24 hours) confirming your registration or license or support contract depending on which options you selected. The confirmation will also include your registration key which will allow the software to continue to be used.

Payment Options

Payment is normally made by Credit Card. We can accept payment via Visa, Master Card and American Express. Simply enter the name as it is specified on the card, the card number and expire date into the Registration Form. This data is encrypted for protection. However if you prefer you can FAX your details to us on +64 9 6300 689.

If you will paying by cheque or bank transfer please note this in the comments section of the registration form when you register. When we have received your funds (via Credit Card, cheque or bank transfer) we will email you your full key to be followed by an invoice (by post).

Where you are unable to pay by Credit Card we will always email you a temporary key on receipt of your registration form to cover the time it takes to physically receive your payment.

Cheques should be made payable to "Netwin LTD" and posted to; Netwin LTD, PO Box 27574, Mount Roskill,
Auckland, New Zealand. (Use this Currency Converter to calculate the amount owed in your own currency for
cheques. Then use the back button on your browser to return to this page )

A bank transfer may be the most economical method of payment. Please email netwin@netwinsite.com for our Bank Account details.

C. End User License Agreement For DNEWS News Server
End User License Agreement For Netwin Software:
DNEWS News Server
IMPORTANT - Read this License Agreement Carefully:

This License Agreement (LA) is a legal agreement between you (either an individual or a single entity) and Netwin Limited for the Netwin Software Product identified above, which includes computer software, and may include associated media, authorization keys and online or other documentation ("Software Product" or "Software"). By installing, copying, or otherwise using the Software Product, you agree to be bound by the terms of this LA. If you do not agree to the terms of this LA, you may not install, copy or otherwise use the above software.

Software Product License

The Software Product is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The Software Product is licensed, not sold.

1 Grant of License. This License Agreement grants you the following rights:

1.1 Systems Software. You may install and use one copy of the Software Product on a single computer, which may be connected at any point in time to an unlimited number of computers operating on one or more networks.

1.2 License FEES. You may use the software for a single period not exceeding 2 calendar months following the month of installation for the purpose of evaluating the software (the evaluation period) at no charge. To use the Software beyond the evaluation period you MUST register your copy and pay the applicable fee(s).

2. Description of other Rights and Limitations

2.1 Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, or disassemble the Software Product, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.

2.2 Rental. You may not lease or rent the Software Product.

2.3 Proprietary notices. You may not remove any proprietary notices or labels on the Software Product.

2.4 Software Transfer. You may permanently transfer all of your rights under this LA, provided you advise Netwin LTD, you retain no copies, you transfer all of the Software Product (including all component parts, the media and printed materials and any upgrades), AND the recipient agrees to the terms of this LA. If the Software Product is an upgrade, any transfer must include all prior versions of the Software Product.

2.5 Termination. You may terminate this Software Product License at any time. In addition, without prejudice to any other rights, this Agreement and the license granted hereunder will terminate automatically if you fail to comply with the terms and conditions described herein. Upon termination, you must destroy all copies of the Software and Documentation. Your obligations to pay accrued charges and fees shall survive any termination of this Agreement.

2.6 Authorization Keys. Authorization keys may be installed and enabled for use in only one license control utility. You may not modify or make inoperable authorization keys or license control utilities.

3. Copyright

All title and copyrights in and to the Software Product, and accompanying printed materials are owned by Netwin LTD. The Software Product is protected by copyright laws and International treaty provisions. Therefore you must treat the software product like any other copyrighted material except that you may either (a) make one copy of the SOFTWARE PRODUCT solely for backup or archival purposes, or (b) install the software product on a single computer provided you keep the original solely for backup or archival purposes. The software DNEWS is Copyright © 1995 NetWin LTD, New Zealand, All rights reserved. The software remains the sole and exclusive property of NetWin at all times.

4. Updates and Technical Support:

Upon registration and payment of appropriate fee(s) Netwin LTD for the specified period from the date of registration of the Licensed Software will make available to you Technical Support in the manner and under the guidelines set forth in the Licensed Software User Documentation, which may be modified from time to time by Netwin at its discretion without notice. Netwin may, from time to time, revise or update the licensed software. In so doing, Netwin incurs no obligation to furnish such revision or updates to you. Updates and further support terms are available to you on the same basis as Netwin makes them available to its other licensees at then current prices.

5. Disclaimer of Warranty

The Software is provided on an "AS IS" basis, without warranty of any kind, including without limitation the warranties of merchantability, fitness for a particular purpose and non-infringement. The entire risk as to the quality and performance of the Software is borne by you. Should the Software prove defective, you and not Netwin or its suppliers assume the entire cost of any service and repair. In addition, the security mechanisms implemented by Netwin software have inherent limitations, and you must determine that the Software sufficiently meets your requirements. This disclaimer of warranty constitutes an essential part of the agreement.

6 Limitation of Liability

To the maximum extent permitted by applicable law, any conditions or warranties imposed or implied by law are hereby excluded. Consumers may however have the benefit of certain rights or remedies in respect of which liability may not be excluded. Insofar as such liability may not be excluded then to the maximum extent permitted by law, such liability is limited, at Netwin’s exclusive option, to either (a) the price paid for the SOFTWARE or (b)replacement of the SOFTWARE.

7 Exclusion of Liability/Damages

The following is without prejudice to any rights you may have at law which cannot legally be excluded or restricted. You acknowledge that no promise, representation, warranty or undertaking has been made or given by Netwin (or related company ) to any person or company on its behalf in relation to the profitability of or any other consequences or benefits to be obtained from the delivery or use of the SOFTWARE and any accompanying Netwin Supplied software, manuals or other materials. You have relied upon your own skill and judgment in deciding to acquire the SOFTWARE and any accompanying manuals and other materials for use by you. Except as and to the extent provided in this agreement, neither Netwin nor any related company will in any circumstances be liable for any other damages whatsoever (including, without limitation, damages for loss of business, business interruption, loss of business information or other indirect or consequential loss) arising out of the use, or inability to use, or supply or non-supply, of the software and any accompanying written materials. Netwin’s total liability under any provision of this agreement is in any case limited to the amount actually paid by you for the software.

------------------------------------------------------------------------

NetWin will make reasonable efforts to solve any reported problems but we must limit our legal liability for obvious reasons to an extent which is proportionate to the commercial value of this transaction.

This help file was generated from HTML source using WebTwin version 1.1


DNEWS V4 Manual

Frame file://d|/pages/manual/buttons.htm
Frame DNEWS V4 Manual, Master Index

Click here for a non frames version.

This help file was generated from HTML source using WebTwin version 1.1


Adding PGP authentication to DNEWS 3.1

DNEWS News Server Manual

Adding PGP authentication to DNEWS 4

1. Install PGP software on your computer

2. Add the public keys of the public news administrators

3. In DNEWS.CONF specify the path to the PGP program

4. In control.conf add ",pgp" to the 'action' field

Install PGP software on your computer

For legal reasons we cannot supply PGP directly as this would break certain archaic U.S. laws. However we can tell you how to get it: (apparently non U.S. citizens cannot read English :-)

For Windows NT :- look for a version for '32-bit DOS...' , you don't need the fancy windows front ends (which do not work without also getting the DOS application)

For Unix:- get the source and build it, typically with a command like:

   make linux

u U.S Only. - PGP home page: http://web.mit.edu/network/pgp-form.html

u International - PGP home page: http://www.ifi.uio.no/pgp/

We would have liked to give you references to the actual files, but then someone might have accidentally downloaded the wrong one and then ended up being arrested for exporting munitions...and we wouldn't want that happening would we :-)

Add the public keys of the public news administrators

Transfer the file http://ftp.sunet.se/pub/news/misc/pgpcontrol/PGPKEYS.gz , gunzip it and then add these public keys to your key ring, e.g.

    gunzip PGPKEYS.gz
    pgp -ka PGPKEYS

On NT you should define the environment variable PGPPATH for all users (in the system setup) to tell pgp where it can find it's key rings, on UNIX you should run the above commands as the 'NEWS' user and pgp will put the key ring into a directory called, ~news/.pgp/ or you can define PGPPATH in dnews_start.sh

On unix, if you define PGPPATH to point to a directory that is not owned by NEWS then you may find PGP fails because it cannot access the key ring.

In DNEWS.CONF specify the path to the PGP program

This step is only necessary if you have not put 'pgp' into your path.

    pgp c:\app\pgp\pgp.exe

In control.conf add ",pgp" to the 'action' field

newgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sci.*,soc.*,talk.*:doit,pgp
rmgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sci.*,soc.*,talk.*:doit,pgp

Note: currently PGP is only implemented on the Windows NT and UNIX version of DNEWS.

Related useful links

u General information on PGP authentication of Usenet News Messages:

u Where to get the latest PGP (Pretty Good Privacy) FAQ

u DNEWS Home Page

This help file was generated from HTML source using WebTwin version 1.1


GUPCGI Information and installation

GUPCGI

groups update program common gateway interface - for use via the WWW

Information:

This clever little program will allow you to modify the groups that your news server receives from other news servers through the WWW. It is individually password protected for each site that you send news to, so that access to it can be given to the other server administrators so they can modify what is sent to their news server. This is incredibly useful for a server administrator as they do not have to contact somebody from their upstream news source to tell them (nicely) to modify what is sent to them by an ihave feed.

Please Note this!

The information gets saved but it is not updated on the news server until DNEWS reloads the newsfeeds.conf file, to make this happen automatically schedule a cron job (or use the "at" comand on NT) to issue a "tellnews reload" every few hours.

Installation: - 3 easy steps (only one of them is recursive)

1. Copy the two files gupcgi.exe and setfeed.ini into you web server cgi-bin directory or where ever the CGI programs get run.

2. Add into the setfeeds.ini the location of your newsfeeds.conf file, "newsfeeds newsfeeds_location" where newsfeeds_location is a string identifying the file location of newsfeeds.conf i.e. "newsfeeds n:\dnews\newsfeeds.conf".

3. Modify the setfeeds.ini file for the groups that you wish to be able to access via the web. The format specifications are in the setfeed.ini file. Basically a line with "site site_name password" is the format. You can specify as many sites as you like.

You and your fellow server administrators are now ready to run your GUPCGI . You may wish to add the address of it to one of your links pages. Note that DNEWS MANAGER should not be left running if gupcgi is being used.

Note for UNIX systems

On UNIX systems you will have to modify the protection on the newsfeeds.conf file, typically this is done by giving the web user (usually 'nobody') access to write to the newsfeeds file, e.g.

chmod 0770 /usr/local/dnews /usr/local/dnews/newsfeeds.conf

And then add 'nobody' to the 'news' group in /etc/group

Example script to reload newsfeeds.conf (for unix)

#!/usr/bin/bash
#This little script scans the newsfeeds file and if it changes tells
#       Dnews to reload the file.
#       Written by gkm on March the 23rd 1997.

if diff /usr/local/dnews/newsfeeds.conf /usr/local/dnews/newsfeeds.conf.old
then
exit
else
sleep 5
cp /usr/local/dnews/newsfeeds.conf.old /usr/local/dnews/newsfeeds.conf.bak
/usr/local/bin/tellnews reload
cp /usr/local/dnews/newsfeeds.conf /usr/local/dnews/newsfeeds.conf.old
fi

(Thanks to Greg K Moeller for this contribution)

This help file was generated from HTML source using WebTwin version 1.1


Where can I suck/feed news from?

This file has moved

This help file was generated from HTML source using WebTwin version 1.1


Untitled Normal Page

## This version of expire.conf is designed to handle
## a full feed on limited storage, e.g. 4-6 Gb
## --------------------------------------------------
## When diskuse is less than x, apply these rules. Rule syntax:
##
## DISKUSE x GROUPS wildlist KEEP n DEFAULT n PURGE n MAXITEMS n MINITEMS n
##
## LAST matching news group record with correct diskuse is applied so
## put defaults at the top. NOT the bottom.
##
## diskuse %of_total Measured in megabytes. Must start each line
## groups list,... Wildcard list of news groups
## minitems n Don't apply date rules if less than this many in group
## maxitems n Delete items until there are less than this many items.
## keep days Keep item this long even if expired header disagrees
## default days Keep item this long unless expire head sais otherwise
## purge days Delete after this long even if expired header disagrees
## remember days Number of days to remember we 'had' an article.
## total meg The total is defined in the dnews.conf file.
##
##
## For a full feed, you need to have gaps between normal and panic which
## are AT LEAST as big as one days feed. (e.g. 300-1Gig .)
##
## The last matching rule is used

# How many days to keep entries in the history file.
remember 3

# If we are way over. (this must be here or no rules match past 90%!!!)
upto 10000% groups * keep 0 default 1 purge 10 maxitems 0 minitems 0

# Start to panic a lot
upto 110% groups * keep 0 default 1 purge 2 maxitems 2 minitems 0
upto 99% groups * keep 0 default 1 purge 10 maxitems 10 minitems 0
# Start to panic a little
upto 90% groups * keep 0 default 2 purge 33 maxitems 100 minitems 0 unread 0
upto 90% groups *binaries* keep 0 default 1 purge 33 maxitems 10 minitems 0 unread 0

# Normal operation, put your meaningfull settings here.
# Settings for min and max items are a matter of taste, remember some
# older news readers don't deal with large numbers of items very well.
upto 85% groups * keep 0 default 5 purge 33 maxitems 200 minitems 5 unread 2
upto 85% groups *binaries* keep 0 default 2 purge 33 maxitems 100 minitems 0
upto 80% groups * keep 0 default 10 purge 33 maxitems 500 minitems 5 unread 2
upto 80% groups *binaries* keep 0 default 5 purge 33 maxitems 300 minitems 0 unread 2
upto 75% groups * keep 5 default 20 purge 33 maxitems 1000 minitems 20 unread 5
upto 75% groups *binaries* keep 5 default 10 purge 33 maxitems 500 minitems 20 unread 5
upto 60% groups * keep 5 default 30 purge 33 maxitems 2000 minitems 100 unread 10

# Lots of space, just stop things getting silly (e.g. 10000 items in...)
upto 30% groups * keep 5 default 30 purge 33 maxitems 3000 minitems 200
upto 20% groups * maxitems 2000

# Local groups, maybe we want to keep them forever
# upto 1000% groups local.* keep 9999 minitems 99999 maxitems 999999

This help file was generated from HTML source using WebTwin version 1.1


file://d|/pages/manual/gateway.htm

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)

For Windows NT

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 SITE.NAME to match the site you have added to newsfeeds.conf (juggling)
  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 SITE.NAME -smtp MAIL.HERE.COM -at *5 *
(cont. but should be on one line)   -mail JUGLIST@HERE.COM -name
juggling"

 addmail.cmd  (run the script to add the service) (This is NT only)
      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.

For Unix

In Unix put the following in the startup,

nohup xmit SITE.NAME -smtp MAIL.GATEWAY.COM -at "*5" "*" -mail JUGLIST@HERE.COM -name
juggling &

To get it running the first time just type the command by hand.

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

For Windows NT

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.

For unix

In the .forward file put the path of drobot

|"/usr/local/dnews/drobot -dir /var/spool/mailnews -groups rec.juggling"

Add dposter to the startup, but start it by hand the first time with the same command.

nohup dposter -dir /var/spool/mailnews -to news.here.com &

Run the same test procedure as for windows.

Sending many groups to many mailing lists via one xmit gateway

Lets say you want to mirror 100 news groups into mailing lists, obviously you don't want 100 xmit processes running, here's how to do it:

In newsfeeds.conf

...
site lists
groups comp.lang.*

Then start a single xmit process with parameters like this:

nohup xmit lists -smtp MAIL.GATEWAY.COM -at "*5" "*" -all "comp.lang.*"
-mail @HERE.COM -name complists &

This will send messages to 'comp_lang_c@HERE.COM', and 'comp_lang_basic@HERE.COM' etc, you must define all these locall mail addresses.

This help file was generated from HTML source using WebTwin version 1.1


GUP for Dnews

Use GUP(Group Update Program) with Dnews

u What is GUP?

u How to install GUP?

u How to make GUP works with Dnews?

u Sample email and GUP output

What is GUP?

GUP is an Unix assistant utility program initially designed for INN, which could be installed and run on the news feeder site in the feeder-feedee connection, to help the feeder server administrator controlling the newsfeeds.conf file.

A typical newsfeeds.conf looks like this:

site me
groups *,\
!to.*,!*.binaries.*
site news.feedee
posting
builtin
        groups \
  *,\
  !*picture*,\
  alt.pictures.fuzzy.animals,\
  !*sex*,\
  *sci*,\

The administrators of news.feedee server could frequently ask the administrator of news feeder server to update their newsfeeds.conf file, in order to limit the traffic to their news feedee servers, while still fulfil their customers' requirement.

With GUP, the news feedee server administrator could send an email to this GUP program, describing their filter criteria in this email. The GUP program will receive this email, process the message inside, create a new newsfeeds.conf file for news feeder server, and call TELLNEWS RELOAD to inform Dnews on news feeder server the latest newsfeeds.conf configuration. The news feeder server administrator will not be disturbed unless something wrong.

Back to top

How to install GUP?

u Create a 'gup' user in your system.

Make it a member under "news" group, so that it can access the active.dat file and all of the .conf file

u Create a home directory for 'gup' with appropriate permissions.

u Download the file:

ftp://ftp.isc.org/isc/inn/unoff-contrib/gup-0.4.tar.gz

u Decompress it

Under Linux system you can use the following commands:

u gunzip gup-0_4_tar.gz

u tar -xvf gup-0_4_tar

u Make it

The Makefile provided with source code could be used directly. If not, you have to modify it accordingly.

u Create a 'config' file in gup's home directory.

This file has one line per site. Each line contains three white-space separated tokens: news feedee sitename, password, and mailid.

Eg:

sitenamepasswdandrew@apana.org.au

anothersitename     anotherpasswdzaph@torps

When a news feedee server administrator sends in a request, the 'site' command must have a host and password that matches the entry in the 'config' file so keep this file well protected!

u Create a .forward file in gup's home directory so that all inbound mails are fed to the gup program. Here's what mine looks like:

|"/home/gup/gup/gup -a /var/spool/dnews/work/active.dat -d /home/gup -l gup.log "

Now GUP should be able to handle the emails sent to gup@your.site.name

Back to top

How to make GUP works with Dnews?

Then you should follow the steps to config GUP for Dnews:

u Create file "globalheader" in gup's home directory, with the contents describing the "ME" section of newsfeeds.conf file. Mine looks like this:

site me
groups *,@*erotica*,@*erotic,@*sex
maxcross 20
reject body 1-800-677.80

u Create file "globaltrailer" in gup's home directory, with the contents describing the other overall information. Mine like this:

site mail
smtp

u Create file "samplesiteheader" in gup's home directory, with the basic description for the feedee site. Mine like this:

site your.sit.name.com
type builtin
groups \

u Create file "samplesitetrailer" in gup's home directory, with the basic description for other overall information about the feedee site. Mine like this:

# End for site your.site.name.com

u Create script file "addsite" in gup's home directory as below:

h=$1

cd /home/gup
mkdir sites

d=/home/gup/sites
cd $d

mkdir $h
cp $d/../samplesiteheader $h/header
cp $d/../samplesitetrailer $h/trailer

u Use "addsite" to create information subdirectories for the feedee sites. eg

$ addsite feedee_site_1

u Personalize the "header" and "trailer" for each site

u Create script file "gupdate" as below. "gupdate" is used to update the newsfeeds.conf file, and invoke TELLNEWS RELOAD to inform Dnews about the new newsfeeds.conf. It will also create a copy of the latest newsfeeds.conf in the gup's home directory.

#! /bin/sh
# A script to rebuild the newsfeed file after a gup run
# gup's home directory
gup=/home/gup
# altered sites beautification
# may need customisation if you're not running BSD NetRel2
pr="pr -5 -a -t -o5"

# your Dnews newsfeeds file. this file is automatically updated by this script
# by combining the feeds lists for all the sites that gup controls, along
# with a general-purpose header and trailer for the file as a whole.
# You can find the path for this file in dnews.conf
newsfeeds=/usr/local/dnews/newsfeeds.conf

# your Dnews tellnews program
ctlDnews=/usr/local/bin/tellnews

# Your mail service program
mailcmd=/usr/bin/mail
PATH=/usr/bin:/bin
########################### end of user-config stuff ##########################
tmpfeeds=/tmp/newsfeeds.$$

cd $gup
(
# global header
cat globalheader

cd sites
for h in *; do
if [ -s $h/groups ]; then
echo
# header
sed -e "s/HOST/$h/g" $h/header
# body
sed -e 's/$/,\\/g' -e 's/^/ /g' $h/groups
# trailer
sed -e "s/HOST/$h/g" $h/trailer
fi
done
cd ..

# global trailer
cat globaltrailer

) >$tmpfeeds

# commit the new version

mv -f $newsfeeds.old $newsfeeds.old1
mv -f $newsfeeds $newsfeeds.old
mv $tmpfeeds $newsfeeds
cp $newsfeeds newsfeeds.copy
# tell Dnews about it

$ctlDnews reload
tail -20 /usr/local/dnews/dnews.log

u For test purpose, you can send email to gup, and then run gupdate.

u For practical functioning run "gupdate" once a night from cron.

IMPORTANT: The GUP will recreate the whole newsfeeds.conf file from scratch each time GUP runs. So DO REMEMBER that if you modified newsfeeds.conf file, you should also update the correspoinding parts in globalheader, globaltrailer, sites/sitename/header and sites/sitename/header.

Back to top

Sample email and GUP output

The format of the newsfeeds.conf update emails is identical to the ordinary GUP. You can send email to gup with the message body just holding "help". One return mail will give you more instructions. One practical sample email as following:

site jianma jianmapasswd
delete *
include *
exclude *picture*
include alt.pictures.fuzzy.animals
exclude *sex*
include *sci*
quit

By sending this email to gup, you can expect a new newsfeeds.conf as following(relevant part):

site jianma
type builtin
groups \
*,\
!*picture*,\
alt.pictures.fuzzy.animals,\
!*sex*,\
*sci*,\
# End for site jianma

Back to top

Last updated 17 July 1997, by Jian Ma at netwin@netwinsite.com

This help file was generated from HTML source using WebTwin version 1.1


ClariNews installation guide for DNEWS

Getting DNEWS

A fully working trial version can be downloaded from NetWin LTD We recommend you install 4.2m or later.

Taking a newsfeed direct from ClariNet.

In access.conf you need to add entries for Clarinet, currently DNEWS uses reverse DNS to check who is sending you data, so you need entries which will match all clarinet news hosts. Give the ClariNet tech support READ access to your server as well.

*.clari.net:IHAVE,READ:::*
*.clarinet.com:IHAVE:::*
*.ccnet.com:IHAVE:::*

In dnews.conf, enable reverse DNS lookups:

nodns false

In newsfeeds.conf, prevent any clari groups from being accidentally sent to your normal upstream sites or any outgoing feeds you have (if any). And add an upstream feed for the clarinet discussion group clari.net.talk, be very certain you don't send any other clarinet groups anywhere.

site me
    groups *
site $nntp_feeder
    groups *,!clari*
site clari.
    groups !*,clari.net.talk
    builtin

Choose a subscription and fetch a newsgroup list appropriate for it, these are just some of the options. You may find the groups already exist on your server so this step may not be necessary.

newsgroups.1 One-Star Edition
newsgroups.2 Two-Star Edition
newsgroups.3 Three-Star Edition
newsgroups.3cThree-Star Edition with Commerce Business Daily
newsgroups.edu Educational Edition
newsgroups.4 Four-Star/Corporate/Edu+ Edition

ftp ftp.clari.net
ftp> user anonymous
ftp>
ftp> cd help/admin
ftp> get newsgroups.1

Add a dummy header line and one blank line to the newsgroups.1 file so it looks like a real news message, and then use the checkgroups command to merge it in with your current list of news groups.

  tellnews checkgroups newsgroups.1   (Note: This only works in DNEWS 4.2m or later)

Add a dummy line to your moderators.conf line as the clarinet groups are not really moderated groups. This should go above the last rule in this file, e.g.

   clari.*:modreply@clari.net
   *:%s@uunet.uu.net

That's all you need to do, you should now have all the ClariNet news groups and your news items should start arriving as soon as you email/call ClariNet and ask them to turn on your feed.

If you have any problems feel free to contact NetWin Support for advice and assistance. We will usually want to see a section of DNEWS.LOG and your DNEWS.CONF and or NEWSFEEDS.CONF files.

This help file was generated from HTML source using WebTwin version 1.1


New Features & Updates

Dnews Updates List

4.2m (11-June-1997)

Added 'default' keywords to accept/reject rules to allow more complex rules, here is an example using the new option, this example is to prevent the word 'sex' appearing in a group that does not have 'sex' in it's name.

site clead_feed
groups *
accept default
reject subject "sex"
accept newsgroups "sex"
accept newsgroups "erotic"

Added tellnews command

tellnews trimfile FILENAME

Reads FILENAME and then deletes any news group that is not in this file.

Increased length of demo license by one month

Added setting xover_moved, set this if your xover data is NOT stored on the same DISK as your main SPOOL area.

Added xover data into diskusage calculations.

Added expire status showing failure if expire fails due to a disk shortage at a critical moment.

Fixed bug that allowed groups to be created that did not match the 'ME' feed.

Changed log file format, added channel number to all log lines

Added command tellnews showusers, this shows a summary of users who have connected since startup. Note: the ngroups settings is the number of group commands recieved, not the number of unique groups read by that user.

Added -file FILENAME qualifier to drobot, this allows it to be used with eudora on win95

Fixed newgroup distribution to slaves with dmulti

Made most background commands like (getgroups, update, rebuild_index, trimgroups...) go into a queue so several can be given at once and they will show in the update queue.

Improved uucp bag handling to make it more robust in the face of faulty bag files. Added uucp_binary option to dnews.conf. Only set this if you are having problems. It will sometimes help with certain faulty uucp formats.

Fixed memory corruption caused by bug in checkgroups processing.

Added dnews.conf option, newnews_users wildcard_list, this lets you control which users can use the 'newnews' command.

Added dnews.conf settings:

bind_in 152.4.55.2
bind_out 152.5.55.3

The bind_in setting controls which ip address dnews will listen on, the bind_out address controls which ip address dnews will appear to have when it is reading or sending news. (You must have multiple ip addresses on the one host for these settings to have any meaning)

Fixed signal 2 error on OS/2, caused by floating point underflow.

4.2k (23-May-1997)

Added log_file setting to dnewsweb, this allows the log file to be specified

Fixed spool_import/convert for systems which don't place the xref header in non cross posted messages.

Added two feed options:

site x.y.z
onlyposts
path_max 4

onlyposts is a switch which tells that feed not to send anything except locally posted articles.

path_max is a rule which stops items being sent to that feed if the item has more than 3 hosts in the path. Both of these are options to use instead of exclude which can be tricky to set. When using path_max remember that some posting software will add a path so allow a couple of extra hosts in the path. (e.g. 4 is a good number)

Fixed access bug related to logoff.

Fixed OS2 problem with large spool areas pausing the incoming feed.

4.2j (16-May-1997)

Fixed minor bugs in dnewsmanager

Fixed key problem with spaces in computer names.

Made license key's more friendly & reliable.

Increased line length limit on newnews command to 3K from the RFC suggested 512 characters.

Improved format of search output in dnewsweb (xresults.tpl)

Corrected default post.tpl file in dnewsweb

Corrected fault with xover missing some headers under certain rare conditions

Added dnews setting 'cache_onxover true' which will cache a group if a user requests xover records from it.

Added setting "suck_maxgroups 30", if more than this many groups are 'cached' then dnews will 'uncache' all groups automatically. This can be very useful on small systems.

Fixed erroneous sucking of uncached local groups from upstream.

Improved xover performance for NewsXpress (by a large factor) and changed the default setting for tcp_nodelay to 'true' on Windows NT.

Added expire option 'unread n' which will expire items that are more than n days old if they are not in the list of cached news groups. e.g. to delete items in unread groups after 2 days

...
upto 40% groups * default 5 maxitems 500 minitems 50 unread 2
upto 20% groups * default 10 maxitems 1000 minitems 100 unread 2
...

4.2i (8-May-1997)

Fixed Nothing to trim xxxx message (improves performance)

Fixed pgp for NT services. (Caused by popen bug on NT)

Added dnews.conf setting for PGPPATH

Fixed feed type prog on NT, (also caused by the popen bug on NT)

Inforced max str size limit which decreases memory use.

Modified string block sizes to decrease memory use.

"EXIT" command added to feed programs, this indicates dnews is exiting and the feed program should exit also.

Improved tellnews killitem <msgid>, it now deletes all cross posts and clears the cache correctly as well.

4.2h

Improved handling of suck_uucp, it now gives friendlier errors and if it fails it renames the failed file to 'uucp.bug', in this way faulty uucp files will not fill up your entire disk.

Dnewsweb, changed items.tpl to use preformatted text which allows threading display to be much clearer.

Added dnewsweb variable %%spaces%% to indent threaded items.

Fixed bugs with dnewsweb crashing on some news groups.

Allowed PGPPATH to be defined in dnews_start.sh

Fixed passing of TZ variable in dnews_start.sh

4.2g

Fixed Solaris x86, partial data appearing when under load

Fixed Solaris x86, dmulti bug, channel disconnecting under load

4.2f (25-Apr-1997)

Fixed crash bug on Solaris X86 and OS2, the system would crash shortly after an expire run.

Changed behaviour, dnews now disconnects channels with ONLY IHAVE access if the disk is full, this helps some news xmit programs to 'wait a while' before trying again.

Fixed bug in dmulti

Added 'experimental' feed options, (experimental means this feature may be modified in a future version after we've heard some feed back on it.) example:

site me
groups *
    reject subject "sex"
    reject from "baduser@badsite"
reject body "naughtyword"
reject article "make money fast"
site local.interest
groups *
reject subject "boring thread"
accept body "netwin.co.nz"
accept body "dnews"

Any header can be used including the fake headers 'body' meaning everything except the headers, and 'article' meaning everything.

The matching is NOT case sensitive. If the header CONTAINS the specified text then the rule is applied, rules are applied in order, if no rule matches then the item is accepted, unless there were any 'accept' rules in which case the item is rejected.

There is one special character allowed '\n' which can be used to match 'beginning of line' in the body or article option.

To reject items containing Mime attachments you might use something like:

reject body "\nContent-Transfer-Encoding: x-uue"

For performance reasons it is best to only use headers rather than body and article, and it is also best to minimize the number of rules.

4.2e (Beta)

New newsfeeds option, @group.wildcard, this is similar to the ! character as it means don't allow these groups, but unlike the normal logic of newsfeeds, if an item is cross posted to several groups and ANY ONE of them matches the @ group wild card then the entire item is rejected. The is useful to combat the recent habbit of people posting 'unsavoury' articles cross posting those articles to popular groups to increase the distribution of their articles.

Example: (newsfeeds.conf)

    site me
       groups *,@*binaries*,@*erotic*

New conversion commands for converting unix (INN or CNEWS spool areas)

      tellnews spool_import /var/spool/news

The spool_import command finds all news articles in the directory tree specified and imports them into dnews WITHOUT deleting the articles from the source directory. DNEWS will use the same item numbers so that newsrc files will still be valid. This command is ideal for testing dnews without actually breaking your current news server, you can also specify a sub tree if you don't have enough disk space to have two entire copies of your spool tree. e.g.

    tellnews spool_import /var/spool/news/comp/lang

A second identical command exists which will DELETE the items after importing them into DNEWS, this can be used to CONVERT a spool system from INN to DNEWS format without having any extra disk space.

     tellnews spool_convert /var/spool/news

Again you can specify a sub tree if you prefer to do it in smaller pieces just incase something goes wrong :-)

If you do not care wether dnews uses exactly the same item numbers as the INN system then you can add this setting to dnews.conf

         convert_add true

By default, the above commands will NOT send items to outgoing feeds, to change this behaviour you can add to dnews.conf

         convert_feed true

New tellnews command to do a rebuild_index_faster, this works by skipping the history lookups for each item, this is reasonably safe as long as you don't have duplicate messages in your bucket files. This may be worth using on large systems (above 10 gig)

New tellnews command rebuild_lost. This command is good for finding lost items, it does not destroy the existing index and does not stop the incoming feeds. You might use the command to complete a rebuild_index if you had to shut down dnews before it completed. You can also use it to find the missing items that resulted from the expire bug in DNEWS prior to version 4.2a.

Fixed crash during flush2, caused by more than 20 incoming news feed names (MCI).

Fixed fault in access processing (authinfo bug)

Fixed unimportant messages "stat problem xxxxxx" filling log file

Fixed NT-authorization problem with access.conf.

Fixed bug in dmulti on unix systems.

4.2d (Beta 14-Apr-1997)

Added dnews.conf setting to disable the suck that occurs when a group is posted to:

POST_NOSUCK true

Added dnews.conf setting to disable sucking groups, but not getgroups, trimgroups, this is handy for keeping the active files in sync between two servers, it can be used with the xreplic setting below.

SUCK_DISABLE TRUE

Added support for nntp extension, xreplic.

Added live feed option 'xreplic' to send a replicating feed. e.g.

site mirror.news.server
type live
groups *
xreplic

A replicating feed is one where you wish to run a 'farm' of news servers that all look identical to the users (therefor articles must have the same item number). Your external news feeds all go into one master server, and from that you send out an 'xreplic' feed to each slave or mirror news server.

At the same time you should set 'post_only true' so that local posts will be sent back to the master server before they are assigned an 'item' number.

Fixed crash if you try and suck from a server which has no news groups. :-)

Added GID reallocation so they will not run out.

DNEWSWEB: Fixed bug with fts output

Note: dmulti is still experimental, particularly on unix systems, if you choose to use it please send us info on problems you have with it.

4.2b (Beta 10-Apr-1997)

Fixed bug in expire. Symptoms: the expire runs but less and less articles get deleted until you are stuck at above 90%. To fix upgrade to 4.2b and the issue a tellnews rebuild_index command

Fixed corrupt gid's between 42000 and 47000.

DNEWSWEB: fixed problem with top.tpl not being found.

4.2a (Beta release 6-Apr-1997)

Fix for solaris dmulti problem with posting large items dropping connection.

Fix for problem with rebuild_hist occasionally missing an article

Fix for bug in vms version with bucket check loop.

Major new version of DNEWSWEB, click for details

Unix install/upgrade utility simplifies installation and upgrades, e.g.

uncompress dnews41d_linux.tar.Z
tar -xvf dnews41d_linux.tar
cd dnews
./dnews_setup

4.1a (Beta release 3-Apr-1997)

Added dmulti, a mechanism for running multiple DNEWS processes, this is appropriate if you have more than about 50 concurrent news readers on your system, or if you have people reading 24 hours a day and the expire process is causing performance problems. This new feature is experimental at this time. It will probably only give reasonable results if you have sufficient memory and multiple disk drives.

This version of dmulti does not support the sucking system in dnews, it is assumed if you have this many news readers on your system that you will be using a full news feed.

DMULTI installation:

Configure your system to startup DMULTI instead of DNEWS:

Unix: Use dmulti_start.sh, instead of dnews_start.sh
NT: addsvc -del dnewssvc
NT: addsvc -add dnewssvc dmulti.exe "DNEWS Multi Process Manager"

Configure the new slave parameters in dnews.conf

slave_restart 5 # The hour at which to restart the slaves (5a.m.)
slave_ports 7500 # TCPIP port to start dnews slaves processes on
slave_n 3# Number of dnews processes to run 2-4
slave_feed 202.37.150.84,161.29.2.* # Ip NUMBER of this host and feeds

The slave_feed setting MUST include 'this machine' and any machine that is sending you a news feed, ONLY ip numbers or wild cards will work (ip names will not work)

Add your own machine to the list of hosts that can take an IHAVE feed, add this in access.conf, if you miss this step out local posts will fail without any error message!

your.ip.number:ihave:::*

Startup the dmulti process:

NT: net start dnewsvc (or click on start in dnews manager)
UNIX: /usr/local/dnews/dmulti_start.sh

There is a log file dmulti.log which will show you if anything goes wrong.

How dmulti works

DMULTI starts up 'slave_n' dnews processes (typically 2 or 3) the first one S0, is the master process, this is the one that accepts incoming news feeds, and this is the one your tellnews commands will go to. The others, S1-Sn, are reader processes, each one might have 30 news readers on it. Dmulti acts as a gateway, routing the incoming connections to the correct dnews process, this is why your slave_feed parameter must be set correctly, this is how dmulti knows wether the connecting session is a reader, or a feed.

You can communicate with each slave individually using a new tellnews option. The first status line shows which process s0-sn is talking to you:

(Master process) tellnews -s 0 status
(First reader) tellnews -s 1 status

You should always ensure that all the processes have closed before re-starting dnews/dmulti

To uninstall dmulti

Remove the slave parameters from dnews.conf and then replace the original dnews service (or startup script)

Uninstall NT: addsvc -del dnewssvc
Uninstall NT: addsvc -add dnewssvc dnews.exe "DNEWS News Server"

New dnews.conf setting

access_twice true, if set dnews will try and allow users access without doing a reverse dns lookup by first checking if their ip number appears in your access.conf file.

4.0t 28-March-1997 Release version

u Added tellnews rebuild_gids, which is a 'drastic' command that will take many hours, it should ONLY be used if you run out of GID's (the log file will tell you if this happens) this command is dangerous it re-writes the entire spool. This command appears to be faulty in 4.0t, do not use it until further notice!

u fixed bug with "next" failing for last item in group.

u Added correct error response for xpat command (fixes slrn)

4.0s

u Put drobot into unix distribution, and made it work.

4.0r (23 March 1997)

u Fixed erroneous error "invalid group number -1" during expire which occured when newsgroups were deleted.

u Fix for key case problem.

u Fixed bug in unix version of gupcgi

4.0q

u Fixed erroneous corruption in GID's message.

u Fixed bug with license upgrade procedure producing erroneous errors about too many users connected.

4.0p

u If less than 90% used then the expire_min setting is automatically halved. (so some stuff will actually be deleted :-)

u Fixed bug in VMS upgrade.

u tellnews trace_expire "message-id" This command logs the reason the item is kept or deleted during the expire process.

u Added to dnews.conf
LOG_NNTP TRUE (logs normal nntp commands)
LOG_IHAVE TRUE (logs ihave/takethis as well)

4.0n

u Fixed email loop if mail_from set.Fixed problem with expire not running sometimes

4.0m

u Minor syntax fixes to the source.

u Possible bug in sucking from wrong site fixed.

u Removed history warning message.

u Added tellnews stats_out

u Minor tuning on live feed code

4.0k

u More support for chinese characters

4.0j (5-Mar-97)

Installation Note for version 4.0:

With version 4 you need to allow for the xover index, which could be upto 10% of your spool area, by default these files will be placed in the WORKAREA directory, but you can move them by defining XOVER_DIR in dnews.conf

u Fixed bug with xover records not allways being correct (if you were running an older version delete *.xov to recreate the faulty records)

u Added NT Authorization to access.conf, to lookup users via the nt database use a line like this in access.conf: your.ip.range.*:read,post:$lookup$:$lookup$:*

u Fixed bug with more than 32000 news groups on version 4.0x

u Added dnews.conf parameter "suck_maxold 1000" which limits the number of old items that dnews should suck from a group.

u Adjust live feeds to increase efficiency

u Added date to manager reports

u New dnews.conf setting "expire_any true" this means than if a link of a cross post should be deleted, then all will be deleted, this fixes the problem of people cross posting binary messages to non binary groups and thus filling up your disk.

u New command tellnews diskuse "comp.os.*" gives the disk usage of all the groups in that directory tree. This total counts each cross post so the total can be larger than your entire system.

u Fixed a bug with the upgrade procedure that could create gaps in the item number ranges. Added dnews.conf paramter: xover_dir d:/dnews/xover By default xover data will be stored in the workarea directory, this could take up several hundred megabytes so you may want to move it. You can move the files while the system is running, or simply delete them (*.xov) and the new ones will be created in the new directory.

4.0f (21-feb-97)

u Gupcgi.exe Group Update Program,

u For information follow this link This program is useful for a down stream News Server administrator, as they can modify what groups are sent to them with their traditional IHAVE feed.

u Added dnews.conf live_nostream setting, stops live feeds from using the streaming extensions to send articles, (this configures automatically normally)

u Made rebuild_index also rebuild the history database (rebuild_hist should not generally be used alone as the history and index files are co-related they should be rebuilt together with rebuild_index)

u Fixed bug if authinfo pass used before authinfo user

u Added fast index read mechanism.

u Fixed bug with xover disk caching

u Fixed bug with resort_index dnews 4.0c

u Fixed expire crash if nothing to expire.

u Fixed intermittent bug with futuristic error.

u Fixed corruption in index

u Fixed Lines header mising from xhdr response

u Fixed bug with rebuild_index command.

4.0a (5-Feb-97)

Some history on the reason for DNEWS 4.0

The DNEWS database was originally designed for efficiently sucking news items. And it was very good at this, however, for various reasonsabout 50% of DNEWS users take IHAVE feeds, and although this worked well enough, when running tests on Version 2.7 on very large news sites we found DNEWS was starting to struggle. With the projected growth of news being expected to double news rates every 1-2 years we took immediate action to improve the speed of the database.

Further investigation showed performance varied from .1 to 15 articles per second depending on type type of feed (ihave or suck) and the type of operating system (NT, Unix, VMS ...)

It became clear that any system based on storing articles in directories, one directory for each newsgroup, would not be able to handle the loads over the next 2 years.

As a result we decided to completely redesign the database. The new database would no longer use a group based directory structure. The design goals were:

u Hi speed at taking ihave and sucking feeds.

u Hi speed at providing the users with xover information.

u Hi speed on any platform

u Hi speed at sending full ihave feeds out.

u Extreme dependability, and fast rebuild - consistency check.Any rebuild operation should take less than 12 hours at worst.(on a 10 gig system)

u Automatic recovery from power outage etc

u The ability to spread over multiple disks on any operating system and still obey expire rules correctly.

u Prevent disk fragmentation.

DNEWS 4.0 is the result of this new database, it succeeds in all the areas mentioned above, and more besides, typically it can take test articles at over 30 articles/second while still 50% idle. This makes DNEWS significantly faster than any other news server and probably the only technology currently available that will be able to take the increasing news loads over the next 2 years.

DNEWS 4, Technical Notes:

u Upgrade process, this is automatic and should take approx 1 hour per gig. WARNING, if your spool area is split over multiple drives using symbolic links (unix only), then you must follow the instructions below on upgrading unix multiple drive systems.

u xhdr and xover data cached to disk.

u list commands added

u list overview.fmt

u list active [wildmat]

u Xref added to default xover data

u New tellnews command (none of these should be used unless something goes wrong :-)

u tellnews rebuild_hist Add any items to the history file that arenot already in it.
tellnews rebuild_index Rebuilds index from scratch, the items will disappear, then reappear during the rebuild.

u tellnews check_index Takes a few seconds, checks the index and corrects the group ranges to match the index.

u tellnews resort_index Sorts the index so any group can be read with a single disk scan, this will also remove deleted entries from the index.

u Obsoleted tellnews commands
tellnews addlost
tellnews purgelost

u Support for 8 spool areas/disks.

u New dnews.conf settings

u spool, spool2... spool8 # Defines the disk areas that dnews can use to store it's buckets of news.

u diskspace, diskspace2... diskspace8 # Define the size of each disk area

u expire_min 10 # This sets how much wasted space is allowed. The default is 10%.

u spool_free true # This tells dnews to chose which spool area based on the amount of actual free space rather than it's internal count of how much space it's allowed to use.

u bucket_size 10000000 # Sets the size of each bucket, optimally you want more than 10 buckets and less than 3000. 10MB is the default for spool areas over 100MB in size.

u sort_chunk 100000 # Sets how many items to read in one go when re-sorting the master index, setting this larger speeds up the sort but uses more memory.

u path_stamp # The name used to stamp the path of messages that go thru your system, this should be a fully qualified text name in lower case, it need not have a genuine DNS entry.

u Use this if your MYNAME parameter is a single word or a number. e,.g.myname 22.33.23.4 path_stamp news.netwinsite.com

u debug_rotate_in 1000 # Number of lines before .in file should rotate

u debug_rotate_out 1000 # Number of lines before .out file should rotate

u Defaults for log_inline set to false to reduce log file size.

u Size of log files has been drastically reduced.

u Fixed loop in DNS lookups on unix systems.

u Fixed bug with crash and or loop following xpat command.

Unix Upgrade Notes (with multiple drives connected using symbolic links)

In dnews.conf use the setting:

spool_free true

And define each of your drives as one of the linked drives. e.g. if you currently have a second drive mounted as /var/spool/dnews/alt/binaries, then your dnews.conf should look like this:

spool /var/spool/dnews

spool2 /var/spool/dnews/alt/binaries

diskspace 2000

diskspace2 1000

After the conversion has finished it is safe to move the directories, but you cannot do this before the conversion because dnews must be able to find the 'old' files where they 'used to be'.

3.0j (11-12-96)

u Fixed bug with Xref: headers being duplicated.

3.0h (11-12-96)

u Adding PGP authentication to control.conf

u Limiting users per area, and concurrent connections per ip address

Example:

161.29.2.*:read,post:::*:users=10 161.29.3.*:read,post:::*:users=50
161.29.4.*:read,post:::*:con=3

To limit iprange ..2.* to 10 users, ...3.* to 50 users, and ...4.* to no more than 3 connections per ip address. Note the difference, the users=n setting is for limiting the numbers of connections from internet sub domains, whereas the con=n setting is to limit the number of connections from a single ip address. To specify both separate with a COMMA not a COLON

161.29.4.*:read,post:::*:con=3,users=10

3.0g (10-12-96)

u Fixed crashing bug on VMS and OS2 (often occured at the end of an expire run)

3.0f (9-12-96)

u Added tellnews commands:

u tellnews findlost (corrects the range of items in active.dat based on existing .idx files, this is similar to 'addlost' but it is much faster as it doesn't also add the items to the history file, so use it when active.dat is messed up but the items are in the history file)

u tellnews spool_convert /var/spool/news (use this command to convert an existing INN or CNEWS spool area, as each file is processed it is deleted, you should comment out your feeds before doing this or you may end up re-feeding all this old stuff to your outgoing feeds)

u Improved installation procedure on NT, and enhanced online help.

3.0e (7-12-96)

u Fixed bug with file handles in 3.0d

u Fixed bug with channels closing on VMS under UCX and TCPWARE

3.0d

u Made VMS version correctly display socket errors

u Fixed bug in 3.0b which caused slow performance and lost items during the upgrade, if you installed a previous 3.0 version you should issue the command 'tellnews reindex' to repair the damage.

3.0a

u ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING ** WARNING **

u Changed database format, you CANNOT downgrade to 2.7 after upgrading to 3.0

u When you first start up 3.0a it will automatically upgrade your database, this will take about 1 hour per GIG of news. During this process you can read news but posts will not be permitted and response will be less than perfect. The upgrade process will continue automatically if your machine crashes or is shut down during the upgrade process.

u The reason for the database change: To increase speed particularly with 'IHAVE' feeds.

u Added config parameter, db_flush_every 1 (default 60) How many seconds to wait before closing some more files db_flush_n 4 (default 1) How many files to close at each 'every' time period. If you want it to keep all the files closed then set these to 1 and 10 respectively

u To get maximum throughput with an IHAVE feed into an NT system you should increase db_max to about 200. On unix systems it depends how many file handles each process gets, you can probably increase this to 100 or maybe 200 and get a measurable speed improvement.

u Added line to status which shows how many files are open and what the file open cache hit rate is.

u Added tellnews commands. tellnews pause The reason for pausing tellnews unpause This allows you to stop incoming articles for a period of time.

u Added version and computer type to reports.

u Fixed NULL errors that appeared in logs during live feeds

2.7q

u Fixed Null errors with live feeds.

2.7p

u Fixed error in newgroups date processing.

u Made uucp_suck more flexible if rnews lengths are not exactly correct

u Fixed bug with maxsize limit for individual feeds

u Fixed bug in Full Text Searching on non NT systems (causing crash in xmit)

2.7o (12-Nov-96)

u Wide release of beta

2.7n

u Expire speeded up, on a large system (15 Gig spool area) we measured it went from 10 hours to 2 hours. Your mileage may vary. :-)

u FTS patch

u Database flushing modified.

2.7k

u used.log file moved to log directory, and renamed to u_yymmdd.log this is to make accounting procedures simpler. Also the full date has been added to each line inside the file as well as the size of the article read. We applogize if this breaks any existing software.

u If reverse dns produces a hostname with no '.'s in it, then the ip number is used to tag local posts instead of the name.

u Added dnews.conf paramter STR_START this defines the inital string space, you can use this to tune dnews, after it's been running for a few days check the second value in the str memory use shown in the status output, e.g. History:... Str 6040k/7050k/10060k Use a number larger than the second number. Add 1 or 2MB e.g. str_start 8000000 Don't use this parameter on WINDOWS NT, it isn't needed.

u newsfeeds.conf parameter PENDING_MAX added, the default is 10000000 (10mb) If a feed file gets larger than this setting it is automatically deleted, this helps to support many outgoing feeds where often one machine is down for several days and you don't want to run out of disk space.

u Added variables to newsfeeds.conf $nntp_suck2...$nntp_suck4

u Updateone now inserts new items 'above' normal items in the queue, in this way you can schedule some groups to be updated at a higher priority by setting up a cron job to issue a command tellnews updateone "rec.humor.*"

u Fixed occasional synchronization loss with live feeds on large items

u Fixed loop in streaming sucking (introduced in 2.7)

u Fixed rare bug in hist_hash() which could cause crashes with very long message id's.

u UUCP files flushed before reload to prevent errors.

u Fixed live feed of missing items to ANU news server. (Feeds would block)

2.7j

u in_size added to dnews.conf, set to 500 if you are trying to limit the speed of incoming messages via a modem.

u fixed bug if live feeds with rejected items

u fixed bug in live feeds with very long message id's.

2.7i

u Bug fixes in feeding channel closes

2.7h

u Fixed bug in uucp caching.

u Fixed rare crash bug in live code.

u Fixed bug with item_max being exceeded with streaming feeds

2.7g

u Modified 'resetall' so it doesn't set all groups to cached. (warning, NEVER user RESETALL on a running dnews server, it is only intended to be used during the initial installation)

u Added tellnews command logchan n and logfeed feedname Enables logging of that channel/feed to a file chan_n.log

u Improved speed of uucp outgoing feeds and normal multiple outgoing feeds.

2.7f

u Fixed crash if live channels are closed in mid message.

2.7e

u Fixed problem with builtin uucp feed not writing enough items to each file.

u Fixed bug with multiple sucks for identical groups if they were scheduled to run at the same times.

2.7d

u Added dnews.conf setting tcp_nodelay true, this will slow dnews down but may solve problems with buggy news readers (as it stops packets being split up in mid record)

u Fiddled newgroups command output to make Newswatcher happy.

u Fixed live feeds to INN 1.4unoff4

2.7c

u Added dnews.conf setting uucp_crlf which writes uucp bag files with 'crlf' (text mode) instead of just 'lf' termination. (changed default to 'lf' termination for unix compatibility )

u Fixed bug with dnewsman rejecting uucp_size and uucp_n settings.

2.7b

u Fixed bug rejecting items if item_max exceeded.

u Made item_max dynamic (i.e. a reload changes it :-)

u Added NNTP extension 'LIST SUBSCRIPTIONS' sends the file dnews/spool/subscrip.dat This is typically a list of default news groups that you wish new users to be subscribed to. (Not all news readers will support this function yet).

2.7a

u Major features of 2.7a

1. Lower memory use

2. Live high speed outgoing feeds (to replace xmit) these stream and allow multiple channels, and send articles as they are received to reduce system impact. This makes DNEWS ideal for easily sending out large feeds to many customers. (Assuming they haven't seen the light and switched to sucking feeds yet :-)

3. Support for writing UUCP files directly (much faster)

4. Support for reading UUCP files directly (much faster)

5. Shotgun posting, to spread your local posts faster.

6. PIDENTD support for unix systems.

7. Many minor improvements / config settings / management commands. Before playing with the new commands for removing groups, copy your ACTIVE.DAT file (just incase :-)

u tellnews group_nodup removes duplicate groups if they exist

u Reduced memory use of large incoming items especially from multiple ihave feeds

u Reduced memory use of group information.

u Increased OS2 open files to 10, You should put FILES=40 or more in config.sys (Thanks to Jean-Louis Noel for OS2 code fragments)

u Print error if history file is unreadable

u uucp output is now a builtin option for dnews, in newsfeeds.conf

site uucp1
groups *
type uucp
uucp_dir c:\uucp1
uucp_size 4000000
uucp_n 500

This will create bag files in the uucp1 directory, and switch every 4MB or 500 items.

u Live links for sending out feeds.

site downstream.site.name
type live
live_nchan 3
groups *

u On unix, err closed = 150, on slow sucking feeds fixed.

u Change to license key processing (2-4) while waiting for key entry.

u Fixed bug in the '.in' log files rotated file names

u Added tellnews command

tellnews trimgroups [n]
which removes groups from your local machine that are not available on the machine you suck from. (n is the suck number) After doing this check dnews.log, then use the purgegroups command below if necessary. BEFORE doing this make sure your list of groups in nntp_feeder, or nntp_suck2-4 excludes your local groups or they too will be deleted (if you mess this up then use the undelete command from tellnews to get them back) e.g.

nntp_feeder main.sucking.site *,!microsoft.*,!local.*
nntp_suck2 msnews.microsoft.com !*,microsoft.*

u Added tellnews command

tellnews purgegroups [wildcard]
'kill' groups that have been marked for delete. This command sets them to actually be forgotten. Always restart dnews after using this command. Note: If you do this on a sucking feed where you have removed several groups by hand that 'do' exist on the site you suck from, then the groups will re-appear. This is because dnews adds groups it doesn't know about when sucking. They should be left as 'marked for delete' if you don't want them to re-appear.

u Added tellnews commmand

tellnews checkgroups check.txt
This processes a file check.txt, which must be a checkgroups message with header lines followed by one blank line, followed by the list of news groups with descriptions. Missing groups will be added, extra groups will be deleted.

u Added support for checkgroups control message.

u Problem with cachedonly true and sucking fixed (items were rejected until the user read an item )

u Added support for pipe based programs to accept feeds directly from dnews.

u

site prog1
groups local.*
type program
prog_name \dnews\darchiv
prog_args \dnews\darchiv.log
When items arrive a pipe will be opened to the darchiv program, which must read articles from stdin and do something with them. The articles are sent in the following format:

ARTICLE group:item_number <messageid>

(Actual header and body of article)

. (single full stop is end of article)

ARTICLE group:item_number <messageid>

(Actual header and body of article)

. (single full stop is end of article)

A sample 'c' program is provided in this file to assist you in writing or modifying existing software.

u Tellnews killitem (modified to show if it succeeds)

u expire_minutes, bug fixed

u Decreased group_write to 10 minute intervals

u Improved output of chan[] status lines. e.g.

Chan[0:72] B o=0 in=54/s out=2788/s 161.29.2.1 161.29.2.1 C_CMD
B The channel is busy processing a command
o=0 No bytes are waiting to be sent
in=54/s The channel has been reading at about 54 characters / second
out=2788/s The channel is writing at about 2788 per second.

u

u LOG_AGAIN true, Creates second log file using unxi fflush() that never closes (purely for debugging use)

u Fixed tellnews log command if log file is empty

u Added channel closing logic for outgoing channels.

u Mail messages will now be sent even if the suck queue is paused.

u Added log_inline (default true, item ok messages in log file)

u Added log_nntp (default true, nntp commands in log file)

u Tellnews status feed[] now shows the size of the waiting feed file.

u Added dnews.conf setting

org Your Company Name

u Added dnews.conf setting

org_replace true (forces your organization name on all posts)

u Added tellnews command

tellnews reject <messageid>

which will somtimes be useful in unblocking blocked feeds.

u Increased max_chan to 800, this may allow up to 800 concurrent sessions on a machine with enough RAM etc...

u Added output bandwidth limiting.

MAX_OUT 10000

Controls bytes/second per channel, a value of between 2000 and 30000 is sensible. (3000 would limit connections to 'modem speed')

u Changed mail processing so messages are sent immediately

u Made suck automatically fix upto counters if they are too high.

u If posting feed fails to connect, it shouldn't retry straight away, this should allow the suck'ing to continue from an alternate host.

u Dnewsweb: Now requires subject header's for post

u Shotgun posting, it is now possible to 'shotgun post' using the 'posting' mechanism as it will send to ALL matching feeds in newsfeeds.conf.

u Routing messages into a posting feed, Set post_route true and then incoming 'ihave' messages will be routed to outgoing posting feeds. Do this at your own risk, it is somtimes justified, for example if you have a BBS running 10 groups attached to your dnews server then it may need to send into your machine via IHAVE and you need to 'route' the messages upstream.

u DNEWS now responds correctly to cancel messages, it previously gave a 'rejection' status if the message did not exist locally, although reasonable this is not 'normal' behaviour so we have changed it to match other news servers.

u DNEWSMAN upgraded to allow all the new feeding options

u Minor changes to sucking logic

u Added to dnews.conf pident authentication

pident true

Which if tells dnews to attempt to verify a 'username' for every connected session. (This is only meaningful on unix systems where the 'ip address' alone does not identify the user) If successful then the users name is added to any message that they post.

u Fixed bug with nntp_feeder being undefined causing lockups.

u Fixed bug if expire encounters history line over 8K long.

u Added dnews.conf parameter

suck_uucp c:\uucp\*.bag

This replaces the dposter service for reading in uucp feeds, it will read in messages a LOT faster than the dposter service could.

u New command

tellnews disconnect n

where n is the channel number shown in tellnews status.

u Fixed bug with solaris closing channels for no reason.

u Fixed intermittent bug in expire if usage was over 89%

2.6q

u Patch for dnewsweb for BSDI and OSF

u Added dnewsweb.ini setting

u cgi_path dnewsweb

u This parameter is needed with some CGI wrapper programs which fail to pass the correct path thru. The above example will usually fix it.

u Added code to deal with buggy select call in solaris

2.6o

u Fixed xmit to mailing list gateway, it was not sending once it got an error.

u Reduced number of open files in OS2, their is a limit of 8 for some unknown reason in the watcom C library.

2.6n

u Minor mod to db code re expire processing.

u string compress fix for non nt versions

u built new OS2 version, dposter should work now.

2.6m

u Forced addition of posting host header.

u Increased timeout from 26 minutes to 1 hour if history.dat is locked (for example by a slow backup process)

u Fixed a bug in the refeed command.

2.6k

u Fix for tellnews group_merge command, the groups in the active.add file were not being added to the active.times file.

u Fixed bug in email confirmations and reports

u Fixed refeed command so it runs without stopping dnews

u Added tellnews log [nnn] to show the last few lines of the log file.

2.6j

u 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.

NOTE: you must delete *.fts before starting this new FTS system if you were testing the previous beta version of FTS. (full text searching)

u Fixed bug in the xmit restart after crash code.

2.6i

u 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 :-)

u Reduced memory use on NT.

u Fixed bug with sending articles out via combined ihave/suck feed.

2.6h

u Fixed response codes from tellnews, always end in 281 now.

u Fixed bug in FTS which could cause a crash (only if you were using fts)

u Improved performance of cancel messages (by a large factor)

u 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

u Made the fts-xmit process work much faster with binary articles.

2.6f

u Fixed bug in drobot which was loosing the last 2 lines of messages.

u Added tellnews command tellnews reload_fts to re-read the fts database.

u Fixed bug in processing feeds which caused xmit to miss an occasional article

u (NT) Increased connection queue length and process it faster to deal with connection refused messages.

u 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

u Fixed bug in FTS database.

u Fixed stats_in display for multiple feeds from the same machine.

u Fixed getold so it will not set upto values negative.

2.6d (28-Aug-1996)

u 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)

u Fixed bug in streaming suck option.

2.6b (26-Aug-1996)

u 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

u Full Text Searching added

u DNEWSWEB now automatically finds and shows images in messages

u DNEWSWEB improved to allow all the screens to be tailored.

u Expire on large systems (4Gig and up) is much faster.

u Performance improved and cpu use reduced.

u Misc bugs fixed.

u Implemented automatic inline decoding of MIME and UUENCODED pictures in DNEWSWEB

u Added 'related items' button to DNEWSWEB

u Added header and footer files to DNEWSWEB see dnewsweb.txt for details

u Added 'sort by subject' option to dnewsweb.ini

u 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)

u Made tellnews key command friendlier.

u Added nntp extension XDSEARCH for Full Text Searching

u Added nntp extension XDFIND for header searching within a group

u Fixed bug in xmit - mailing list gateway with some mail servers.

u Added option to dnews.conf "nocontrol true" which stops the automatic creation of the newsgroups control and control.cancel

u Improved speed of listgroup command by factor of about 10-20. (this can significantly improve free agent response)

u Added pc's ip name/number to path if it is empty in posting feed

u Fixed expire bug, if 'purge' was not defined it defaulted to 0

2.5l (20-August-1996)

u Changed log file names from dnews.log2 to dnews2.log, dnews3.log.

u 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

u Added more regular writing of active file with ihave feeds.

u Fixed error in dnews generated line count

u Modified select call to deal with bug in NT Sockets which caused 'connection refused' errors during expire runs.

2.5j

u Patched bugs in NetWare version (with long file names)

u 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)

u Added tellnews showqueue which will show the entire sucking queue.

2.5i

u Fixed file handle leak on unix versions.

2.5h

u Added cached life to showcached output.

u Added time stamp to last sucking error in status.

u Added AUTH_CASE TRUE, which allows case sensitive user/passwords in access.conf

u Minor changes for OS/2 version.

u Fixed error in active.names processing which allowed duplicates.

u Added tellnews command FIXNAMES which removes historical duplicates

u 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)

u Made output from 'key' command easier to

u Changed some sockets to non blocking, added dnews.conf nntp_block true

u to restore previous operation in event of any problems.

u Found bug causing crash after socket closed error.

2.5g

u Fixed EAGAIN error's (on solaris and osf) so it will wait 1 second before re-trying.

u Fixed intermittent crash at end of expire on NT related to error messages like: "(socket_write error.."

2.5f

u 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

u 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

u Patched 2 more socket_write errors for NT.

u Added reporting of pc's name when license key fails.

u Changed killitem to accept message id's

u Fixed bug with rubbish appearing at bottom of downloading message.

2.5c

u Increased max length of confirm settings

u Patch for occasional crash at end of expire run on NT

2.5b

u DNEWSWEB, fixed bug in html code so it works with netscape 2.x

u Fixed BSDI crash

u Added rlimit memory code for BSDI

u Made system reject users nicely when close to 300 users connect.

2.5a

u Added DLIST nntp extension

u Added DNEWSWEB, a cgi program to gateway web pages into your news system for both local and non local groups. See newsweb.txt for instructions on installation.

u Fixed channel close on write causing signal on BSDI.

2.4q

u New groups would sometimes not show a downloading message until dnews was restarted, this is fixed.

u More minor changes for MAC version.

u Improved 'newnews' and 'newgroups' commands to minimize impact and mem used.

u 'newgroups' now obeys 'access.conf' settings so users don't see 'new' groups that they cannot actually read.

u Fix for outgoing feeds to ports other than 119

u Fixed control panel start/stop of xmit service.

u Reduced memory use for xmit.

2.4p

u Improved memory handling some more, changed string allocation method to avoid block fragmentation and free more strings if a channel closes.

u Reduced over allocation for group data.

u Fixed bug with SUNOS strstr() routine, result is DNEWS runs about 5 times faster on SUNOS than it used to.

2.4o

u 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

u 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)

u Fixed bug with article corruption (usually only occured with large articles on tcp links that go up and down alot)

u Header cache is cleared after expire, (stops misleading xhdr output)

u Minor code changes for Mac version

2.4k (Beta)

u 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)

u Fixed unix crash (only some flavours) if connections closed while sending to them. (introduced in 2.4f or maybe 2.4g I think)

u Fixed problem with newly added groups not showing 'downloading' message

u Fixed crash if list of feed groups is more than 500 char long and status command is run.

u added total bytes to stats_in output

2.4j (Beta 19/June/1996)

u Fixed processing loop after connections close.

2.4i (Beta 18/June/1996)

u Fixed bug with large cross posted items introduced in 2.4g

2.4h (Beta 17/June/1996)

u Fixed memory problem if active.times file gets too large.

u Fixed bug with multiple sucking which would have caused dnews to re-check items from secondary sucking sites.

2.4g (Beta 16/June/1996)

u Made date of fake article 60 days old to ensure the article does not get sent to other news servers successfully.

u Fixed Expire Report crash if less than 40 groups existed.

u 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.

u Prevented memory build up from the following commands:

xover,xhdr,list,article,body

u Made default list output only show groups that the user can read.

u Added tellnews command "update_clear" to empty the update queue.

u Fixed crash if active.names file was larger than memory.

2.4f (Beta 6/June/1996)

u xmit, log file now rotated every 10,000 lines.

u 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.

u Fixed 2.4e bug with updates only occuring once per hour instead of every 10 minutes.

2.4e (5/June/1996)

u Increased max connections on Solaris to 300, linux to 200 (same applies to other rlimit based unix systems)

u 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.

u cachedonly true also works better

u 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.

u Expire, timing logic changed so it is 'hourly' based, this ensures it is not missed occasionally.

u 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

u 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.

u 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.

u 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.

u Made 'getgroups' run as a background task so it doesn't impact on performance.

u Made xover and xhdr run without blocking other nntp sessions, and smoothed out response.

u 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.

u 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))

u Fixed bug with multiple reports being sent each night.

2.4d (19-5-96)

u Fixed crashing bug for sites not doing any sucking (introduced in version 2.4a)

2.4c

u Fixed bug in sucking different groups from multiple sites

2.4b

u Digital Unix bug fix in history memory allocation

u Changed default for nntp_slow to FALSE

u Added code to correct item start count for a group in the event of files dissappearing.

u 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

u 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!!!

u active.dat file now has 3 extra values, (the end points for the additional sucking feeds)

u The UPDATE_GROUPS1,2,3 dnews.conf parameter is now obsolete. Here is an example setup for taking alt groups from two sites and

u 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

u 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 :-)

u Minor change to processing of LIST command which should improve speed if there are lots of deleted groups.

2.3p

u 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.

u 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

u 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)

u Fixed bug with sucking from multiple sites, it was intermittently sucking groups from the wrong site.

u 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.

u max_speed 10000

u Added CANCEL_ANYONE true, enables all cancel messages even if they are not from the original poster

u Added CANCEL_USERS me@here, only allows cancel messages from you.

u 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)

u Added config parameters

u SUCK_BATCHN 100

u SUCK_BATCHSIZE 3000000

u These limit the number and total size of items to suck from one group at one go.

u Fixed config processing which could cause errors with blank parameters.

u Made rmgroup/killgroup work for mixed case groups.

u Added 'n groups deleted' to output from rmgroup/killgroup

u Modified buffering of output to improve compatibility with faulty news reader software.

2.3n (5/5/96)

u Increased connection limit on NT from 128 to 300

2.3m (3/5/96)

u Added dnews.conf SEND_AT and SEND_LATER

u SEND_AT *5 * Sends mail and builtin feeds every 10 minutes

u SEND_LATER TRUE Stops dnews from trying to send immediately a post is sent

u 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.

u Fixed bug with dposter processing large messages, where dposter would somtimes lock up. (probably only on NT)

u Fixed scroll bars on Dnews Manager status windows (yay!)

u Registration codes changed, this should not affect any registered users, however, if you have a problem please contact netwin@netwinsite.com and we will provide you with a new registration key.

2.3l (19/4/96)

u Fixes bug with cancel processing

u 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

u Fixed bug with not sending AUTHINFO when posting upstream.

2.3j

u Fixed occasional crash if sucking connection closes unexpectedly

u Fixed crash if control message tries to create illegal group name.

u Corrected format of MAIL TO: messages for confirmations and added Message-ID

2.3i

u 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

u 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 :-)

u Fixed bug in xmit if destination site resonded with <msgid>xxx with no 'space' after the right hand angle bracket.

u Fixed bug with Microsoft Internet Explorer 2.x and Downloading message.

u Fixed bug with fast history file, so it now works faster

u Added stats commands

tellnews stats_in, Shows stats in incoming feeds
tellnews stats_groups, Shows stats on group usage/size

2.3h

u Expire crash bug fixed (thanks to Karsten Thygesen)

u 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

u Fixed error message bug (no such file...) repeating in log file.

u Fixed caching detection for news readers that read items by message ID (e.g. netscape 1.x)

u Fixed bug in xmit causing PANIC errors and crashes. (I think :-)

2.3f

u Compile warnings fixed, thanks to Karsten Thygesen

u Speeded up history file access by adding match code. (this will help large sites taking full feeds)

u 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

u 201, posting not allowed, now accepted by xmit as a valid return code.

u Fixed NT crash when socket closed with unusual error message. (again)

2.3e (21/Feb/96)

u On Windows 95 start and stop buttons now work from DNEWS Manager

u History lookup in cache (so new posts can always be found)

u Group cached life is not decreased when it is read, only increased.

u Cancel messages from Freeagent are now obeyed despite their dubious format.

u Added 'logoff' setting for access.conf, use this to deny access.

u Added caching for DNS lookups and reverse lookups.

u Added dnews.conf NNTP_LOGOFF setting which will be sent to connections which do not gain access thru access.conf. The default string is:

u nntp_logoff You have no permission to talk

u InstallShield now checks for 3mb of space on %temp% disk, system disk and spool disk.

u Fixed NT crash when socket closed with unusual error message

2.3d (11/Feb/96)

u Default feed fixed for builtin feeds which aren't sucks.

u Increased line length for access.conf and expire.conf

u Changed several strcpy's to ncpy's

u If history fails to open it will retry

2.3c (7/Feb/96)

u Oops, bug introduced in 2.2g which caused crash during startup if nntp_feeder was not defined.

u InstallShield now used for installations (thanks to Danny Mayer)

u DNEWS Manager GUI released (beta)

2.3b

u Fixed bug with long headers being messed up from some news servers

2.3a

u Released

2.2g

u Added to dnews.conf, for updating some groups at more frequent times update_groups1,2,3 interesting.groups.* *5 *

u For sucking groups from other news servers.

u nntp_suck2,3,4 site.name local.* [username password]

2.2f (30/1/96)

u Cleaned up nntp error message.

u Fix access.conf problem with read and post mix up.

2.2e

u Fixed bug in database which caused idx files to become corrupt on occasion.

u Made open's non blocking, you can reverse this using OPEN_BLOCK TRUE in dnews.conf

2.2d (20-Jan-1996)

u Put exit handler back into unix version. (removed during debugging)

2.2c (19-Jan-1996)

u Improved handling of corrupt database files which could cause crahes in some circumstances.

2.2a (15-Jan-1996)

u Made log files rotate every 100,000 lines by default (debug_rotate 100000)

u Made expire higher priority than sucking news items.

2.1v (13-Jan-1996)

u Fixed key problem for MIPS-NT

u 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)

u Added tellnews undelete wildcard, this command will mark deleted groups as normal again.

u 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

u tellnews undeleted *binaries*

u tellnews matchfeed

u Fixed bug involving file handles.

u Fixed problem with entering license key on expired systems

2.1t (5-Jan-1996)

u Fixed minor bug in vms version, crashed if group names exceeded 80 chars

u 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)

u 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

u Fixed bug with ihave feed of items larger than 1MB causing 10 minute delay in feed.

2.1q

u Fixed crash if .itm file is badly corrupt. (added speed stats)

2.1p

u Fixed status code for failed items when recieving a streaming feed.

2.1o

u 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.

u email confirm now allows a list of email domains, e.g.

u confirm *.newyork.com,*.la.com

2.1m (3/12/95)

2.1k

u 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)

u Added NOSTREAM true option to dnews.conf, this disables incoming streaming

u Changed priority of feeds so posts will go out sooner.

2.1j

u Fixed one possible file handle leak

u 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)

u Fixed bug, item far too big error keeps repeating after first failure.

2.1h

u Modified db_hash which could return a negative number

u Made suck and feeds timeout after 5 mins if other ends stops responding.

u Fixed minor bug with internal feed which could cause a crash

u Fixed return code if connection is refused

u Fixed xmit bug

u Fixed bug if access is refused and connection is terminated by other end.

2.1g

u 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)

u Added uptime to status

u Fixed bugs which could cause crashes if an item index file was corrupt.

u Added NT translation of filename 'nul' which is not valid on NT.

u 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)

u Improved logging of file open/close

2.1e (4/11/1995)

u Fixed lib_strdate, which was producing bad time stamps

u Fixed posting problem with INN servers

u 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)

u Fixed addlost bug

2.1c (2/11/1995)

u Changes to memory allocation for NT.

u Now deals with & in news group names on NT.

2.1b (1/11/1995)

u Fixed crash if NULL item is sent (should never happen anyway but some news feeders do it rarely)

2.1a (31/10/1995)

u Full release of version 2.x

2.0 Beta-5

u 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.

u 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

u 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

u 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.

u Fixed nntp command list newsgroups.

u Modified memory allocation again :-)

2.0 Beta-3 (26-Oct-1995)

u Fixed bug in xover introduced in Beta-2

2.0 Beta-2 (24-Oct-1995)

u 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.

u String allocation routines re-written to allow memory compaction on the fly, also minor changes to indenting style to solve all other memory problems.

u 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.

u 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)

u NOTE: After installing type in: tellnews upgrade (now DOUPGRADE instead)

u 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.

u File IO improved to handle much heavier loads and improve xover performance when groups are heavily cross posted.

u The following NNTP commands all speeded up by about a factor of 10, NEWNEWS, NEWGROUPS, GROUP.

u History rebuild fixed (tellnews addlost)

u XMIT exiting when it can't connect fixed.

u Log files flushed more completely

u Timeout of idle channels now settable in minutes (TIMEOUT NN) in dnews.conf

u Two new settings to clearly specify how cached groups should be dealt with:

u cachedonly true (don't allow items into non cached groups)

u cachedall true (pretend all groups are cached)

u 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.

u 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).

u 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)

u Modified memory allocation routines to avoid common operating system bugs, resulting in much lower memory use.

u Fixed bug with running out of file handles if the feed site isn't responding.

u 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.

u TELLNEWS ROTATE command added to rotate log files. This also happens once per night automatically. Files are renamed:

u dnews.log -> .log2 -> .log3 -> .log4 -> (deleted)

u 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.

u Newnews command fixed, it was not responding with the correct status.

u 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.

u If WinVN crashes every time you try and read a newsgroup then type in.

u tellnews fixrange

u 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.

u 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)

u New mailing list for discussion, send to dnews-request@adam.com.au

u 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.

u Fixed bug in expire and purgelost.

u 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)

u *** Upgrade procedure, I recommend after upgrading to 1.1g you type in:

        tellnews purgelost

u 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

u To set the current disk usage correctly (nnn=MB used)

1.1f (27-Sep-1995)

u Fixed bug with header records containing tabs being returned by xover or xhdr incorrectly.

1.1e (26-Sep-1995)

u Fixed bug in body command, if body is empty the server crashed. (although this is rare as empty body messages are not accepted

u it can only happen when the database is corrupt)

u Fixed free disk space display on NT

u Added reporting on memory allocated

u Added LOGDIR_MIN to config files

u Added TELLNEWS STATS command.

u Fixed History memory usage display

u Fixed 'mode reader' command, it had a trailing space and some news servers didn't like that. (thanks to S White for finding this)

u 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)

u Fixed expire problem (with deleted groups)

u Removed code that prevents ihave incoming when outgoing feed is posting (but this is still probably a bad idea)

u Fixed memory leak in NT version.

1.1c (14-Sep-1995)

u Fixed remaining memory leaks.

u Changes default FEED_READER to TRUE.

1.1b (Internal only)

u Fixed tellnews command when port is not 119

u Fixed bug when expring if no items in system at all.

u Added FEED_READER TRUE OR FALSE, to force the 'mode reader' command to be sent, or not sent.

u Added maxcross flag for limiting crossposts in newsfeeds.conf

u Made major improvements in memory allocation, greatly reducing memory usage.

u Added debugging option DNEWS_ROTATE 1000

u Fixed bug if the right/wrong slash is used in dnews.conf on NT

1.1a (6-Sep-1995)

u Fixed possible bug with very long group names.

1.0e (Internal version)

u Fixed possible bug with multiple simultaneous incoming ihave feeds

u Fixed possible bug with items cross posted to > 200 groups

u Fixed possible bug with incoming items corrupting memmory.

u Fixed bug with tellnews.pass not being accessible after it runs out of disk space.

u Extended newsfeeds exclude command to allow a list of sites e.g. exclude feeder1.site,feeder2.site

1.0d (Internal version)

u Fixed NNTP DATE command, required by TRN

u Fixed NNTP responses for list commands for TIN

u Added dnews.conf paramter PORT to run the server on a different port.

u Added dnews.conf NNTP_USER, NNTP_PASS user and password for feed site

u Fixed bug internal mail sending system (NT & VMS not saying HELO)

u Added NNTP extension list active x.y.z

u Added config, LOGUSE ON, enables reader logging to used.log

u 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)

u Made feed and mail queues higher priority than background suck entries.

u Fixed major bug in internal feeding code which could loose local posts if the system was under load when it tried to send them.

u Fixed possible crash during expire if history file was corrupt.

1.0b (20-Aug-1995)

u Fixed tellnews reload so it reloads dnews.conf, access.conf and newsfeeds.conf. Also made expire.conf reload automatically.

u Fixed rejection message if nntp access is not permitted.

u Fixed display of downloading message for new groups on NT.

u Correction made to default access.conf

u Updated Documentation

1.0a (14-Aug-1995)

u Silently reject cancel messages which don't have a message id or that have 'cancel<messageid>' with no spaces.

u Added streaming extensions to DNEWS server

        check <messageID>
        takethis <messageid>
        mode stream

u New xmit, a hi speed nntp IHAVE feeding program this allows DNEWS to be used on non leaf sites.

u dnews_start now takes ownership of (spool) /var/spool/dnews directory as the correct usercode to run dnews under.

u Modified startup scripts to change directory before starting DNEWS

u Windows NT version created.

u Changed config file processing so it is not TAB sensitive.

u Fixed bug with tabs in dnews.conf causing problems.

u Log files flushed early on in startup, so you can see if its going.

u 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.

u Corrected expire.conf, settings for keep and default were mixed up.

u Modified control.conf so it doesn't generate as much email.

u Group command now shows correct number of articles in a group.

u 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)

u Fixed bug which prevented news groups from being added.

u Added missing nocached.body file to distribution.

0.9c (Wide BETA release)

u Socket error's trapped correctly, this was causing the process to dissappear when a connection was badly closed at the other end.

u New articles added after an expire run were indexed incorrectly.

u Messages tidied up

u Control mail messages now contain "done" or "logged only"

u Pause message now contains status information.

u Inactive sockets closed even when data still pending on output.

0.9b

u First ALPHA testing release

This help file was generated from HTML source using WebTwin version 1.1


file://d|/pages/manual/buttons.htm

DNEWS Index | Install | Management | Feeds In | Feeds Out | FAQ | tellnews | *.conf | Download | NetWin

This help file was generated from HTML source using WebTwin version 1.1


If you can see this, your help file has no topics! See the status tab and webtwin.log for more information.

Note that it is important that you exit WebTwin first to make sure the log file is up to date.

Be aware that restarting WebTwin will cause the log file to be emptied, so check it before restarting.


This URL was excluded from the pulldown


The protocol used in this URL is not at present supported by WebTwin


This URL referenced an unknown protocol


This link was broken when WebTwin tried to fetch it


This URL contained unknown content


Robots are excluded from this URL


This link was not retrieved


This link was skipped because it was suspected to be an invalid URL


This link was skipped at user request


This link was skipped it was suspected to be CGI. This can be changed from the WebTwin Options tab.


This link was skipped it was an image, and the NoImages option was on. This can be changed from the WebTwin Options tab.


This link was skipped because either the user pressed the WebTwin 'Enough' button or the given retrieval time limit expired.


Registration information goes here


http://netwinsite.com/cgi/dnewsweb.cgi?cmd=xover&group=netwin.dnews This link was not retrieved because is was suspected to be CGI. This may be changed from the WebTwin options panel.


file://d|/get_in.htm This link was broken at the time WebTwin tried to fetch it.


file://d|/get_in.htm This link was broken at the time WebTwin tried to fetch it.


file://d|/get_in.htm This link was broken at the time WebTwin tried to fetch it.


file://d|/get_in.htm This link was broken at the time WebTwin tried to fetch it.


file://d|/get_in.htm This link was broken at the time WebTwin tried to fetch it.


file://d|/get_in.htm This link was broken at the time WebTwin tried to fetch it.


file://d|/manual/gateway.htm This link was broken at the time WebTwin tried to fetch it.


WebTwin had not yet fully processed this link before retrievals stopped.


WebTwin had not yet fully processed this link before retrievals stopped.


WebTwin had not yet fully processed this link before retrievals stopped.


WebTwin had not yet fully processed this link before retrievals stopped.


WebTwin had not yet fully processed this link before retrievals stopped.