The .conf files are used to configure the system, they can be modified directly, or on the Windows and Macintosh versions some changes can be made via the gui interface. There are six .conf files
The following files define your news system in approx. order of importance:
File Name | Description |
dnews.conf | Main configuration file |
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 |
Symbol | Example | Description |
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 |
body_chunk | 20000 | Sets the size of chunks to read from disk when a user reads an article, the default is 20000 |
cachedall | true | Pretend all groups are cached, use this if you are taking a full IHAVE feed in. |
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. |
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) |
confirm | *.this.place | Send email confirmation to postings from these addresses. (set this to match your local email addresses) |
db_index | 2000 | Sets how many index files to keep in memory, each one is 1200 bytes, the default is 200. If you have memory to burn then increase this to 3000 for good performance. |
db_max | 200 | Sets how many files dnews should attempt to keep open to increase performance, on Windows NT you can safely set this value to about 200, on most other systems a value of 30 or 40 is about as high as you can go. You can use the command tellnews test_files to see how many free file handles dnews has. |
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: |
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. |
db_flush_every | 1 | How many seconds to wait before closing some more files (default 60) |
db_flush_n | 10 | How many files to flush when the flush_every timeout occurs, increase this to make sure all files are closed, decrease it to improve performance. (default 1) |
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. |
diskspace | 100 | Total disk space in megabytes a dynamic feed needs 20-200MBs, a full feed needs approx. 1000MB |
expire_at | 5 23,3 | Run an expire job at 5 past eleven and 5 past 3 in the morning. |
expire_bits | true | Allows the expire to run more smoothly by stopping part way thru large files to allow dnews to respond to users requestes. (not generally needed) |
expire_chunk | 100000 | Sets how many lines from the history file to expire in one go. |
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_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 toto 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 caching a news group 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. |
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 |
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 somtimes 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 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. |
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 | 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 |
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 thru 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. |
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 messagse to outgoing posting feeds. |
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. |
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. |
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) |
spool | \dnews\spool | Disk name (or logical) for news articles |
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_requeue | true | Tells dnews to reque a group that is not finished. |
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) |
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 Appendix B |
too_old | 50 | Refuse items that were created more than this many days in the past, this prevents old items from being re-distributed when a machine dumps old news items onto the network. |
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 | *binary* 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. |
This file controls access to your system, you can control access by IP name, IP number or even by individual user using password protection.
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 |
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.
This file can be tricky to use, remember order is significant!!
The expiration file is very different from INN and CNEWS implementations, Rather than a simple set of rules, the DNEWS expire rules match both news group names and current disk usage, so as use increases the rules can become more strict.
In addition rules can specify minimum or maximum numbers of items, this allows a single rule to apply to groups which get 20 items a day, or 20 items a month.
Each line of the file must have the following format:
UPTO x GROUPS wild KEEP n DEFAULT n PURGE n MAXITEMS n MINITEMS n
Symbol | Example | Description |
upto | 20% | This rule applies if less than 20% of the disk space is full. |
groups | alt.*,comp.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) |
default | 10 | Keep items this long and then delete unless the expiration date says to keep it longer. |
purge | 35 | Delete after this many days even if the expire header says to keep it longer. This should be set long enough to keep FAQ's and no longer to prevent abuse. |
maxitems | 1000 | Delete old items if the group has more than this many items in it. Good for controlling high volume groups. |
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. |
# Default rule upto 10000% groups * keep 0 default 1 purge 10 maxitems 0 minitems 0 # Start to panic a little upto 90% groups * keep 0 default 2 purge 33 maxitems 100 minitems 0 # Normal operation, put your meaningfull settings here. upto 60% groups * keep 2 default 5 purge 33 maxitems 1000 minitems 10 upto 60% groups comp.* keep 2 default 10 purge 33 maxitems 2000 minitems 10 # Lots of space, just stop things getting silly (e.g. 10000 items in...) upto 30% groups * keep 2 default 17 purge 33 maxitems 3000 minitems 100 upto 20% groups * maxitems 2000 # Keep any local groups forever (this line must be last to work) upto 1000% groups local.* keep 99999 minitems 10000![]()
This file controls feeds out of DNEWS to other sites, it also controls the feed 'into' DNEWS via the same mechanism.
Symbol | Example | Description |
site | me $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. |
builtin | (flag, no value) | Specifies the builtin feeding mechanism should be used. This is only intended for sending local postings up stream, it is not fast enough to send a full feed on to another site. |
posting | (flag, no 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. |
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. |
You won't need to touch this file unless you want to add a local group and make it moderated. In that case add your groups at the top of the file as the first match is used.
Format:
newsgroup:email-address
If the email address contains a "%s" then that is replaced by the news group name with the dots changed into dashes.
Example:
local.gossip.moderated:chrisp@marc.cri.nz gnu.*:%s@tut.cis.ohio-state.edu *:%s@uunet.uu.net![]()
This file controls the action taken when control messages are received. This is the secret to the administration of news. The following control messages are checked by this file:
However only the following three are implemented.
Blanks are not allowed, e.g. :: would be misinterpreted.
For each type of control message, you can specify based on who sent it, whether or not to do what the message says, just log it, or email the message to the news administrator. The log file that DNEWS creates can be used to action the control messages at a later date as it contains valid commands.
All control messages are logged to 'control_(message).(action)'
Format:
message-type:email-address:action message-type rmgroup, newgroup, version email-address A wildcard email address, e.g. news@trusted.site action "drop", "log", "mail", "doit", "doit,mail"
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
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.