[ This one got lost due to a moderation mixup; putting it back on
dalnet-src. -- Quension ]
Hello,
I would like to propose the following channel mode addition:
* +U - A user without matching PTR/A DNS records may not join unless
set +r.
I believe the mode may have been proposed previously but lacked the +r
exclusion. I think this may turn the argument slightly.
Firstly, let me explain the need for the channel mode. I believe there
are a few reasons why such a mode is necessary. In my experience, the
vast majority of problem users come from one of three categories:
a) The "script kiddie". This user revels in agonizing others and
possesses a substandard grasp of common decency. This user may have
access to a wide variety of IP space and is difficult to stop. I,
personally, can not think of a server-side solution to this problem
(nor a client-side solution!).
b) The "angry visitor". For whatever reason this user is having an
unpleasant experience. Clash of personalities, personal politics,
whatever. This user might just leave on his own, but a /kickban will
ensure. User has little desire to return. No additional steps
necessary.
c) The "general, nonsensical irritant". This is the big one. This
includes clone bots, spam bots, zombies, flooders, spammers, and the
dredges of society. Short of implementing an IRC CAPTCHA, there is
little one can do to prevent such activity. However, in my experience,
these users hail from ISPs who are too lazy, apathetic, or a
combination thereof to implement a standardized DNS system. The
proposed mode targets these users.
Some might suggest using the existing +R to filter out these users,
but I find this significantly hinders the ability of a channel to gain
new users. "How is this different, idiot?" I hear you ask. Well, the
difference is the place of the burden. With my proposed channel mode,
the burden is placed on the ISP instead of the user. +R requires an
existing knowledge of DALnet's services -- which, in my opinion, is an
unfair burden. +U, however, requires an existing knowledge of DNS for
the network administrator of a presumably large ISP. I do not feel
this is an inappropriate burden.
If emerging ISPs had better DNS infrastructures, it would be trivial
for a channel administrator to ban them if they experienced large
problems from those providers. While it is technically possible to
ban the offending ISPs' netblocks using CIDR notation, i feel it is an
unfair burden of the channel administrator to research every block the
provider owns. Additionally, with multiple providers, this may fill
the banlist quickly.
In the event an innocent user suffers at the hands of their ignorant
ISP, the +r exemption comes into play. I think this is as near a
CAPTCHA as one can hope in such an event. Clearly a channel mode that
may prevent users from joining a channel based on decision they have
little power over should not be in place on official help channels.
"Make a script, you lazy jerk!"
The only way to implement this feature on the client-side is to parse
on-join events, apply a regex to the host, and make a decision. This
works, but causes two problems:
* With a sufficiently large channel, the ban list will fill.
* With a sufficiently large channel, the scrollback buffer of the
client will fill (or at least become a burden on the conversation --
join, kick, ban. join, kick, ban. join, kick, ban)
Also, this doesn't take into account +r umode. An automated system
would have to WHOIS each user and parse those results as well.
With a new channel mode, there is only ever 1 line, the mode change,
and no bans are required.
I expect the largest amount of criticism will come from the "there are
plenty of annoying users who have resolvable hosts" crowd. I agree,
we'll never be able to filter out all of them. The same argument was
probably used against +R. Some users have registered nicknames and
still spam. There's no silver bullet, but we can always strive to
improve. Also, if the mode isn't appropriate for your channel, you
don't have to set it! ;)
Cheers,
--adam / killer