=head1 NAME

active - List of newsgroups carried by the server

=head1 DESCRIPTION

The file I<pathdb>/active lists the newsgroups carried by INN.  This file
is generally maintained using ctlinnd(8) to create and remove groups, or
by letting controlchan(8) do so on the basis of received control messages;
this file is then updated and a backup stored in I<pathdb>/active.old.  Note
that the newsgroups(5) file normally contains the descriptions of the
newsgroups carried by the news server.

The F<active> file should not be edited directly without throttling B<innd>,
and must be reloaded using B<ctlinnd> before B<innd> is unthrottled.  Editing
it directly even with those precautions may make it inconsistent with the
overview database and won't update F<active.times>, so B<ctlinnd> should
be used to make modifications whenever possible.

Each newsgroup should be listed only once.  Each line specifies one group.
The order of groups does not matter.  Within each newsgroup, received
articles for that group are assigned monotonically increasing numbers as
unique names.  If an article is posted to newsgroups not mentioned in this
file, those newsgroups are ignored.

If none of the newsgroups listed in the Newsgroups header field body
of an article are present in this file, the article is either rejected
(if I<wanttrash> is false in F<inn.conf>), or is filed into the newsgroup
C<junk> and, when C<Aj> is not set in the F<newsfeeds> feed pattern, only
propagated to sites that receive the C<junk> newsgroup (if I<wanttrash>
is true).

Each line of this file consists of four fields separated by a space:

    <name> <high> <low> <status>

The first field is the name of the newsgroup.  The newsgroup C<junk> is
special, as mentioned above.  The newsgroup C<control> and any newsgroups
beginning with C<control.> are also special; control messages are filed
into a control.* newsgroup named after the type of control message if
that group exists, and otherwise are filed into the newsgroup C<control>
(without regard to what newsgroups are listed in the Newsgroups header
field body).  If I<mergetogroups> is set to true in F<inn.conf>,
newsgroups that begin with C<to.> are also treated specially; see
innd(8).

The second field is the highest article number that has been used in that
newsgroup.  The third field is the lowest article number in the group;
this number is not guaranteed to be accurate, and should only be taken to
be a hint.  It is normally updated nightly as part of the expire process;
see news.daily(8) and look for C<lowmark> or C<renumber> for more details.
Note that because of article cancellations, there may be gaps in the
numbering sequence.  If the lowest article number is greater than the
highest article number, then there are no articles in the newsgroup.  In
order to make it possible to update an entry in-place without rewriting
the entire file, the second and third fields are padded out with leading
zeros to make them a fixed width.

The fourth field contains one of the following status:

    y         Local postings and articles from peers are allowed.
    m         The group is moderated and all postings must be approved.
    n         No local postings are allowed, only articles from peers.
    j         Articles from peers are filed in the junk group instead.
    x         No local postings, and articles from peers are ignored.
    =foo.bar  Articles are filed in the group foo.bar instead.

If a newsgroup has the C<j> status, no articles will be filed in that
newsgroup.  Local postings are not accepted; if an article for that
newsgroup is received from a remote site, and if it is not crossposted to
some other valid group, it will be filed into the C<junk> newsgroup instead.
This is different than simply not listing the group, since the article will
still be accepted and can be propagated to other sites, and the C<junk>
group can be made available to readers if wished.

If the <status> field begins with an equal sign, the newsgroup is an alias.
Articles cannot be posted to that newsgroup, but they can be received from
other sites.  Any articles received from peers for that newsgroup are
treated as if they were actually posted to the group named after the equal
sign.  Note that the Newsgroups header field of the articles is not modified.
(Alias groups are typically used during a transition and are typically
created manually with ctlinnd(8).)  An alias should not point to another
alias.

Note that F<readers.conf> can be configured so that local posts to newsgroups
with status C<j>, C<n> or C<x> are accepted.

=head1 MINIMAL ACTIVE FILE

For B<innd> to be able to start, the three groups C<control>,
C<control.cancel> and C<junk> need to be in the F<active> file.  Besides,
if I<mergetogroups> is set to true in F<inn.conf>, the newsgroup C<to>
also needs to exist.

The minimal F<active> file shipped with INN is:

    control 0000000000 0000000001 n
    control.cancel 0000000000 0000000001 n
    control.checkgroups 0000000000 0000000001 n
    control.newgroup 0000000000 0000000001 n
    control.rmgroup 0000000000 0000000001 n
    junk 0000000000 0000000001 n

(Note that the second and the third field may differ if the news server
has already been in use.)

There are more control.* pseudogroups here than needed by B<innd> to start;
the corresponding control messages will be filed into them.  The C<n> status
is so that users cannot post directly to these groups (control messages
should only be posted to the groups that they affect).  If you do not want
these groups to be visible to clients, do not delete them but simply hide
them in readers.conf(5).

To create additional groups after the server is running, you can use
C<ctlinnd newgroup>.  You can also synchronize your newsgroup list to
that of another server by using actsync(8) or get the F<active> file
of another NNTP server with getlist(1).  And do not forget to update
your F<newsgroups> file, which can be automatically done thanks to
B<docheckgroups> called with the B<-u> flag.

=head1 HISTORY

Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.  Converted to
POD by Russ Allbery <eagle@eyrie.org>.

=head1 SEE ALSO

active.times(5), actsync(8), controlchan(8), ctlinnd(8), docheckgroups(8),
getlist(1), inn.conf(5), innd(8), mod-active(8), news.daily(8), newsgroups(5),
readers.conf(5).

=cut
