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.
|