What's new in UnrealIRCd 4/en


 * You decide what to load. We have moved as much functionality as possible to 150+ individually loadable modules (commands, user modes, channel modes, extbans, snomasks, ..). You decide which features your UnrealIRCd should have.
 * Fine-grained IRCOp privileges. The way IRCOp privileges are granted has been redone entirely. This allows you to configure oper privileges on a very detailed level. You don't want OperOverride? You don't want opers to see secret channels? Or you want an oper with a very minimal set of privileges? This is all possible.
 * Wiki. Documentation has been moved to a wiki. It's even better than before and more accessible to people who are new to IRCd's. The wiki also allows easy translation by community members.
 * New directory structure. On *NIX the IRCd is now always installed to a different directory than where you compile from (~/unrealircd by default). No more mess. On both *NIX and Windows configuration files go in conf/, modules go in modules/, etc.. Configuration files can be identical on Windows and *NIX. This new directory structure also allows more easy packaging.
 * New I/O system using kqueue & epoll. The IRCd can now handle thousands of users more easily.
 * Improved SSL/TLS support. SSL has always been a major feature in UnrealIRCd but has been enhanced. SSL client certificate fingerprints are visible in /WHOIS, a certfp extban (~S:certificatefingerprint) has been added, better defaults, etc.
 * DNS Blacklist support (DNSBL/RBL). Great for combating drones and other abusers.
 * Better and more helpful error messages. Especially regarding the configuration file.
 * More modern server-to-server protocol. Such as using UID/SID's. Resulting in less desynch. issues.
 * Lowering the bar for Spamfilter. You can now choose between 'regex' and 'simple' matching. Simple matching allows using the usual '?' and '*' wildcards that everyone knows about. The regex engine has been moved from TRE to PCRE (=about twice as fast).
 * Configuration is more logical. Around 30% of the configuration blocks have been restructured. Don't worry, we include an UnrealIRCd 3.2.x to 3.4.x configuration file converter.
 * Easier 3rd party module management. On *NIX you now just put your 3rd party modules in src/modules/third and then each time you run 'make' they will be compiled if needed.
 * Easier upgrading. On *NIX, when upgrading to a new version, ./Config will ask you to import settings from a previous installation, remembering your installation directory and other settings. It will also copy the 3rd party modules from the old to the new installation and re-compile them.
 * More secure. Even better secure defaults, more warnings about insecure behavior, ..

For developers:
 * Easier source navigation. Because we moved almost everything to modules, it's now much easier to see all the code of one particular feature.
 * Cleaner code. There have been a lot of source code cleanups. Code has been restructured or rewritten. Old irrelevant code has been deleted.
 * Development documentation can be found on the wiki. We explain how to write a module in C and list all the details on the various Module API's such as how to write commands, channel modes, plug-in by using Hooks, etc...