UnrealIRCd 6.1.8.1 released
Status: Beta
Brought to you by:
wildchild
From: Bram M. <sy...@un...> - 2024-10-18 09:44:56
|
UnrealIRCd 6.1.8.1 is a dot release, it fixes two bugs in 6.1.8: * If you have a vhost block without vhost::login, because you use the new auto-vhost functionality, then the IRCd will crash upon processing regular VHOST requests. * Strings were accidentally being lowercased in vhost::vhost, blacklist::reason and some other places. The 6.1.8.1 release is mostly for new installs. Existing 6.1.8 users can fix the two bugs without needing to restart by running: |./unrealircd hot-patch auto-vhost-618| For all the other fixes and new functionality, see the 6.1.8 release notes below. As always, you can download UnrealIRCd from unrealircd.org <https://www.unrealircd.org/>. Do you like UnrealIRCd? Consider making a donation <https://www.unrealircd.org/index/donations> or order something from the shop <https://shop.unrealircd.org>. Enhancements: * New Extended ban <https://www.unrealircd.org/docs/Extended_bans#Group_4:_special> to inherit channel bans from another channel: o If in channel |#test| you add |+b ~inherit:#main| then anyone banned in |#main| will be unable to join |#test|. o This only applies for on-join ban checking, not for quiet bans, nick-changes, text bans, etc. o If the other channel (|#main| in this example) also has |~inherit| bans then we do not follow these (no nesting). o The maximum number of ~inherit bans in a channel is limited to only 1 by default, see set::max-inherit-extended-bans <https://www.unrealircd.org/docs/Set_block#set::max-inherit-extended-bans> o This can also be used in |+I|, which entries are counted separately and have their own limit. * Vhosts <https://www.unrealircd.org/docs/Vhost_block>: We now support vhost::auto-login, which means you can set vhosts on users automatically and we support variables in vhost::vhost (this works similar to Gottem's autovhost module) o An example would be: |/* Give users who identify to Services using SASL a nice vhost */ vhost { auto-login yes; vhost $account.users.example.net; mask { identified yes; } }| o On-connect we will go through all vhost blocks that have auto-login set to yes. Blocks are processed in the same order as they are in the config (top-down). The first match wins. o Note that you could already use Services to do this task. This is just an extra feature so you can also do it in UnrealIRCd itself. o The variables that are supported now use a generic framework called Standard variables <https://www.unrealircd.org/docs/Standard_variables> o At the moment these can be used in vhost::vhost, oper::vhost, blacklist::reason and set::oper-vhost * New option set::oper-vhost <https://www.unrealircd.org/docs/Set_block#set::oper-vhost> which sets a default oper::vhost. For example: |set { oper-vhost $operclass.admin.example.net; }| o If both set::oper-vhost and oper::vhost are present, the oper::vhost takes precedence. * In the ban ip { } <https://www.unrealircd.org/docs/Ban_IP_block> and the ban nick { } <https://www.unrealircd.org/docs/Ban_nick_block> blocks you can now have multiple masks. * JSON-RPC <https://www.unrealircd.org/docs/JSON-RPC>: o New call |log.send| <https://www.unrealircd.org/docs/JSON-RPC:Log#log.send> to send a log message / server notice. Fixes: * In some circumstances users could hang during the handshake when their DNS lookup result was cached and using c-ares 1.31.0 or later (which was released on June 18 2024 and shipped with UnrealIRCd 6.1.7 to be used as a fallback for systems which don't have the c-ares library installed). * Websockets of type 'text' had IRC messages from server to client cut off too early when message tags were in use. Type 'binary' was unaffected. * The require authentication { } block <https://www.unrealircd.org/docs/Require_authentication_block> was broken in 6.1.7.*. * JSON-RPC <https://www.unrealircd.org/docs/JSON-RPC> call |spamfilter.get| could not retrieve information about config-based spamfilters. * The |decode_authenticate_plain()| was reading OOB. This function is not used by UnrealIRCd itself but could affect third party modules. * Crash on invalid server-to-server command regarding |REHASH| (This only affected trusted linked servers) Changes: * Security group blocks <https://www.unrealircd.org/docs/Security-group_block> are now hidden in lists by default. If you want the security group to be shown in things like |MODE #channel +b ~security-group:x| (which shows a list) then you need to use |public yes;|. The default security groups like known-users, webirc-users, etc. are public by default. * When retrieving cold or hot patches we now do proper GPG/PGP checks. Just like we do on |./unrealircd upgrade| * Update shipped libraries: c-ares to 1.33.1 * Move +/- 1000 lines of code from core to modules (regarding throttling, maxperip, vhost, exit_client). Developers and protocol: * The |MD| S2S command now supports |BIGLINES|, allowing synching of 16K serialized moddata per entry. We don't plan to use this anytime soon, this is mostly so all UnrealIRCd servers support this in a year or two. However, if you do plan to serialize big moddata results in your third party module then be sure all UnrealIRCd servers are on 6.1.8 or higher to prevent cut-off. |