.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CONTROLCHAN 8" .TH CONTROLCHAN 8 "2023-03-07" "INN 2.7.2" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" controlchan \- Channel\-fed control message handler .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBcontrolchan\fR [\fB\-ch\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBcontrolchan\fR removes the responsibility for handling control messages (except cancels) from \fBinnd\fR and instead processes them from a channel or file feed. .PP The two Perl modules \f(CW\*(C`Encode\*(C'\fR and \f(CW\*(C`MIME::Parser\*(C'\fR are required by \&\fBcontrolchan\fR. .PP To reduce load, \fBcontrolchan\fR keeps a copy of \fIcontrol.ctl\fR and \&\fIcontrol.ctl.local\fR in memory and checks permissions (including any required \&\s-1PGP\s0 headers) before any scripts are called. These two configuration files are automatically reloaded when \fBcontrolchan\fR notices they have been modified. Also, the default case of an unrecognized control article is handled internally. The \f(CW\*(C`drop\*(C'\fR case is handled with far less fuss. .PP Normally, \fBcontrolchan\fR is invoked by \fBinnd\fR as configured in \fInewsfeeds\fR. An example entry is below. Make sure that the newsgroup \f(CW\*(C`control.cancel\*(C'\fR exists so that \fBcontrolchan\fR does not have to scan through cancels, which it will not be processing anyway. .PP .Vb 4 \& controlchan!\e \& :!*,control,control.*,!control.cancel\e \& :AC,Tc,Wnsm\e \& :/controlchan .Ve .PP \&\fBcontrolchan\fR can also be manually invoked with a mere path to a file (containing a complete control article with its headers and its body) or a token on its standard input: .PP .Vb 2 \& echo \*(Aq/path/to/a/control/article\*(Aq | controlchan \& echo \*(Aq@0303465234000000000000235AE000000002@\*(Aq | controlchan .Ve .PP Note that in the (very, very unlikely) event that you need to process ihave/sendme control messages, be sure that \fIlogipaddr\fR is set to false in \fIinn.conf\fR, because in this case \fBcontrolchan\fR needs a site name, not an \s-1IP\s0 address. .PP \&\fBcontrolchan\fR tries to report all log messages through \fBsyslog\fR\|(3), unless connected to an interactive terminal. To enable \fBsyslog\fR\|(3)'ing for versions of Perl prior to 5.6.0, you will need to have run \fBh2ph\fR on your system include files at some point (this is required to make \f(CW\*(C`Sys::Syslog\*(C'\fR work). If you have not done so, do this: .PP .Vb 2 \& cd /usr/include \& h2ph * sys/* .Ve .PP If you run FreeBSD, you will need to run the following in addition: .PP .Vb 1 \& h2ph machine/* .Ve .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c\fR" 4 .IX Item "-c" By default, \fBcontrolchan\fR does not process articles whose Date or Injection-Date header fields are too far in the past (more than \&\fIartcutoff\fR days, as set in \fIinn.conf\fR) or one day in the future. It allows preventing a malicious replay of old control articles. .Sp Using the \fB\-c\fR flag disables this check on the cutoff date. .IP "\fB\-h\fR" 4 .IX Item "-h" Gives usage information. .SH "HISTORY" .IX Header "HISTORY" Written by Katsuhiro Kondou for InterNetNews. Converted to \&\s-1POD\s0 by Julien Elie. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBcontrol.ctl\fR\|(5), \fBinn.conf\fR\|(5).