View Issue Details

IDProjectCategoryView StatusLast Update
0002296unrealircdpublic2007-04-27 05:32
Reporteraquanight Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionno change required 
Product Version3.2.2 
Summary0002296: Mask type for textflood bans.
DescriptionTextflood with the ban action currently places a ban on the user's exact hostname (mask 2 on most clients/services). I think it may be useful if users where able to use a different mask (eg, not effect innocent users which can happen with hostname bans, but is less likely with, for example a user@hostname ban).

Like maybe something like this:

OP sets mode: +f [5t#b3]:10
Joins: nick ([email protected])
<nick> flood
<nick> flood
--SNIP--
Server Mode: +b *[email protected]
nick was kicked by server (Flooding (Limit is 5 lines in 10 seconds))

Though this does get confusion with the "unsettime" field in that part of the floodstring, so if you have a better idea... :) .

As another possiblity (maybe even something to go along side if you find a better spot for the mask field :) ), enable the server to respond to textflood by setting a quiteban (~q) isntead of kick+ban, in which case it may make sense to make use of the unset time field... :) . Example: +f [5t#q5]:10 will mean that when a user floods 5 lines in 10 seconds, he is quitebanned (but not kicked) in the channel for 5 minutes (or an op removes the quietban manually).
Steps To Reproduce- Set +f [Xt#b]:Y where X and Y are two numbers.
- Generate a textflood suitable to trigger the flood protection.
- Server will set a hostname ban and kick the user :) .
3rd party modules

Activities

codemastr

2005-01-21 23:51

reporter   ~0008878

I'm not sure about this. We need to draw the line somewhere. I'm all for providing flood protection directly in the IRCd, but the more complex it becomes, the more bugs there will be, the slower it will be, and the more memory it will use. There are many things that would be very nice to have in +f, but I'm just not sure we want to complicate it that much more than it already is. Most people are confused by it already!

aquanight

2005-01-22 00:50

reporter   ~0008880

Well I guess a good first step for the first bit is something like set::textflood-bantype (ie, conf-defined), making it just use the same thing for all textflood bans. As for the second bit, it's just adding another possible action to the textflood type... :)

Stealth

2005-01-22 00:52

reporter   ~0008881

I wouldnt mind this in ./Config

aquanight

2005-01-22 12:13

reporter   ~0008886

The thing with putting it in ./Config is that really should be used only for things that can't be changed on the fly, such as enabling SSL, etc. If this were added as a config option, it could very easily work in unrealircd.conf. True it probably should be the same across the network, but we don't put cloakkeys/cloakprefix/networkname/etc in ./Config, now do we? :P

syzop

2005-01-25 17:11

administrator   ~0008914

I'm not really in favor of this bantype thing, but the +b ~q option (has been suggested before I think?) sounds like a good idea :)
I've also seen people suggesting a +b action for the other flood types (like +b&kick on X ctcps in YY secs).. it all sounds nice but I don't know yet, I like it, but there might be implementation arguments against it... ;p

What I'm really not in favor of is more timers! Like 0002294 (server timed bans), or more specificly your suggestion of 5t#q5. I think the current timer stuff (auto -X mode) is bad enough (but necessary evil, in case ops are away).

On a sidenote, every new option has to be implemented in a backward compatible way.

aquanight

2005-01-25 17:58

reporter   ~0008917

Yes, I forgot that timers can be a pain in the *!#@$) in something that is technically single-threaded :) . And in the case of t#q, it only affects (or at least, should affect) one person, unlike c#C that affects everyone... but yeah... also, the only thing about like kick(ban) for the others is since they're global counts, who gets kick(banned)? The one who sent the last CTCP/msg/nickchange/whatever? Everyone who contributed? I suppose a good idea is if one person sets off a "global count" flood by himself, instead treat it as a textflood and do the kick(ban)... ?

syzop

2005-01-25 18:04

administrator   ~0008919

@global timers.. see, implementation details ;p. It could well be that that the reason was I decided not to implement it... since that's indeed undoable (unless of course you kick the "last person that did it", but that's not that useful/nice)

@singlethreaded.. well, you wouldn't want 1000 threads running anyway ;). Threads are light, but not THAT light :P.

To summarize, I'll think about +b ~q, but it could well end up in next release.. that would depend on time (things like +I and a couple of other things are more important) & backward compatible (probably not a problem in this case, but haven't looked at the code).

Issue History

Date Modified Username Field Change
2005-01-21 19:08 aquanight New Issue
2005-01-21 23:51 codemastr Note Added: 0008878
2005-01-22 00:50 aquanight Note Added: 0008880
2005-01-22 00:52 Stealth Note Added: 0008881
2005-01-22 12:13 aquanight Note Added: 0008886
2005-01-25 17:11 syzop Note Added: 0008914
2005-01-25 17:58 aquanight Note Added: 0008917
2005-01-25 18:04 syzop Note Added: 0008919
2007-04-27 05:32 stskeeps Status new => closed
2007-04-27 05:32 stskeeps Resolution open => no change required