chiark / gitweb /
Commit 2.4.5-5 as unpacked
[innduct.git] / doc / pod / inn.conf.pod
1 =head1 NAME
2
3 inn.conf - Configuration data for InterNetNews programs
4
5 =head1 DESCRIPTION
6
7 F<inn.conf> in I<pathetc> is the primary general configuration file for
8 all InterNetNews programs.  Settings which control the general operation
9 of various programs, as well as the paths to all portions of the news
10 installation, are found here.  The INNCONF environment variable, if set,
11 specifies an alternate path to F<inn.conf>.
12
13 This file is intended to be fairly static.  Any changes made to it will
14 generally not affect any running programs until they restart.  Unlike
15 nearly every other configuration file, F<inn.conf> cannot be reloaded
16 dynamically using ctlinnd(8); innd(8) must be stopped and restarted for
17 relevant changes to F<inn.conf> to take effect (C<ctlinnd xexec innd> is
18 the fastest way to do this.)
19
20 Blank lines and lines starting with a number sign (C<#>) are ignored.  All
21 other lines specify parameters, and should be of the following form:
22
23     <name>: <value>
24
25 (Any amount of whitespace can be put after the colon and is optional.)  If
26 the value contains embedded whitespace or any of the characers C<[]<>"\:>,
27 it must be enclosed in double quotes ("").  A backslash (C<\>) can be used
28 to escape quotes and backslashes inside double quotes.  <name> is
29 case-sensitive; C<server> is not the same as C<Server> or C<SERVER>.
30 (F<inn.conf> parameters are generally all in lowercase.)
31
32 If <name> occurs more than once in the file, the first value is used.
33 Some parameters specified in the file may be overridden by environment
34 variables.  Most parameters have default values if not specified in
35 F<inn.conf>; those defaults are noted in the description of each
36 parameter.
37
38 Many parameters take a boolean value.  For all such parameters, the value
39 may be specified as C<true>, C<yes>, or C<on> to turn it on and may be any
40 of C<false>, C<no>, or C<off> to turn it off.  The case of these values is
41 significant.
42
43 This documentation is extremely long and organized as a reference manual
44 rather than as a tutorial.  If this is your first exposure to INN and
45 these parameters, it would be better to start by reading other man pages
46 and referring to this one only when an F<inn.conf> parameter is explicitly
47 mentioned.  Those parameters which need to be changed when setting up a
48 new server are discussed in F<INSTALL>.
49
50 =head1 PARAMETERS
51
52 =head2 General Settings
53
54 These parameters are used by a wide variety of different components of
55 INN.
56
57 =over 4
58
59 =item I<domain>
60
61 This should be the domain name of the local host.  It should not have a
62 leading period, and it should not be a full host address.  It is used only
63 if the GetFQDN() routine in libinn(3) cannot get the fully-qualified
64 domain name by using either the gethostname(3) or gethostbyname(3) calls.
65 The check is very simple; if either routine returns a name with a period
66 in it, then it is assumed to have the full domain name.  As this parameter
67 is rarely used, do not use it to affect the righthand side of
68 autogenerated Message-IDs; see instead I<virtualhost> and I<domain> in
69 L<readers.conf>.  The default value is unset.
70
71 =item I<innflags>
72
73 The flags to pass to innd on startup.  See innd(8) for details on the
74 possible flags.  The default value is unset.
75
76 =item I<mailcmd>
77
78 The path to the program to be used for mailing reports and control
79 messages.  The default is I<pathbin>/innmail.  This should not normally
80 need to be changed.
81
82 =item I<mta>
83
84 The command to use when mailing postings to moderators and for the use of
85 innmail(1).  The message, with headers and an added To: header, will be
86 piped into this program.  The string C<%s>, if present, will be replaced
87 by the e-mail address of the moderator.  It's strongly recommended for
88 this command to include C<%s> on the command line rather than use the
89 addresses in the To: and Cc: headers of the message, since the latter
90 approach allows the news server to be abused as a mechanism to send mail
91 to arbitrary addresses and will result in unexpected behavior.  There is
92 no default value for this parameter; it must be set in F<inn.conf> or a
93 fatal error message will be logged via syslog.
94
95 For most systems, C</usr/lib/sendmail -oi -oem %s> (adjusted for the
96 correct path to sendmail) is a good choice.
97
98 =item I<pathhost>
99
100 What to put into the Path: header to represent the local site.  This is
101 added to the Path: header of all articles that pass through the system,
102 including locally posted articles, and is also used when processing some
103 control messages and when naming the server in status reports.  There is
104 no default value; this parameter must be set in F<inn.conf> or INN will
105 not start.  A good value to use is the fully-qualified hostname of the
106 system.
107
108 =item I<server>
109
110 The name of the default NNTP server.  If I<nnrpdposthost> is not set and
111 UNIX domain sockets are not supported, nnrpd(8) tries to hand off
112 locally-posted articles through an INET domain socket to this server.
113 actsync(8), nntpget(8), and getlist(8) also use this value as the default
114 server to connect to.  In the latter cases, the value of the NNTPSERVER
115 environment variable, if it exists, overrides this.  The default value is
116 unset.
117
118 =back
119
120 =head2 Feed Configuration
121
122 These parameters govern incoming and outgoing feeds:  what size of
123 articles are accepted, what filtering and verification is performed on
124 them, whether articles in groups not carried by the server are still
125 stored and propagated, and other similar settings.
126
127 =over 4
128
129 =item I<artcutoff>
130
131 Articles older than this number of days are dropped.  This setting should
132 probably match the setting on the C</remember/> line in F<expire.ctl>.
133 The default value is C<10>.
134
135 =item I<bindaddress>
136
137 Which IP address innd(8) should bind itself to.  This must be in
138 dotted-quad format (nnn.nnn.nnn.nnn).  If set to C<all> or not set, innd
139 defaults to listening on all interfaces.  The value of the
140 INND_BIND_ADDRESS environment variable, if set, overrides this setting.
141 The default value is unset.
142
143 =item I<bindaddress6>
144
145 Like I<bindaddress> but for IPv6 sockets. If only one of the I<bindaddress>
146 and I<bindaddress6> parameters is used, then only the socket for the
147 corresponding address family is created. If both parameters are used
148 then two sockets are created. If neither of them is used, the list of
149 sockets to listen on will be determined by the system library
150 I<getaddrinfo(3)> function.  The value of the INND_BIND_ADDRESS6, if set,
151 overrides this setting.  The default value is unset.
152
153 Note that you will generally need to put double quotes ("") around this
154 value if you set it, since IPv6 addresses contain colons.
155
156 =item I<hiscachesize>
157
158 If set to a value other than C<0>, a hash of recently received message IDs
159 is kept in memory to speed history lookups.  The value is the amount of
160 memory to devote to the cache in kilobytes.  The cache is only used for
161 incoming feeds and a small cache can hold quite a few message IDs, so
162 large values aren't necessarily useful unless you have incoming feeds that
163 are badly delayed.  A good value for a system with more than one incoming
164 feed is C<256>; systems with only one incoming feed should probably leave
165 this at C<0>.  The default value is C<0>.
166
167 =item I<ignorenewsgroups>
168
169 Whether newsgroup creation control messages (newgroup and rmgroup) should
170 be fed as if they were posted to the newsgroup they are creating or
171 deleting rather than to the newsgroups listed in the Newsgroups: header.
172 If this parameter is set, the newsgroup affected by the control message
173 will be extracted from the Control: header and the article will be fed as
174 if its Newsgroups: header contained solely that newsgroup.  This is useful
175 for routing control messages to peers when they are posted to irrelevant
176 newsgroups that shouldn't be matched against the peer's desired newsgroups
177 in F<newsfeeds>.  This is a boolean value and the default is false.
178
179 =item I<immediatecancel>
180
181 When using the timecaf storage method, article cancels are normally just
182 cached to be cancelled, not cancelled immediately.  If this is set to
183 true, they will instead by cancelled as soon as the cancel is processed.
184 This is a boolean value and the default is false.
185
186 This setting is ignored unless the timecaf storage method is used.
187
188 =item I<linecountfuzz>
189
190 If set to something other than C<0>, the line count of the article is
191 checked against the Lines: header of the article (if present) and the
192 artice is rejected if the values differ by more than this amount.  A
193 reasonable setting is C<5>, which is the standard maximum signature length
194 plus one (some injection software calculates the Lines: header before
195 adding the signature).  The default value is C<0>, which tells INN not to
196 check the Lines: header of incoming articles.
197
198 =item I<maxartsize>
199
200 The maximum size of article (headers and body) that will be accepted by
201 the server, in bytes.  A value of C<0> allows any size of article, but
202 note that B<innd> will crash if system memory is exceeded.  The default
203 value is C<1000000> (approximately 1 MB).  See also I<localmaxartsize>.
204
205 =item I<maxconnections>
206
207 The maximum number of incoming NNTP connections innd(8) will accept.  The
208 default value is C<50>.
209
210 =item I<pathalias>
211
212 If set, this value is prepended to the Path: header of accepted posts
213 (before I<pathhost>) if it doesn't already appear in the Path: header.
214 The main purpose of this parameter is to configure all news servers within
215 a particular organization to add a common identity string to the
216 Path: header.  The default value is unset.
217
218 =item I<pathcluster>
219
220 If set, this value is appended to the Path: header of accepted posts
221 (after I<pathhost>) if it isn't already present as the last element
222 of the Path: header.  The main purpose of this parameter is to make
223 several news servers appear as one server.  The default value is unset.
224
225 Note that the Path: header reads right to left, so appended means inserted
226 at the leftmost side of the Path: header.
227
228 =item I<pgpverify>
229
230 Whether to enable PGP verification of control messages other than cancel.
231 This is a boolean value and the default is based on whether configure found
232 pgp, pgpv, or gpgv.
233
234 =item I<port>
235
236 What TCP port innd(8) should listen on.  The default value is C<119>, the
237 standard NNTP port.
238
239 =item I<refusecybercancels>
240
241 Whether to refuse all articles whose message IDs start with
242 C<E<lt>cancel.>.  This message ID convention is widely followed by spam
243 cancellers, so the vast majority of such articles will be cancels of spam.
244 This check, if enabled, is done before the history check and the message
245 ID is not written to the history file.  This is a boolean value and the
246 default is false.
247
248 This is a somewhat messy, inefficient, and inexact way of refusing spam
249 cancels.  A much better way is to ask all of your upstream peers to not
250 send to you any articles with C<cyberspam> in the Path: header (usually
251 accomplished by having them mark C<cyberspam> as an alias for your machine
252 in their feed configuration).  The filtering enabled by this parameter is
253 hard-coded; general filtering of message IDs can be done via the embedded
254 filtering support.
255
256 =item I<remembertrash>
257
258 By default, innd(8) records rejected articles in history so that, if
259 offered the same article again, it can be refused before it is sent.  If
260 you wish to disable this behavior, set this to false.  This can cause a
261 substantial increase in the amount of bandwidth consumed by incoming news
262 if you have several peers and reject a lot of articles, so be careful with
263 it.  Even if this is set to true, INN won't log some rejected articles to
264 history if there's reason to believe the article might be accepted if
265 offered by a different peer, so there is usually no reason to set this to
266 false (although doing so can decrease the size of the history file).  This
267 is a boolean value and the default is true.
268
269 =item I<sourceaddress>
270
271 Which local IP address to bind to for outgoing NNTP sockets (used by
272 innxmit(8) among other programs, but I<not> innfeed(8) -- see
273 I<bindaddress> in innfeed.conf(5) for that).  This must be in dotted-quad
274 format (nnn.nnn.nnn.nnn).  If set to C<all> or not set, the operating
275 system will choose the source IP address for outgoing connections.  The
276 default value is unset.
277
278 =item I<sourceaddress6>
279
280 Like I<sourceaddress> but for IPv6 sockets.
281
282 =item I<verifycancels>
283
284 Set this to true to enable a simplistic check on all cancel messages,
285 attempting to verify (by simple header comparison) that the cancel message
286 is from the same person as the original post.  This can't be done if the
287 cancel arrives before the article does, and is extremely easy to spoof.
288 While this check may once have served a purpose, it's now essentially
289 security via obscurity, commonly avoided by abusers, and probably not
290 useful.  This is a boolean value, and the default is false.
291
292 =item I<wanttrash>
293
294 Set this to true if you want to file articles posted to unknown newsgroups
295 (newsgroups not in the F<active> file) into the C<junk> newsgroup rather
296 than rejecting them.  This is sometimes useful for a transit news server
297 that needs to propagate articles in all newsgroups regardless if they're
298 carried locally.  This is a boolean value and the default is false.
299
300 =item I<wipcheck>
301
302 If INN is offered an article by a peer on one channel, it will return
303 deferral responses (code 436) to all other offers of that article for this
304 many seconds.  (After this long, if the peer that offered the article
305 still hasn't sent it, it will be accepted from other channels.)  The
306 default value is C<5> and probably doesn't need to be changed.
307
308 =item I<wipexpire>
309
310 How long, in seconds, to keep track of message IDs offered on a channel
311 before expiring articles that still haven't been sent.  The default value
312 is C<10> and probably doesn't need to be changed.
313
314 =item I<dontrejectfiltered>
315
316 Normally innd(8) rejects incoming articles when directed to do so by any
317 enabled article filters (Perl, Python, and TCL).  However, this parameter
318 causes such articles I<not> to be rejected; instead filtering can be
319 applied on outbound articles.  If this parameter is set, all articles will
320 be accepted on the local machine, but articles rejected by the filter will
321 I<not> be fed to any peers specified in F<newsfeeds> with the C<Af> flag.
322
323 =back
324
325 =head2 Article Storage
326
327 These parameters affect how articles are stored on disk.
328
329 =over 4
330
331 =item I<cnfscheckfudgesize>
332
333 If set to a value other than C<0>, the claimed size of articles in CNFS
334 cycbuffs is checked against I<maxartsize> plus this value, and if larger,
335 the CNFS cycbuff is considered corrupt.  This can be useful as a sanity
336 check after a system crash, but be careful using this parameter if you
337 have changed I<maxartsize> recently.  The default value is C<0>.
338
339 =item I<enableoverview>
340
341 Whether to write out overview data for articles.  If set to false, INN
342 will run much faster, but reading news from the system will be impossible
343 (the server will be for news transit only).  If this option is set to
344 true, I<ovmethod> must also be set.  This is a boolean value and the
345 default is true.
346
347 =item I<groupbaseexpiry>
348
349 Whether to enable newsgroup-based expiry.  If set to false, article expiry
350 is done based on storage class of storing method.  If set to true (and
351 overview information is available), expiry is done by newsgroup name.
352 This affects the format of F<expire.ctl>.  This is a boolean value and the
353 default is true.
354
355 =item I<mergetogroups>
356
357 Whether to file all postings to C<to.*> groups in the pseudonewsgroup
358 C<to>.  If this is set to true, the newsgroup C<to> must exist in the
359 F<active> file or INN will not start.  (See the discussion of C<to.>
360 groups in innd(8) under CONTROL MESSAGES.)  This is a boolean value and
361 the default is false.
362
363 =item I<overcachesize>
364
365 How many cache slots to reserve for open overview files.  If INN is
366 writing overview files (see I<enableoverview>), I<ovmethod> is set to
367 C<tradindexed>, and this is set to a value other than C<0>, INN will keep
368 around and open that many recently written-to overview files in case more
369 articles come in for those newsgroups.  Every overview cache slot consumes
370 two file descriptors, so be careful not to set this value too high.  You
371 may be able to use the C<limit> command to see how many open file
372 descriptors your operating system allows.  innd(8) also uses an open file
373 descriptor for each incoming feed and outgoing channel or batch file, and
374 if it runs out of open file descriptors it may throttle and stop accepting
375 new news.  The default value is C<15> (which is probably way too low if
376 you have a large number of file descriptors available).
377
378 This setting is ignored unless I<ovmethod> is set to C<tradindexed>.
379
380 =item I<ovgrouppat>
381
382 If set, restricts the overview data stored by INN to only the newsgroups
383 matching this comma-separated list of wildmat expressions.  Newsgroups not
384 matching this setting may not be readable, and if I<groupbaseexpiry> is
385 set to true and the storage method for these newsgroups does not have
386 self-expire functionality, storing overview data will fail.
387 The default is unset.
388
389 =item I<ovmethod>
390
391 Which overview storage method to use.  Currently supported values are
392 C<tradindexed>, C<buffindexed>, and C<ovdb>.  There is no default value;
393 this parameter must be set if I<enableoverview> is true (the default).
394
395 =over 4
396
397 =item C<buffindexed>
398
399 Stores overview data and index information into buffers, which are
400 preconfigured files defined in F<buffinedexed.conf>.  C<buffindexed> never
401 consumes additional disk space beyond that allocated to these buffers.
402
403 =item C<tradindexed>
404
405 Uses two files per newsgroup, one containing the overview data and one
406 containing the index.  Fast for readers, but slow to write to.
407
408 =item C<ovdb>
409
410 Stores data into a Berkeley DB database.  See the ovdb(5) man page.
411
412 =back
413
414 =item I<hismethod>
415
416 Which history storage method to use.  The only currently supported
417 value is C<hisv6>.  There is no default value; this parameter must
418 be set.
419
420 =over 4
421
422 =item C<hisv6>
423
424 Stores history data in the INN history v6 format:  history(5) text
425 file and a number of dbz(3) database files; this may be in true history
426 v6 format, or tagged hash format, depending on the build
427 options.  Separation of these two is a project which has not yet been
428 undertaken.
429
430 =back
431
432 =item I<storeonxref>
433
434 If set to true, articles will be stored based on the newsgroup names in
435 the Xref: header rather than in the Newsgroups: header.  This affects what
436 the patterns in F<storage.conf> apply to.  The primary interesting effect
437 of setting this to true is to enable filing of all control messages
438 according to what storage class the control pseudogroups are filed in
439 rather than according to the newsgroups the control messages are posted
440 to.  This is a boolean value and the default is true.
441
442 =item I<useoverchan>
443
444 Whether to innd(8) should create overview data internally through
445 libstorage(3).  If set to false, innd creates overview data by itself.  If
446 set to true, innd does not create; instead overview data must be created
447 by overchan(8) from an appropriate entry in F<newsfeeds>.  Setting to true
448 may be useful, if innd cannot keep up with incoming feed and the
449 bottleneck is creation of overview data within innd.  This is a boolean
450 value and the default is false.
451
452 =item I<wireformat>
453
454 Only used with the tradspool storage method, this says whether to write
455 articles in wire format.  Wire format means storing articles with C<\r\n> at
456 the end of each line and with periods at the beginning of lines doubled,
457 the article format required by the NNTP protocol.  Articles stored in this
458 format are suitable for sending directly to a network connection without
459 requiring conversion, and therefore setting this to true can make the
460 server more efficient.  The primary reason not to set this is if you have
461 old existing software that looks around in the spool and doesn't
462 understand how to read wire format.  Storage methods other than tradspool
463 always store articles in wire format.  This is a boolean value and the
464 default is false.
465
466 =item I<xrefslave>
467
468 Whether to act as the slave of another server.  If set, INN attempts to
469 duplicate exactly the article numbering of the server feeding it by
470 looking at the Xref: header of incoming articles and assigning the same
471 article numbers to articles as was noted in the Xref: header from the
472 upstream server.  The result is that clients should be able to point at
473 either server interchangeably (using some load balancing scheme, for
474 example) and see the same internal article numbering.  Servers with this
475 parameter set should generally only have one upstream feed, and should
476 always have I<nnrpdposthost> set to hand locally posted articles off to
477 the master server.  The upstream should be careful to always feed articles
478 in order (innfeed(8) can have problems with this in the event of a
479 backlog).  This is a boolean value and the default is false.
480
481 =item I<nfswriter>
482
483 For servers writing articles, determine whether the article spool is
484 on NFS storage.  If set, INN attempts to flush articles to the spool
485 in a more timely manner, rather than relying on the operating system
486 to flush things such as the CNFS article bitmaps.  You should only set
487 this parameter if you are attempting to use a shared NFS spool on a
488 machine acting as a single writer within a cluster.  This is a boolean
489 value and the default is false.
490
491 =item I<nfsreader>
492
493 For servers reading articles, determine whether the article spool is
494 on NFS storage.  If set, INN will attempt to force articles and
495 overviews to be read directly from the NFS spool rather than from
496 cached copies.  You should only set this parameter if you are
497 attempting to use a shared NFS spool on a machine acting a reader a
498 cluster.  This is a boolean value and the default is false.
499
500 =item I<nfsreaderdelay>
501
502 For servers reading articles, determine whether the article spool is
503 on NFS storage.  If I<nfsreader> is set, INN will use the value of
504 I<nfsreaderdelay> to delay the apparent arrival time of articles to
505 clients by this amount; this value should be tuned based on the NFS
506 cache timeouts locally.  This default is 60 (1 minute).
507
508 =item I<msgidcachesize>
509
510 How many cache slots to reserve for Message ID to storage token
511 translations.  When serving overview data to clients (NEWNEWS, XOVER
512 etc.), nnrpd(8) can cache the storage token associated with a Message
513 ID and save the cost of looking it up in the history file; for some
514 configurations setting this parameter can save more than 90% of the
515 wall clock time for a session.  The default value is 10000.
516
517 =item I<tradindexedmmap>
518
519 Whether to attempt to mmap() tradindexed overviews articles.  Setting
520 this to true will give better performance on most systems, but some
521 systems have problems with mmap().  If this is set to false, overviews
522 will be read into memory before being sent to readers.  This is a
523 boolean value and the default is true.
524
525 =back
526
527 =head2 Reading
528
529 These parameters affect the behavior of INN for readers.  Most of them are
530 used by nnrpd(8).  There are some special sets of settings that are broken
531 out separately after the initial alphabetized list.
532
533 =over 4
534
535 =item I<allownewnews>
536
537 Whether to allow use of the NEWNEWS command by clients.  This command used
538 to put a heavy load on the server in older versions of INN, but is now
539 reasonably efficient, at least if only one newsgroup is specified by the
540 client.  This is a boolean value and the default is true.  If you use the
541 I<access> parameter in F<readers.conf>, be sure to read about the way it
542 overrides I<allownewnews>.
543
544 =item I<articlemmap>
545
546 Whether to attempt to mmap() articles.  Setting this to true will give
547 better performance on most systems, but some systems have problems with
548 mmap().  If this is set to false, articles will be read into memory before
549 being sent to readers.  This is a boolean value and the default is false.
550
551 =item I<clienttimeout>
552
553 How long (in seconds) a client connection can be idle before it exits.
554 When setting this parameter, be aware that some newsreaders use the same
555 connection for reading and posting and don't deal well with the connection
556 timing out while a post is being composed.  If the system isn't having a
557 problem with too many long-lived connections, it may be a good idea to
558 increase this value to C<3600> (an hour).  The default value is C<600>
559 (ten minutes).
560
561 =item I<initialtimeout>
562
563 How long (in seconds) B<nnrpd> will wait for the first command from a
564 reader connection before dropping the connection.  This is a defensive
565 timeout intended to protect the news server from badly behaved reader
566 clients that open and abandon a multitude of connections without every
567 closing them.  The default value is C<10> (ten seconds), which may need to
568 be increased if many clients connect via slow network links.
569
570 =item I<nnrpdcheckart>
571
572 Whether B<nnrpd> should check the existence of an article before listing
573 it as present in response to an NNTP command.  The primary use of this
574 setting is to prevent nnrpd from returning information about articles
575 which are no longer present on the server but which still have overview
576 data available.  Checking the existence of articles before returning
577 overview information slows down the overview commands, but reduces the
578 number of "article is missing" errors seen by the client.  This is a
579 boolean value and the default is true.
580
581 =item I<nnrpperlauth>
582
583 This parameter is now obsolete; see "Changes to Perl Authentication
584 Support for nnrpd" in F<doc/hook-perl>.
585
586 =item I<nnrppythonauth>
587
588 This parameter is now obsolete; see "Changes to Python Authentication and
589 Access Control Support for nnrpd" in F<doc/hook-python>.
590
591 =item I<noreader>
592
593 Normally, innd(8) will fork a copy of nnrpd(8) for all incoming
594 connections from hosts not listed in F<incoming.conf>.  If this parameter
595 is set to true, those connections will instead be rejected with a 502
596 error code.  This should be set to true for a transit-only server that
597 doesn't support readers, or if nnrpd is running in daemon mode or being
598 started out of inetd.  This is a boolean value and the default is false.
599
600 =item I<readerswhenstopped>
601
602 Whether to allow readers to connect even if the server is paused or
603 throttled.  This is only applicable if nnrpd(8) is spawned from innd(8)
604 rather than run out of inetd or in daemon mode.  This is a boolean value
605 and the default is false.
606
607 =item I<readertrack>
608
609 Whether to enable the tracking system for client behavior.  Tracked
610 information is recorded to I<pathlog>/tracklogs/log-ID, where ID is
611 determined by nnrpd's PID and launch time.)  Currently the information
612 recorded includes initial connection and posting; only information about
613 clients listed in F<nnrpd.track> is recorded.  This is a boolean value and
614 the default is false.
615
616 =item I<nnrpdflags>
617
618 When nnrpd(8) is spawned from innd(8), these flags are passed as
619 arguments to the nnrpd process.  This setting does not affect instances
620 of nnrpd that are started in daemon mode, or instances that are started
621 via another listener process such as inetd(8) or xinetd(8).  Shell
622 quoting and metacharacters are not supported.  This is a string value
623 and the default is unset.
624
625 =item I<nnrpdloadlimit>
626
627 If set to a value other than C<0>, connections to nnrpd will be refused
628 if the system load average is higher than this value.  The default value
629 is C<16>.
630
631 =back
632
633 INN has optional support for generating keyword information automatically
634 from article body text and putting that information in overview for the
635 use of clients that know to look for it.  The following parameters control
636 that feature.
637
638 This may be too slow if you're taking a substantial feed, and probably
639 will not be useful for the average news reader; enabling this is not
640 recommended unless you have some specific intention to take advantage of
641 it.
642
643 =over 4
644
645 =item I<keywords>
646
647 Whether the keyword generation support should be enabled.  This is a
648 boolean value and the default is false.
649
650 FIXME: Currently, support for keyword generation is configured into INN
651 semi-randomly (based on whether configure found the regex library); it
652 should be an option to configure and that option should be mentioned here.
653
654 =item I<keyartlimit>
655
656 Articles larger than this value in bytes will not have keywords generated
657 for them (since it would take too long to do so).  The default value is
658 C<100000> (approximately 100 KB).
659
660 =item I<keylimit>
661
662 Maximum number of bytes allocated for keyword data.  If there are more
663 keywords than will fit into this many bytes when separated by commas, the
664 rest are discarded.  The default value is C<512>.
665
666 =item I<keymaxwords>
667
668 Maximum number of keywords that will be generated for an article.  (The
669 keyword generation code will attempt to discard "noise" words, so the
670 number of keywords actually writen into the overview will usually be
671 smaller than this even if the maximum number of keywords is found.)  The
672 default value is C<250>.
673
674 =back
675
676 =head2 Posting
677
678 These parameters are only used by nnrpd(8), inews(1), and other programs
679 that accept or generate postings.  There are some special sets of settings
680 that are broken out separately after the initial alphabetized list.
681
682 =over 4
683
684 =item I<addnntppostingdate>
685
686 Whether to add an NNTP-Posting-Date: header to all local posts.  This is a
687 boolean value and the default is true.  Note that INN either does not add
688 this header or adds the name or IP address of the client.  There is no
689 intrinsic support for obfuscating the name of the client.  That has to be
690 done with a user-written Perl filter, if desired.
691
692 =item I<addnntppostinghost>
693
694 Whether to add an NNTP-Posting-Host: header to all local posts giving the
695 FQDN or IP address of the system from which the post was received.  This
696 is a boolean value and the default is true.
697
698 =item I<checkincludedtext>
699
700 Whether to check local postings for the ratio of new to quoted text and
701 reject them if that ratio is under 50%.  Included text is recognized by
702 looking for lines beginning with C<E<gt>>, C<|>, or C<:>.  This is a
703 boolean value and the default is false.
704
705 =item I<complaints>
706
707 The value of the X-Complaints-To: header added to all local posts.  The
708 default is the newsmaster's e-mail address.  (If the newsmaster, selected
709 at configure time and defaulting to C<usenet>, doesn't contain C<@>, the
710 address will consist of the newsmaster, a C<@>, and the value of
711 I<fromhost>.)
712
713 =item I<fromhost>
714
715 Contains a domain used to construct e-mail addresses.  The address of the
716 local news administrator will be given as <user>@I<fromhost>, where <user>
717 is the newsmaster user set at compile time (C<usenet> by default).  This
718 setting will also be used by mailpost(8) to fully qualify addresses and by
719 inews(1) to generate the Sender: header (and From: header if missing).
720 The value of the FROMHOST environment variable, if set, overrides this
721 setting.  The default is the fully-qualified domain name of the local
722 host.
723
724 =item I<localmaxartsize>
725
726 The maximum article size (in bytes) for locally posted articles.  Articles
727 larger than this will be rejected.  A value of C<0> allows any size of
728 article, but note that B<nnrpd> and B<innd> will crash if system memory is
729 exceeded.  See also I<maxartsize>, which applies to all articles including
730 those posted locally.  The default value is C<1000000> (approximately 1
731 MB).
732
733 =item I<moderatormailer>
734
735 The address to which to send submissions for moderated groups.  It is only
736 used if the F<moderators> file doesn't exist, or if the moderated group to
737 which an article is posted is not matched by any entry in that file, and
738 takes the same form as an entry in the F<moderators> file.  In most cases,
739 C<%s@moderators.isc.org> is a good value for this parameter (C<%s> is
740 expanded into a form of the newsgroup name).  See moderators(5) for more
741 details about the syntax.  The default is unset.  If this parameter isn't
742 set and an article is posted to a moderated group that does not have a
743 matching entry in the F<moderators> file, the posting will be rejected
744 with an error.
745
746 =item I<nnrpdauthsender>
747
748 Whether to generate a Sender: header based on reader authentication.  If
749 this parameter is set, a Sender: header will be added to local posts
750 containing the identity assigned by F<readers.conf>.  If the assigned
751 identity does not include an C<@>, the reader's hostname is used.  If this
752 parameter is set but no identity is be assigned, the Sender: header will
753 be removed from all posts even if the poster includes one.  This is a
754 boolean value and the default is false.
755
756 =item I<nnrpdposthost>
757
758 If set, nnrpd(8) and rnews(1) will pass all locally posted articles to the
759 specified host rather than trying to inject them locally.  See also
760 I<nnrpdpostport>.  This should always be set if I<xrefslave> is true.  The
761 default value is unset.
762
763 =item I<nnrpdpostport>
764
765 The port on the remote server to connect to to post when I<nnrpdposthost>
766 is used.  The default value is C<119>.
767
768 =item I<organization>
769
770 What to put in the Organization: header if it is left blank by the poster.
771 The value of the ORGANIZATION environment variable, if set, overrides this
772 setting.  The default is unset, which tells INN not to insert an
773 Organization: header.
774
775 =item I<spoolfirst>
776
777 If true, nnrpd(8) will spool new articles rather than attempting to send
778 them to innd(8).  If false, nnrpd will spool articles only if it receives
779 an error trying to send them to innd.  Setting this to true can be useful
780 if nnrpd must respond as fast as possible to the client; however, when
781 set, articles will not appear to readers until they are given to innd.
782 nnrpd won't do this; C<rnews -U> must be run periodically to take the
783 spooled articles and post them.  This is a boolean value and the default
784 is false.
785
786 =item I<strippostcc>
787
788 Whether to strip To:, Cc:, and Bcc: headers out of all local posts via
789 nnrpd(8).  The primary purpose of this setting is to prevent abuse of the
790 news server by posting to a moderated group and including To: or Cc:
791 headers in the post so that the news server will send the article to
792 arbitrary addresses.  INN now protects against this abuse in other ways
793 provided I<mta> is set to a command that includes C<%s> and honors it, so
794 this is generally no longer needed.  This is a boolean value and the
795 default is false.
796
797 =back
798
799 nnrpd(8) has support for controlling high-volume posters via an
800 exponential backoff algorithm, as configured by the following parameters.
801
802 Exponential posting backoff works as follows:  News clients are indexed by
803 IP address (or username, see I<backoffauth> below).  Each time a post is
804 received from an IP address, the time of posting is stored (along with the
805 previous sleep time, see below).  After a configurable number of posts in
806 a configurable period of time, nnrpd(8) will activate posting backoff and
807 begin to sleep for increasing periods of time before actually posting
808 anything.  Posts will still be accepted, but at an increasingly reduced
809 rate.
810
811 After backoff has been activated, the length of time to sleep is computed
812 based on the difference in time between the last posting and the current
813 posting.  If this difference is less than I<backoffpostfast>, the new
814 sleep time will be 1 + (previous sleep time * I<backoffk>).  If this
815 difference is less than I<backoffpostslow> but greater than
816 I<backoffpostfast>, then the new sleep time will equal the previous sleep
817 time.  If this difference is greater than I<backoffpostslow>, the new
818 sleep time is zero and posting backoff is deactivated for this poster.
819
820 Exponential posting backoff will not be enabled unless I<backoffdb> is set
821 and I<backoffpostfast> and I<backoffpostslow> are set to something other
822 than their default values.
823
824 Here are the parameters that control exponential posting backoff:
825
826 =over 4
827
828 =item I<backoffauth>
829
830 Whether to index posting backoffs by user rather than by source IP
831 address.  You must be using authentication in nnrpd(8) for a value of true
832 to have any meaning.  This is a boolean value and the default is false.
833
834 =item I<backoffdb>
835
836 The path to a directory, writeable by the news user, that will contain the
837 backoff database.  There is no default for this parameter; you must
838 provide a path to a creatable or writeable directory to enable exponential
839 backoff.
840
841 =item I<backoffk>
842
843 The amount to multiply the previous sleep time by if the user is still
844 posting too quickly.  A value of C<2> will double the sleep time for each
845 excessive post.  The default value is C<1>.
846
847 =item I<backoffpostfast>
848
849 Postings from the same identity that arrive in less than this amount of
850 time (in seconds) will trigger increasing sleep time in the backoff
851 algorithm.  The default value is C<0>.
852
853 =item I<backoffpostslow>
854
855 Postings from the same identity that arrive in greater than this amount of
856 time (in seconds) will reset the backoff algorithm.  Another way to look
857 at this constant is to realize that posters will be allowed to generate at
858 most 86400/I<backoffpostslow> posts per day.  The default value is C<1>.
859
860 =item I<backofftrigger>
861
862 This many postings are allowed before the backoff algorithm is triggered.
863 The default value is C<10000>.
864
865 =back
866
867 =head2 Monitoring
868
869 These parameters control the behavior of innwatch(8), the program that
870 monitors INN and informs the news administrator if anything goes wrong
871 with it.
872
873 =over 4
874
875 =item I<doinnwatch>
876
877 Whether to start innwatch(8) from rc.news.  This is a boolean value, and
878 the default is true.
879
880 =item I<innwatchbatchspace>
881
882 Free space in I<pathoutgoing>, in inndf(8) output units (normally
883 kilobytes), at which innd(8) will be throttled by innwatch(8), assuming a
884 default F<innwatch.ctl>.  The default value is C<800>.
885
886 =item I<innwatchlibspace>
887
888 Free space in I<pathdb>, in inndf(8) output units (normally kilobytes), at
889 which innd(8) will be throttled by innwatch(8), assuming a default
890 F<innwatch.ctl>.  The default value is C<25000>.
891
892 =item I<innwatchloload>
893
894 Load average times 100 at which innd(8) will be restarted by innwatch(8)
895 (undoing a previous pause or throttle), assuming a default
896 F<innwatch.ctl>.  The default value is C<1000> (that is, a load average of
897 10.00).
898
899 =item I<innwatchhiload>
900
901 Load average times 100 at which innd(8) will be throttled by innwatch(8),
902 assuming a default F<innwatch.ctl>.  The default value is C<2000> (that
903 is, a load average of 20.00).
904
905 =item I<innwatchpauseload>
906
907 Load average times 100 at which innd(8) will be paused by innwatch(8),
908 assuming a default F<innwatch.ctl>.  The default value is C<1500> (that
909 is, a load average of 15.00).
910
911 =item I<innwatchsleeptime>
912
913 How long (in seconds) innwatch(8) will sleep between each check of INN.
914 The default value is C<600>.
915
916 =item I<innwatchspoolnodes>
917
918 Free inodes in I<patharticles> at which innd(8) will be throttled by
919 innwatch(8), assuming a default F<innwatch.ctl>.  The default value is
920 C<200>.
921
922 =item I<innwatchspoolspace>
923
924 Free space in I<patharticles> and I<pathoverview>, in inndf(8) output
925 units (normally kilobytes), at which innd(8) will be throttled by
926 innwatch(8), assuming a default F<innwatch.ctl>.  The default value is
927 C<8000>.
928
929 =back
930
931 =head2 Logging
932
933 These parameters control what information INN logs.
934
935 =over 4
936
937 =item I<docnfsstat>
938
939 Whether to start cnfsstat(8) when innd(8) is started.  cnfsstat will log
940 the status of all CNFS cycbuffs to syslog on a periodic basis (frequency
941 is the default for C<cnfsstat -l>, currently 600 seconds).  This is a
942 boolean value and the default is false.
943
944 =item I<logartsize>
945
946 Whether the size of accepted articles (in bytes) should be written to the
947 article log file.  This is useful for flow rate statistics and is
948 recommended.  This is a boolean value and the default is true.
949
950 =item I<logcancelcomm>
951
952 Set this to true to log C<ctlinnd cancel> commands to syslog.  This is a
953 boolean value and the default is false.
954
955 =item I<logcycles>
956
957 How many old logs scanlogs(8) keeps.  scanlogs(8) is generally run by
958 news.daily(8) and will archive compressed copies of this many days worth
959 of old logs.  The default value is C<3>.
960
961 =item I<logipaddr>
962
963 Whether the verified name of the remote feeding host should be logged to
964 the article log for incoming articles rather than the last entry in the
965 Path: header.  The only reason to ever set this to false is due to some
966 interactions with F<newsfeeds> flags; see newsfeeds(5) for more
967 information.  This is a boolean value and the default is true.
968
969 =item I<logsitename>
970
971 Whether the names of the sites to which accepted articles will be sent
972 should be put into the article log file.  This is useful for debugging and
973 statistics and can be used by newsrequeue(8).  This is a boolean value and
974 the default is true.
975
976 =item I<nnrpdoverstats>
977
978 Whether nnrpd overview statistics should be logged via syslog.  This can
979 be useful for measuring overview performance.  This is a boolean value and
980 the default is false.
981
982 =item I<nntpactsync>
983
984 How many articles to process on an incoming channel before logging the
985 activity.  The default value is C<200>.
986
987 FIXME: This is a rather unintuitive name for this parameter.
988
989 =item I<nntplinklog>
990
991 Whether to put the storage API token for accepted articles (used by
992 nntplink) in the article log.  This is a boolean value and the default is
993 false.
994
995 =item I<stathist>
996
997 Where to write history statistics for analysis with
998 F<contrib/stathist.pl>; this can be modified with ctlinnd(8) while innd is
999 running.  Logging does not occur unless a path is given, and there is no
1000 default value.
1001
1002 =item I<status>
1003
1004 How frequently (in seconds) innd(8) should write out a status report.  The
1005 report is written to I<pathhttp>/inn_status.html.  If this is set to C<0> or
1006 C<false>, status reporting is disabled.  The default value is C<0>.
1007
1008 =item I<timer>
1009
1010 How frequently (in seconds) innd(8) should report performance timings to
1011 syslog.  If this is set to C<0>, performance timing is disabled.  Enabling
1012 this is highly recommended, and innreport(8) can produce a nice summary of
1013 the timings.  If set to C<0>, performance timings in nnrpd(8) are also
1014 disabled, although nnrpd always reports statistics on exit and therefore
1015 any non-zero value is equivalent for it.  The default value is C<0>.
1016
1017 =back
1018
1019 =head2 System Tuning
1020
1021 The following parameters can be modified to tune the low-level operation
1022 of INN.  In general, you shouldn't need to modify any of them except
1023 possibly I<rlimitnofile> unless the server is having difficulty.
1024
1025 =over 4
1026
1027 =item I<badiocount>
1028
1029 How many read or write failures until a channel is put to sleep or
1030 closed.  The default value is C<5>.
1031
1032 =item I<blockbackoff>
1033
1034 Each time an attempted write returns EAGAIN or EWOULDBLOCK, innd(8) will
1035 wait for an increasing number of seconds before trying it again.  This is
1036 the multiplier for the sleep time.  If you're having trouble with channel
1037 feeds not keeping up, it may be good to change this value to C<2> or C<3>,
1038 since then when the channel fills INN will try again in a couple of
1039 seconds rather than waiting two minutes.  The default value is C<120>.
1040
1041 =item I<chaninacttime>
1042
1043 The time (in seconds) to wait between noticing inactive channels.  The
1044 default value is C<600>.
1045
1046 =item I<chanretrytime>
1047
1048 How many seconds to wait before a channel restarts.  The default value is
1049 C<300>.
1050
1051 =item I<datamovethreshold>
1052
1053 The threshold for deciding whether to move already-read data to the top of
1054 buffer or extend the buffer.  The buffer described here is used for reading
1055 NNTP data.  Increasing this value may improve performance, but it should
1056 not be increased on Systems with insufficient memory.  Permitted values
1057 are between C<0> and C<1048576> (out of range values are treated as
1058 C<1048576>) and the default value is C<8192>.  
1059
1060 =item I<icdsynccount>
1061
1062 How many article writes between updating the active and history files.
1063 The default value is C<10>.
1064
1065 =item I<keepmmappedthreshold>
1066
1067 When using buffindexed, retrieving overview data (that is, responding to
1068 XOVER or running expireover) causes mmapping of all overview data blocks
1069 which include requested overview data for newsgroup.  But for high volume
1070 newsgroups like control.cancel, this may cause too much mmapping at once
1071 leading to system resource problems.  To avoid this, if the amount to be
1072 mmapped exceeds I<keepmmappedthreshold> (in KB), buffindexed mmap's just
1073 one overview block (8 KB).  This parameter is specific to buffindexed
1074 overview storage method.  The default value is C<1024> (1 MB).
1075
1076 =item I<maxcmdreadsize>
1077
1078 If set to anything other than C<0>, maximum buffer size (in bytes) for
1079 reading NNTP command will have this value.  It should not be large on
1080 systems which are slow to process and store articles, as that would lead
1081 to innd(8) spending a long time on each channel and keeping other channels
1082 waiting.  The default value is BUFSIZ defined in stdio.h (C<1024> in most
1083 environments, see setbuf(3)).
1084
1085 =item I<maxforks>
1086
1087 How many times to attempt a fork(2) before giving up.  The default value
1088 is C<10>.
1089
1090 =item I<nicekids>
1091
1092 If set to anything other than C<0>, all child processes of innd(8) will
1093 have this nice(2) value.  This is usually used to give all child processes
1094 of innd(8) a lower priority (higher nice value) so that innd(8) can get
1095 the lion's share of the CPU when it needs it.  The default value is C<4>.
1096
1097 =item I<nicenewnews>
1098
1099 If set to anything greater than C<0>, all nnrpd(8) processes that receive
1100 and process a NEWNEWS command will nice(2) themselves to this value
1101 (giving other nnrpd processes a higher priority).  The default value is
1102 C<0>.  Note that this value will be ignored if set to a lower value than
1103 I<nicennrpd> (or I<nicekids> if nnrpd(8) is spawned from innd(8)).
1104
1105 =item I<nicennrpd>
1106
1107 If set to anything greater than C<0>, all nnrpd(8) processes will nice(1)
1108 themselves to this value.  This gives other news processes a higher
1109 priority and can help overchan(8) keep up with incoming news (if that's
1110 the object, be sure overchan(8) isn't also set to a lower priority via
1111 I<nicekids>).  The default value is C<0>, which will cause nnrpd(8)
1112 processes spawned from innd(8) to use the value of I<nicekids>, while
1113 nnrpd(8) run as a daemon will use the system default priority.  Note that
1114 for nnrpd(8) processes spawned from innd(8), this value will be ignored if
1115 set to a value lower than I<nicekids>.
1116
1117 =item I<pauseretrytime>
1118
1119 Wait for this many seconds before noticing inactive channels.
1120 Wait for this many seconds before innd processes articles when it's paused
1121 or the number of channel write failures exceeds I<badiocount>.  The
1122 default value is C<300>.
1123
1124 =item I<peertimeout>
1125
1126 How long (in seconds) an innd(8) incoming channel may be inactive before
1127 innd closes it.  The default value is C<3600> (an hour).
1128
1129 =item I<rlimitnofile>
1130
1131 The maximum number of file descriptors that innd(8) or innfeed(8) can have
1132 open at once.  If innd(8) or innfeed(8) attempts to open more file
1133 descriptors than this value, it is possible the program may throttle or
1134 otherwise suffer reduced functionality.  The number of open file
1135 descriptors is roughly the maximum number of incoming feeds and outgoing
1136 batches for innd(8) and the number of outgoing streams for innfeed(8).  If
1137 this parameter is set to a negative value, the default limit of the
1138 operating system will be used; this will normally be adequate on systems
1139 other than Solaris.  Nearly all operating systems have some hard maximum
1140 limit beyond which this value cannot be raised, usually either 128, 256,
1141 or 1024.  The default value of this parameter is C<-1>.  Setting it to
1142 C<256> on Solaris systems is highly recommended.
1143
1144 =back
1145
1146 =head2 Paths and File Names
1147
1148 =over 4
1149
1150 =item I<patharchive>
1151
1152 Where to store archived news.  The default value is I<pathspool>/archive.
1153
1154 =item I<patharticles>
1155
1156 The path to where the news articles are stored (for storage methods other
1157 than CNFS).  The default value is I<pathspool>/articles.
1158
1159 =item I<pathbin>
1160
1161 The path to the news binaries.  The default value is I<pathnews>/bin.
1162
1163 =item I<pathcontrol>
1164
1165 The path to the files that handle control messages.  The code for handling
1166 each separate type of control message is located here.  Be very careful
1167 what you put in this directory with a name ending in C<.pl>, as it can
1168 potentially be a severe security risk.  The default value is
1169 I<pathbin>/control.
1170
1171 =item I<pathdb>
1172
1173 The path to the database files used and updated by the server (currently,
1174 F<active>, F<active.times>, F<history> and its indices, and
1175 F<newsgroups>).  The default value is I<pathnews>/db.
1176
1177 =item I<pathetc>
1178
1179 The path to the news configuration files.  The default value is
1180 I<pathnews>/etc.
1181
1182 =item I<pathfilter>
1183
1184 The path to the Perl, Tcl, and Python filters.  The default value is
1185 I<pathbin>/filter.
1186
1187 =item I<pathhttp>
1188
1189 Where any HTML files (such as periodic status reports) are placed.  If the
1190 news reports should be available in real-time on the web, the files in
1191 this directory should be served by a web server.  The default value is
1192 the value of I<pathlog>.
1193
1194 =item I<pathincoming>
1195
1196 Location where incoming batched news is stored.  The default value is
1197 I<pathspool>/incoming.
1198
1199 =item I<pathlog>
1200
1201 Where the news log files are written.  The default value is
1202 I<pathnews>/log.
1203
1204 =item I<pathnews>
1205
1206 The home directory of the news user and usually the root of the news
1207 hierarchy.  There is no default; this parameter must be set in F<inn.conf>
1208 or INN will refuse to start.
1209
1210 =item I<pathoutgoing>
1211
1212 Default location for outgoing feed files.  The default value is
1213 I<pathspool>/outgoing.
1214
1215 =item I<pathoverview>
1216
1217 The path to news overview files.  The default value is
1218 I<pathspool>/overview.
1219
1220 =item I<pathrun>
1221
1222 The path to files required while the server is running and run-time state
1223 information.  This includes lock files and the sockets for communicating
1224 with innd(8).  This directory and the control sockets in it should be
1225 protected from unprivileged users other than the news user.  The default
1226 value is I<pathnews>/run.
1227
1228 =item I<pathspool>
1229
1230 The root of the news spool hierarchy.  This used mostly to set the
1231 defaults for other parameters, and to determine the path to the backlog
1232 directory for innfeed(8).  The default value is I<pathnews>/spool.
1233
1234 =item I<pathtmp>
1235
1236 Where INN puts temporary files.  For security reasons, this is not the
1237 same as the system temporary files directory (INN creates a lot of
1238 temporary files with predictable names and does not go to particularly
1239 great lengths to protect against symlink attacks and the like; this
1240 is safe provided that normal users can't write into its temporary
1241 directory).  The default value is set at configure time and defaults to
1242 I<pathnews>/tmp.
1243
1244 =back
1245
1246 =head1 EXAMPLE
1247
1248 Here is a very minimalist example that only sets those parameters that are
1249 required.
1250
1251     mta:                /usr/lib/sendmail -oi -oem %s
1252     ovmethod:           tradindexed
1253     pathhost:           news.example.com
1254     pathnews:           /usr/local/news
1255     hismethod:          hisv6
1256
1257 For a more comprehensive example, see the sample F<inn.conf> distributed
1258 with INN and installed as a starting point; it contains all of the default
1259 values for reference.
1260
1261 =head1 HISTORY
1262
1263 Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews and since
1264 modified, updated, and reorganized by innumerable other people.
1265
1266 $Id: inn.conf.pod 7751 2008-04-06 14:35:40Z iulius $
1267
1268 =head1 SEE ALSO
1269
1270 inews(1), innd(8), innwatch(8), nnrpd(8), rnews(1).
1271
1272 Nearly every program in INN uses this file to one degree or another.  The
1273 above are just the major and most frequently mentioned ones.