Bug in the [non-]propagation of control messages

Russ Allbery rra at stanford.edu
Sat Sep 15 18:47:12 UTC 2007


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

> All right.  So I have to replace "*" by "*,!control.*" in my newsfeeds
> entries.  It is true that I read in the newsfeeds man page:

>     Control messages follow slightly different propagation rules than
>     normal articles; see innd(8) for the details.  Note that most
>     subscriptions should have "!junk,!control*" in their pattern list
>     due to those propagation rules.

> And the innd man page explains that.  But maybe an example is missing in
> order to make it clearer (such as the example of a newgroup control message
> posted to local.example with the "*, at local.*" pattern).

Yeah, that would be a good idea.

>> 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.

> Yes it would have.
> Suppose a checkgroups is sent to foo.admin and that you do not have
> that group in your active (but you carry foo.* or, at least, you
> receive a feed for foo.*).  In the current implementation, it does:

>   if ((ngp = NGfind(p)) == NULL) {
>     GroupMissing = true;
>     if (LikeNewgroup && Approved) {
>       ARTsendthegroup(*groups);
>       Accepted = true;
>     } else
>       NonExist = true;

> so the checkgroups is not propagated because of NonExist.
> Indeed, we have after:

>   for (i = nSites, sp = Sites; --i >= 0; sp++) {
>     if (sp->Poison || (sp->ControlOnly && !IsControl)
>       || (sp->DontWantNonExist && NonExist))
>       sp->Sendit = false;
>   }

> And finally, the checkgroups is rejected (Unwanted newsgroup foo.admin).

> Adding checkgroups in LikeNewgroup stuff (at the right place, after
> the code which searches for a newsgroup name useful for newgroup/rmgroup)
> causes ARTsendthegroup to be called and the acceptance of the checkgroups
> control message.  Then it can be propagated to the sites which need it,
> and not blocked by the local news server.

I think what I'm not following here is what newsgroup is passed to
ARTsendthegroup.  control.checkgroups?  Or something else?  If the effect
is to pass control.checkgroups in, then yes, I agree with that change.

-- 
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