Bug in the [non-]propagation of control messages

Russ Allbery rra at stanford.edu
Fri Sep 14 23:11:09 UTC 2007


Julien ÉLIE <julien at trigofacile.com> writes:

> It was a control message for the creation of local.example
> (Newsgroups: local.example).

> It is sent by art.c at line 2136:

>   /* Control messages not filed in "to" get filed only in control.name
>    * or control. */
>   if (IsControl && Accepted && !ToGroup) {
>     ControlStore = true;
>     controlgroup = concat("control.", ControlWord, (char *) 0);
>     if ((ngp = NGfind(controlgroup)) == NULL)
>       ngp = NGfind(ARTctl);
>     free(controlgroup);
>     ngp->PostCount = 0;
>     ngptr = GroupPointers;
>     *ngptr++ = ngp;
>     for (isp = ngp->Sites, i = ngp->nSites; --i >= 0; isp++) {
>       if (*isp >= 0) {
>         sp = &Sites[*isp];
>         SITEmark(sp, ngp);
>       }
>     }
>   }

> Indeed, control.newgroup is in the pattern "*, at local.*" so it is sent.
> It does not care about the poison pattern here.

Ah, yes, if you don't want to send all control messages to a remote host,
you also have to exclude control.* from the feed.  I'm not sure if that's
a feature or not, but I'm not sure how to change it without breaking
feeding control.newgroup explicitly.

> The article propagation is based on what there is in "groups" thanks
> to ARTsendthegroup(*groups).  And it is set by:
>     groups = data->Newsgroups.List;
> just before.

And then overridden in the LikeNewgroup code... so the change for
checkgroups wouldn't have any real effect, would it?  Maybe I'm missing
something.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>

    Please send questions to the list rather than mailing me directly.
     <http://www.eyrie.org/~eagle/faqs/questions.html> explains why.


More information about the inn-workers mailing list