This file controls feeds out of DNews to other sites, 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 received 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 identify and remove spam articles.
For examples etc of configuring various news feeds see this page
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, DFeed, 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. (note: since 5.2 we recommend the user of 'dfeed' insteald of 'live' feeds) |
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 |
bind | 1.2.3.4 | Binds an outgoing feed to a specific ip number. This can be used to send a specific feed to a certain network interface for example. (requires version 5) |
to | site.name | Specifies that the feed will be sent to site.name rather than the site specified by the site setting. This can be useful if you want to send multiple outgoing feeds to the same site. This is required because site names must be unique. (requires version 5.1) |
delay | 600 | Delay feed for 10 minutes (600 seconds), this is useful when you want to fill in the gaps in another feed but you don't want to be the primary feeder. |
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 (NOTE: Not recommended, use type DFeed instead)
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 DFeed
The 'dfeed' feed type is intended for sending a full feed (e.g. 8 articles per second or more) to another site. A DFeed is simple to configure and reliable and fast. When configured this will result in a 'dfeed' process being started (only one) and it will send out all your outgoing 'dfeed' feeds. This module can easily send as many outgoing feeds as your network cards and network will support.
...
site downstream.news.server
groups *
type DFeed
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.
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 its 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 DFeed
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 "path_max 3" or "onlyposts" to prevent DNews from routing news.
However, ignoring those options, it's best to get the exclude setting correct. Let's assume your feed site is called fastfeed.world.net. You need to find out what it stamps onto news articles, to do this read a news article (and show all headers so you can see the PATH header)
e.g.
Newsgroups: alt.winsock.trumpet
Subject: Sportster Si does not seem to work with TRUMPET
Date: Thu, 26 Oct 1995 22:44:08
Organization: Personal
Lines: 8
Message-ID:
NNTP-Posting-Host: eagle28.sasknet.sk.ca
X-Newsreader: Trumpet for Windows [Version 1.0 Rev A]
Path: 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*