This is UnrealIRCd 6.1.0 stable. It is the direct successor to 6.0.7, there will be no 6.0.8.
This release contains several channel mode +f
enhancements and introduces a new channel mode +F
which works with flood profiles like +F normal
and +F strict
. It is much easier for users than the scary looking mode +f
.
UnrealIRCd 6.1.0 also contains lots of JSON-RPC improvements, which is used by the UnrealIRCd admin panel. Live streaming of logs has been added and the webpanel now communicates to UnrealIRCd which web user issued a command (e.g.: who issued a kill, who changed a channel mode, ..).
Other improvements are whowasdb (persistent WHOWAS
history) and a new guide on running a Tor Onion service. The release also fixes a crash bug related to remote includes and fixes multiple memory leaks.
+F
(uppercase F). This allows the user to choose a "flood profile", which (behind the scenes) translates to something similar to an +f
mode. This so end-users can simply choose an +F
profile without having to learn the complex channel mode +f
.+F normal
effectively results in [7c#C15,30j#R10,10k#K15,40m#M10,8n#N15]:15
+f
will override the ones of the +F
profile. To see the effective flood settings, use MODE #channel F
.set::anti-flood::channel::default-profile
. This profile is used if the channel is -F
. If the user does not want channel flood protection then they have to use an explicit +F off
.+f
or +F
detect that a flood is caused by >75% of "unknown-users", the server will now set a temporary ban on ~security-group:unknown-users
. It will still set +i
and other modes if the flood keeps on going (e.g. is caused by known-users).+f
/+F
.+f
/+F
join-flood protection for 75 seconds (set::anti-flood::channel::split-delay
). This because a server splitting could mean that server has network problems or has died (or restarted), in which case the clients would typically reconnect to the remaining other servers, triggering an +f
/+F
join-flood and channels ending up being +i
and such. That is not good because UnrealIRCd wants +f
/+F
to be as effortless as possible, with as little false positives as possible.0
. This because in such a scenario only 1/5th (20%) of the users would reconnect and hopefully don't trigger +f
/+F
join floods.whowasdb
(persistent WHOWAS
history): this saves the WHOWAS
history on disk periodically and when UnrealIRCd terminates, so next server boot still has the WHOWAS
history. This module is currently not loaded by default.listen::spoof-ip
, only valid when using UNIX domain sockets (so listen::file
). This way you can override the IP address that users come online with when they use the socket (default was and still is 127.0.0.1
).listen::spoof-ip
and optionally requires a services account.+R
) has been improved, it now shows:channel.list
, channel.get
, user.list
and user.get
now support an optional argument object_detail_level
which specifies how detailed the Channel and User response object will be. Especially useful if you don't need all the details in the list calls.log.subscribe
and log.unsubscribe
to allow real-time streaming of JSON log events.rpc.set_issuer
to indiciate who is actually issuing the requests. The admin panel uses this to communicate who is logged in to the panel so this info can be used in logging.rpc.add_timer
and rpc.del_timer
so you can schedule JSON-RPC calls, like stats.get, to be executed every xyz msec.whowas.get
to fetch WHOWAS
history.unrealircd.org/issued-by
which is IRCOp-only (and used intra-server) to communicate who actually issued a command. See docs.modules.list
. The default configuration does NOT enable the webserver nor does it cause listening on any socket for RPC, for that you need to follow the JSON-RPC instructions.blacklist-module rpc/*;
set::anti-flood::channel::boot-delay
.127.0.0.1
and ::1
from banning by default (hardcoded in the source). Previously UnrealIRCd exempted whole 127.*
but that gets in the way if you want to allow Tor with a require authentication block or soft-ban. Now you can just tell Tor to bind to 127.0.0.2
so its not affected by the default exemption.WHOWAS
WSOP_PONG
frame is unmasked (now permitted).cmode.free_param
definition changed. It now has an extra argument int soft
and for return value you will normally return 0
here. You can return 1
if you resist freeing, which is rare and only used by +F
with set::anti-flood::channel::default-profile.cmode.flood_type_action
which can be used to indicate a channel mode can be used from +f/+F as an action. You need to specify for which flood type your mode is, e.g. cmode.flood_type_action = 'j';
for joinflood.\n
(newline) so multiple parallel requests can be handled properly.unrealircd.org/issued-by
, sent to IRCOps only. See docs.Please login to add feedback.
This update has been submitted for testing by robert.
This update's test gating status has been changed to 'ignored'.
robert edited this update.
robert edited this update.
This update has been pushed to testing.
This update has been submitted for stable by bodhi.
This update has been pushed to stable.