CONTROLCHAN(8)
π CONTROLCHAN(8) β the control message handler that eats, and it's channel-fed, bestie
okay so real talk: this one lives in section 8 of the InterNetNews docs, and honestly? it's lowkey the main character of control message handling. let's get into it π«Ά
β¨ NAME β¨
controlchan β a channel-fed control message handler. that's it, that's the vibe. π
πΈ SYNOPSIS πΈ
controlchan [-ch]
π¦ DESCRIPTION π¦
so here's the tea: controlchan takes the whole job of handling control messages away from innd β like, it removes that responsibility entirely β and instead it processes them from a channel or a file feed. the one exception? cancels. those it does not deal with. periodt.
π heads up: the two Perl modulesEncodeandMIME::Parserare required bycontrolchan. no cap, you need both.
to reduce load (we love an efficient queen), controlchan keeps a copy of control.ctl and control.ctl.local in memory and checks permissions β including any required PGP headers, yes ma'am β before any scripts get called. and the way that it justβ¦ automatically reloads those two configuration files when it notices they've been modified? iconic. β¨
also! the default case of an unrecognized control article gets handled internally, and the "drop" case is handled with far less fuss. we simply don't stress about it. π
normally, controlchan is invoked by innd as configured in newsfeeds. here's an example entry, bestie β copy it exactly:
controlchan!\
:!*,control,control.*,!control.cancel\
:AC,Tc,Wnsm\
:<pathbin in inn.conf>/controlchan
make sure the newsgroup "control.cancel" exists, okay? that way controlchan doesn't have to scan through cancels, which β plot twist β it wouldn't be processing anyway. π
you can also manually invoke controlchan with just a path to a file (one that contains a complete control article, headers and body included), or with a token on its standard input:
echo '/path/to/a/control/article' | controlchan
echo '@0303465234000000000000235AE000000002@' | controlchan
π now listen, this next bit is in the (very, very unlikely) event that you need to processihave/sendmecontrol messages: be sure thatlogipaddris set tofalseininn.conf, because in this casecontrolchanneeds a site name, not an IP address. fr fr, don't skip this one.
and finally: controlchan tries to report all log messages through syslog(3) β unless it's connected to an interactive terminal, in which case it does its own thing. π
π OPTIONS π
-cβ by default,controlchandoes not process articles whoseDateorInjection-Dateheader fields are too far in the past (more thanartcutoffdays, as set ininn.conf) or one day in the future. this is all about preventing a malicious replay of old control articles, and honestly? protective queen behavior. π‘οΈ using the-cflag disables this check on the cutoff date.-hβ gives usage information. short, sweet, helpful. πΈ
π§ HISTORY π§
written by Katsuhiro Kondou <kondou@nec.co.jp> for InterNetNews. converted to POD by Julien Elie. legends only. π
β SEE ALSO β
and that's the whole page, bestie π this lil gem is from INN 2.7.4, dated 2025-03-29 β so go forth, handle those control messages, and slay π β¨
π¦ where this page comes from
- arch rolling: inn 2.7.4-4 Β· ISC
- epel 10: inn 2.7.4-5.el10_3 Β· ISC AND BSD-3-Clause AND BSD-4-Clause AND FSFAP AND (GPL-1.0-or-later OR Artistic-1.0-Perl) AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND MIT AND NTP
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms