Bug in the [non-]propagation of control messages
Julien ÉLIE
julien at trigofacile.com
Sat Sep 15 20:05:52 UTC 2007
En réponse à Russ Allbery :
>> if ((ngp = NGfind(p)) == NULL) {
>> GroupMissing = true;
>> if (LikeNewgroup && Approved) {
>> ARTsendthegroup(*groups);
>> Accepted = true;
>> } else
>> NonExist = true;
>
> I think what I'm not following here is what newsgroup is passed to
> ARTsendthegroup.
It is in two times.
In ARTsendthegroup called here, "groups" contains all the newsgroups
the checkgroups is posted to. For instance, "foo.admin" (if only one
group). The checkgroups will then be sent to every site for which
"foo.admin" matches the newsfeeds entry (even though "foo.admin" is
not carried by the local news server itself).
And there is afterwards a second process:
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);
}
}
}
and it is here (Accepted is true thanks to LikeNewGroup && Approved in
the first code) where the checkgroups is sent to sites which want
control.checkgroups.
> control.checkgroups? Or something else? If the effect
> is to pass control.checkgroups in, then yes, I agree with that change.
control.checkgroups is not passed to ARTsendthegroup but after,
in the last SITEmark.
I do not understand why you do not want the checkgroups to be sent
to sites which "want" the newsgroups it is posted to (even though
it is not locally carried). For instance, if I do not have "foo.admin"
by mistake, I will never receive the checkgroups and will never
have a chance to have it!
--
Julien ÉLIE
« Haec decies repetita placebit. » (Horace)
More information about the inn-workers
mailing list