Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#102 closed defect (fixed)

Improve checkgroups semantics in control.ctl

Reported by: Julien ÉLIE Owned by: eagle
Priority: low Milestone: 2.5.0
Component: utilities Version: 2.4.5
Severity: normal Keywords:
Cc:

Description

According to control.ctl man page:

The third argument for a line affecting checkgroups does not affect whether the line matches. It is only used after a matching line is found, to filter out which newsgroups listed in the checkgroups will be processed. This means that a line like:

checkgroups:*:*binaries*:drop

will cause all checkgroups control messages to be dropped unless they match a line after this one in control.ctl, not just ignore newsgroups containing binaries in the name. The general rule is to never use * in the second field for a line matching checkgroups messages. There is unfortunately no way to do what the author of a line like the above probably intended to do (yet).

Change History (3)

comment:1 Changed 11 years ago by Julien ÉLIE

According to Julien Élie:

Regarding checkgroups, I believe controlchan code should be adapted because it can no longer use the last control.ctl matching line to achieve that. Thus, it will be possible to use lines like:

checkgroups:*:*binaries*:drop

But they should be processed in order.

checkgroups:*:*binaries*:drop
checkgroups:group-admin@isc.org:comp.*:verify-news.announce.newgroups

-> we do not want comp.*binaries*
-> and only comp.* groups should remain in the checkgroups

However, several checkgroups will be processed (one for each line) since one might want for instance:

checkgroups:group-admin@isc.org:comp.*:verify-news.announce.newgroups
checkgroups:group-admin@isc.org:misc.*:mail

I believe I should also match the first pattern in order to make a difference between a "cn.*" and a "cn.bbs.*" checkgroups for instance (and not remove wrong groups).

By the way, I have just noticed a but in current checkgroups implementation:

checkgroups:ausadmin@aus.news-admin.org:aus.*:verify-ausadmin@aus.news-admin.org
checkgroups:ausadmin@aus.news-admin.org:canb.*:drop

As the list is reversed and canb.* will first match, checkgroups for aus.* will also be dropped.

comment:2 Changed 10 years ago by Julien ÉLIE

Resolution: fixed
Status: newclosed

(In [8431]) Many improvements to checkgroups handling:

  • Act on checkgroups control messages instead of sending mail;
  • Add the /maxdocheckgroups/ control.ctl option to specify the maximum number of changes that could be made at one time before bailing and mailing the changes to the admin;
  • Process all matching entries for a checkgroups and not the last matching control.ctl entry. It especially allows to use "drop" commands, combined with "mail" and "doit". To achieve that, controlchan uses exclusion and drop patterns;
  • Fix a long-standing bug causing patterns not being properly handled by docheckgroups: standard grep patterns were generated by controlchan instead of *egrep* patterns!
  • Fix a long-standing bug causing multiple entries for the same checkgroups sender not to be honoured (for instance aus.* and canb.*) because the last one did not match the list of newsgroups;
  • Fix two wrong log matches in innreport;
  • Documentation improvements, with useful samples.

close #3, #102

comment:3 Changed 10 years ago by Julien ÉLIE

Milestone: 2.5.0
Note: See TracTickets for help on using tickets.