> Problem:
> *!*@* masks strongly mess up channels when used in kick/ban
>
> Example:
> - Get level 100 in a channel (so you can ban)

The very fact that this requires level 100 on a channel means that it is not
IMO a
coding issue. It is the responsibility of the 400+ users, and thus
ultimately of
the channel manager, to exercise care in the selection of ops. It is similar
to the
case where a person on an unregistered channel ops another person, who
proceeds
to mass-deop the channel, leaving themselves as the only op - it is not the
coders'
fault for allowing it, but the fault of the person who gave the abuser ops.

> Result:
> Flood away, coz noone can op himself since he is no longer allowed to be
op
> (*!*@* matches all users and equals NOOP that way with the difference that
> every 100+ can do that without needing permission from a 450+)

1. If a chanop abuses the channel they are opped on this way, by flooding or
permitting others to flood the channel in this manner, a 400+ op can and
should put
an end to this by removing the offender's access.

2. If the channel manager fails to take action against this (by either
removing the
offender's access or having a 400+ do so) then the channel is abusing
Cservice and
should be dealt with accordingly.

> Solution:
> Finally get rid of *!*@* usage !, its only abused by a lot of users (Greg,
> perhaps you want to start logging the *!*@* usage to get some stats
> yourself) to create massjoinfloods, disrupt the channel activity and in
that
> way be able to put load on the servers. *!*@* bans are NOT NEEDED TO BE
USED
> by clients, perhaps in kick if they want to clean up the idlers, but then
I
> suggest to limit the usage of kicks on *!*@* to 450, perhaps split the
> command apart and make a /msg X kickall <channel> <reason> instead

This involves extra string comparisons, which are not cheap in terms of
processing
time in C. Remember that X is a very heavily used service, and like ircu
itself, any
change that results in increased processing time for a commonly used command
is likely
to result in significant lag.

> Another funny issue you haven't thought about is the fact that unban is
also
> affected by this issue, imagine having like 20 bans on a channel's banlist
> in X, someone adding a ban on *!*@*, now do the math and make an
estimation
> what you need to do to remove this single ban without harming the other
bans
> in the list.

This could be dealt with by adding a switch to the UNBAN command, for
instance
-exact, where if used only a ban that matches the specified mask -exactly-
would
be removed. This seems like a better and less expensive method.

-- Aurorian


Reply via email to