NEWSFEEDS(5)

NAME
newsfeeds - determine where Usenet articles get sent

DESCRIPTION
The file /etc/news/newsfeeds specifies how incoming articles should be distributed to other sites. It is parsed by the InterNetNews server innd(8) when it starts up, or when directed to by ctlinnd(8).

The file is interpreted as a set of lines according to the following rules. If a line ends with a backslash, then the backslash, the newline, and any whitespace at the start of the next line is deleted. This is repeated until the entire ``logical'' line is collected. If the logical line is blank, or starts with a number sign (``#''), it is ignored.

All other lines are interpreted as feed entries. An entry should consist of four colon-separated fields; two of the fields may have optional sub-fields, marked off by a slash. Fields or sub-fields that take multiple parameters should be separated by a comma. Extra whitespace can cause problems. Except for the site names, case is significant. The format of an entry is:
    sitename[/exclude,exclude,...]\
    	:pattern,pattern...[/distrib,distrib...]\
    	:flag,flag...\
    	:param
Each field is described below.

The sitename is the name of the site to which a news article can be sent. It is used for writing log entries and for determining if an article should be forwarded to a site. If sitename already appears in the article's Path header, then the article will not be sent to the site. The name is usually whatever the remote site uses to identify itself in the Path line, but can be almost any word that makes sense; special local entries (such as archivers or gateways) should probably end with an exclamation point to make sure that they do not have the same name as any real site. For example, ``gateway'' is an obvious name for the local entry that forwards articles out to a mailing list. If a site with the name ``gateway'' posts an article, when the local site receives the article it will see the name in the Path and not send the article to its own ``gateway'' entry. See also the description of the ``Ap'' flag, below. If an entry has an exclusion sub-field, then the article will not be sent to that site if any of the names specified as excludes appear in the Path header. The same sitename can be used more than once — the appropriate action will be taken for each entry that should receive the article, regardless of the name — although this is recommended only for program feeds to avoid confusion. Case is not significant in site names.

The patterns specify which groups to send to the site and are interpreted to build a ``subscription list'' for the site. The default subscription is to get all groups. The patterns in the field are wildmat(3)-style patterns, and are matched in order against the list of newsgroups that the local site receives. If the first character of a pattern is an exclamation mark, then any groups matching the pattern are removed from the subscription, otherwise any matching groups are added. For example, to receive all ``comp'' groups, but only comp.sources.unix within the sources newsgroups, the following set of patterns can be used:
    comp.*,!comp.sources.*,comp.sources.unix
There are three things to note about this example. The first is that the trailing ``.*'' is required. The second is that, again, the result of the last match is the most important. The third is that ``comp.sources.*'' could be written as ``comp.sources*'' but this would not have the same effect if there were a ``comp.sources-only'' group.

There is also a way to subscribe to a newsgroup negatively. That is to say, do not send this group even if the article is cross-posted to a subscribed newsgroup. If the first character of a pattern is an atsign ``@'', it means that any article posted to a group matching the pattern will not be sent even though the article may be cross-posted to a group which is subscribed. The same rules of precedence apply in that the last match is the one which counts. For example, if you want to prevent all articles posted to any "alt.binaries.warez" group from being propagated even if it is cross-posted to another "alt" group or any other group for that matter, then the following set of patterns can be used:
    alt.*,@alt.binaries.warez.*,misc.*
If you reverse the alt.* and alt.binaries.warez.* patterns, it would nullify the atsign because the result of the last match is the one that counts. Using the above example, if an article is posted to one or more of the alt.binaries.warez.* groups and is cross-posted to misc.test, then the article is not sent.

See innd(8) for details on the propagation of control messages.

A subscription can be further modified by specifying ``distributions'' that the site should or should not receive. The default is to send all articles to all sites that subscribe to any of the groups where it has been posted , but if an article has a Distribution header and any distribs are specified, then they are checked according to the following rules:

1.  If the Distribution header matches any of the values in the sub-field, then the article is sent.

2.  If a distrib starts with an exclamation point, and it matches the Distribution header, then the article is not sent.

3.  If Distribution header does not match any distrib in the site's entry, and no negations were used, then the article is not sent.

4.  If Distribution header does not match any distrib in the site's entry, and any distrib started with an exclamation point, then the article is sent.

If an article has more than one distribution specified, then each one is according to the above rules. If any of the specified distributions indicate that the article should be sent, it is; if none do, it is not sent — the rules are used as a ``logical or.'' It is almost definitely a mistake to have a single feed that specifies distributions that start with an exclamation point along with some that don't.

Distributions are text words, not patterns; entries like ``*'' or ``all'' have no special meaning.

The flags parameter specifies miscellaneous parameters. They may be specified in any order; flags that take values should have the value immediately after the flag letter with no whitespace. The valid flags are:

<size
    An article will only be sent to the site if it is less than size bytes long. The default is no limit.

>size
    An article will only be sent to the site if it is greater than size bytes long. The default is no limit.

Achecks
    An article will only be sent to the site if it meets the requirements specified in the checks, which should be chosen from the following set:
    	d	Distribution header required
    	p	Do not check Path header for the sitename before
    		propagating (the exclusions are still checked).

Bhigh/low
    If a site is being fed by a file, channel, or exploder (see below), the server will normally start trying to write the information as soon as possible. Providing a buffer may give better system performance and help smooth out overall load if a large batch of news comes in. The value of the this flag should be two numbers separated by a slash. The first specifies the point at which the server can start draining the feed's I/O buffer, and the second specifies when to stop writing and begin buffering again; the units are bytes. The default is to do no buffering, sending output as soon as it is possible to do so.

Fname
    This flag specifies the name of the file that should be used if it is necessary to begin spooling for the site (see below). If name is not an absolute pathname, it is taken to be relative to /var/spool/news/out.going. Then, if the destination is a directory, the file togo in that directory will be used as filename.

Gcount
    If this flag is specified, an article will only be sent to the site if it is posted to no more than count newsgroups.

Hcount
    If this flag is specified, an article will only be sent to the site if it has count or fewer sites in its Path line. This flag should only be used as a rough guide because of the loose interpretation of the Path header; some sites put the poster's name in the header, and some sites that might logically be considered to be one hop become two because they put the posting workstation's name in the header. The default value for count is one.

Isize
    The flag specifies the size of the internal buffer for a file feed. If there are more file feeds then allowed by the system, they will be buffered internally in least-recently-used order. If the internal buffer grows bigger then size bytes, however, the data will be written out to the appropriate file. The default value is (16 * 1024) bytes.

Nmodifiers
    The newsgroups that a site receives are modified according to the modifiers, which should be chosen from the following set:
    	m	Only moderated groups
    	u	Only unmoderated groups

Ssize
    If the amount of data queued for the site gets to be larger than size bytes, then the server will switch to spooling, appending to a file specified by the ``F'' flag, or /var/spool/news/out.going/ sitename if the ``F'' flag is not specified. Spooling usually happens only for channel or exploder feeds.

Ttype
    This flag specifies the type of feed for the site. Type should be a letter chosen from the following set:
    	c	Channel
    	f	File
    	l	Log entry only
    	m	Funnel (multiple entries feed into one)
    	p	Program
    	x	Exploder
    Each feed is described below in the section on feed types. The default is Tf.

Witems
    If a site is fed by file, channel, or exploder, this flag controls what information is written. If a site is fed by a program, only the asterisk (``*'') has any effect. The items should be chosen from the following set:
    	b	Size of the article in bytes
    	f	Article's full pathname
    	g	The newsgroup the article is in;
    		if cross-posted, then the first of the groups this
    		site gets
    	m	Article's Message-ID
    	n	Article's pathname relative to the spool directory
    	p	The time the article was posted as seconds since epoch.
    s	The site that fed the article to the server;
    		from the Path header