Undernet News
Find the latest news about Undernet IRC Network.
Posted on 31st Aug 2024 16:53:44 in X, Channel Services, Undernet
Join Limiting
A new channel protection feature to temporarily set configured channel modes when a joinflood threshold is met from clients that do not use identd and are not authenticated to X.
This join limiting capability will allow X to prevent large floodnets from joining, allowing client scripts (and bots) to respond more easily as required.
When JOINLIM is ON and JOINMAX (JOINS) unidented and unauthed clients join within JOINMAX (SECS) seconds, set JOINMODE for JOINPERIOD seconds.
Examples
Example 1
Set mode +r for 5 minutes (300 seconds) when 3 unidented and unauthed clients join within 1 second:/msg x set #testchan joinmax 3:1
/msg x set #testchan joinmode +r
/msg x set #testchan joinperiod 300
/msg x set #testchan joinlim on
After 300 seconds of the joinflood being triggered, the +r channel mode will be removed.
Example 2
Set mode +mb *!~*@* for 3 minute (180 seconds) when 5 unidented and unauthed clients join within 2 seconds:/msg x set #testchan joinmax 5:2
/msg x set #testchan joinmode +mb *!~*@*
/msg x set #testchan joinperiod 180
/msg x set #testchan joinlim on
After 180 seconds of the joinflood being triggered, the +mb *!~*@* channel modes will be removed.
Supported Modes
The allowed JOINMODE modes are: +DbcCikmrs
For channel mode l(imit), k(ey) or b(an), the limit, key or banmask must be provided.
If modes are used that still allow some matching clients to join within JOINPERIOD, the period will be reset each time those clients join.
Default Values
If JOINLIM is enabled without manually changing JOINMAX, JOINMODE, and JOINPERIOD, the below defaults will be used:
JOINMAX: 3:1
JOINMODE: +rb *!~*@*
JOINPERIOD: 180
Netsplit Merging
Joins resulting in a netmerge following a netsplit will not trigger this join-limiting feature. Only legitimate channel joins are counted.
Configuration is available to Level 450+ and is documented in the SET command here: https://www.undernet.org/docs/x-commands-english
We hope this new feature is useful to you, and we thank Telac and MrIron for the coding effort!
If you have any questions, please feel free to ask in #cservice