UnrealIRCd 6.0.7 makes WHOWAS show more information to IRCOps and adds an experimental spamfilter feature. It also contains other enhancements and quite a number of bug fixes. One notable change is that on linking of anope or atheme, every server will now check if they have ulines { } for that services server, since it's a common mistake to forget this, leading to desyncs or other weird problems.


  • Spamfilter can now be made UTF8-aware:
    • This is experimental, to enable: set { spamfilter { utf8 yes; } }
    • Case insensitive matches will then work better. For example, for extended Latin, a spamfilter on ę then also matches Ę.
    • Other PCRE2 features such as \p can then be used. For example the regex \p{Arabic} would block all Arabic script. See also this full list of scripts. Please use this new tool with care. Blocking an entire language or script is quite a drastic measure.
    • As a consequence of this we require PCRE2 10.36 or newer. If your system PCRE2 is older, then the UnrealIRCd-shipped-library version will be compiled and ./Config may take a little longer than usual.
  • WHOWAS now shows IP address and account information to IRCOps
  • Allow services to send a couple of protocol messages in the unregistered / SASL stage. These are: CHGHOST, CHGIDENT and SREPLY
    • This allows services to set the vhost on a user during SASL, so the user receives the vhost straight from the start, before all the auto-joining/re-rejoining of channels.
    • Future anope/atheme/etc services will presumably support this.
  • WebSocket status is now synced over the network and an extra default security group websocket-users has been added. Similarly there is now security-group::websocket and security-group::exclude-websocket item. Same for mask items such as in set::restrict-commands::command::except.
  • Support for IRCv3 Standard Replies. Right now nothing fancy yet, other than us sending ACCOUNT_REQUIRED_TO_CONNECT from the authprompt module when a user is soft-banned.
  • Add support for sending IRCv3 Standard Replies intra-server, eg from services (SREPLY server-to-server command)
  • Support NO_COLOR environment variable, as per no-color.org.


  • We now verify that all servers have ulines { } for Anope and Atheme servers and reject the link if this is not the case.
  • The FLOOD_BLOCKED log message now shows the target of the flood for target-flood-user and target-flood-channel.
  • When an IRCOp sets +H to hide ircop status, only the swhois items that were added through oper will be hidden (and not the ones added by eg. vhost). Previously all were hidden.
  • Update shipped libraries: c-ares to 1.19.0, Jansson to 2.14, PCRE2 to 10.42, and on Windows LibreSSL to 3.6.2 and cURL to 8.0.1.


  • Crash if a third party module is loaded which allows very large message tags (e.g. has no length check)
  • Crash if an IRCOp uses unrealircd.org/json-log on IRC and during REHASH some module sends log output during MOD_INIT (eg. with some 3rd party modules)
  • Crash when parsing deny link block
  • The Module manager now works on FreeBSD and similar.
  • In LUSERS the "unknown connection(s)" count was wrong. This was just a harmless counting error with no other effects.
  • Silence warnings on Clang 15+ (eg. Ubuntu 23.04)
  • Don't download GeoIP.dat if you have blacklist-module geoip_classic;
  • Channel mode +S stripping too much on incorrect color codes.
  • Make @if module-loaded() work correctly for modules that are about to be unloaded during REHASH.
  • Some missing notices if remotely REHASHing a server, and one duplicate line.
  • Check invalid host setting in oper::vhost, just like we already have in vhost::vhost.


Friday, March 24, 2023

« Back

Powered by WHMCompleteSolution