What's new in UnrealIRCd 5

From UnrealIRCd documentation wiki
Jump to navigation Jump to search

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: /MODE #chan +H 15:1440
  • 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 /ELINE 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).
  • Reputation score and anti connect-flood measures. In 5.x reputation is used in many places to increase security and to combat spambots.
  • 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 @define $IP "" and then use $IP everywhere in the configuration file. Similarly, support for @if-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 acts on 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: MODE #chan +b ~f:#badisp:*!*@*.isp.org
  • 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)