What's new in UnrealIRCd 5

Below are the brief release highlights. The full release notes are available here and cover a lot more new features and other changes.


 * Channel history. You can now see the last couple of lines that have been said on channels when you JOIN. For this you need to set channel mode +H, eg: eg:
 * More IRCv3 features. Additional details are communicated to clients which may help with displaying information. Implemented specs are: account-tag, message-ids, time, echo-message, labeled-response and BATCH.
 * Ban exceptions (/ELINE). You can now exempt users dynamically on IRC from *LINES, spamfilter, throttling, blacklist checking, connection floods, bypassing antirandom, etc. Just type  on IRC to see details.
 * *LINES and Spamfilters are remembered: All of these are saved to a file every few minutes and saved across reboots. This uses the new tkldb module (loaded by default). No need for services for that anymore.
 * Persistent channels are remembered: For channels which have mode +P set we now save all channel settings across reboots (topic, regular modes and +beI lists). This via the channeldb module (loaded by default).
 * Anti connect-flood measures. In the last few 4.2.x versions we introduced Connthrottle and reputation. In 5.x these modules are now loaded by default for increased security.
 * Easily restrict commands to fight drones. You can now disable any command or impose restrictions, such as: command can only be executed after being connected for XX seconds, or if you are identified to services, etc. See the example for how to restrict LIST, INVITE and messaging.
 * Module manager for managing 3rd party modules easily. Install and update modules with a single command.
 * Conditional configuration. You can  and then use   everywhere in the configuration file. Similarly, support for  -blocks. This is especially useful for advanced users who like to use the same configuration file on multiple machines, usually with the help of remote includes.
 * Improved Channel Mode +L now kicks in for any rejected join, so not just for +l but also for +b, +i, +O, +z, +R and +k. For example, if the channel is +L #insecure and also +z, then when an insecure user ties to join they will be redirected to #insecure.
 * Ban forwards. New extended ban ~f to forward users to the specified channel if the ban matches. Example:
 * Improved WebSocket support. We already supported websockets, but now we support websocket type 'text', which is compatible with web IRC clients such as Kiwi IRC.
 * Code cleanups. The biggest effort of all went into cleaning up old code and making the code much more readable. This also means that UnrealIRCd 5 will not be able to link with really older servers or services, like UnrealIRCd 3.2.x.
 * Windows version is 64-bits. This should allow for increased address space and security. This also means UnrealIRCd 5 will not run on 32-bits Windows (should be rare nowadays, anyway)