Hi All!
Last weekend I created the first release candidate for our next major feature release: ngIRCd 21~rc1.
There have been more than 220 individual commits since our last "feature release" ngIRCd 20 last December, and the NEWS file lists 17 new features, including new configuration options, new commands, better help, and enhanced support for SSL -- among others:
• Actually KILL clients on GLINE/KLINE. (Closes bug #156) • Add support to show all user links using the "STATS L" (uppercase) command (restricted to IRC Operators). • Implement configurable SSL cipher list selection for GnuTLS and OpenSSL using the new configuration option "CipherList". In addition, this changes the defaults to more secure values: "HIGH:!aNULL:@STRENGTH" for OpenSSL, and "SECURE128" for GnuTLS. • Show connection flag "s" (SSL) in RPL_TRACE{LINK|SERVER} messages: now you can check if a server-to-server link is SSL-encrypted or not using the IRC "TRACE" command. • Implement the new configuration option "DefaultUserModes" which lists user modes that become automatically set on new local clients right after login. Please note that only modes can be set that the client could set on itself, so you can't set "a" (away) or "o" (IRC Op), for example! User modes "i" (invisible) or "x" (cloaked) etc. are "interesting", though. (Closes bug #160) • Add support for the new METADATA "account" property, which allows services to automatically identify users after netsplits and across service restarts. • Implement a new configuration option "AllowedChannelTypes" that lists all allowed channel types (channel prefixes) for newly created channels on the local server. By default, all supported channel types are allowed. If set to the empty string, local clients can't create new channels at all, which equals the old "PredefChannelsOnly = yes" setting. This change deprecates the "PredefChannelsOnly" variable, too, but it is still supported and translated to the appropriate "AllowedChannelTypes" setting. When the old "PredefChannelsOnly" variable is processed, a warning message is logged. (Closes bug #152) • Add support for "client certificate fingerprinting". When a client passes an SSL certificate to the server, the "fingerprint" will be forwarded in the network which enables IRC services to identify the user using this certificate and not using passwords. • Implement a new configuration option "IncludeDir" in the "[Options]" section that can be used to specify a directory which can contain further configuration files and configuration file snippets matching the pattern "*.conf". These files are read in after the main server configuration file ("ngircd.conf" by default) has been read in and parsed. The default is "$SYSCONFDIR/ngircd.conf.d", so that it is possible to adjust the configuration only by placing additional files into this directory. (Closes bug #157) • Add Travis-CI configuration file (".travis.yml") to project. • ngIRCd now accepts user names including "@" characters, saves the unmodified name for authentication but stores only the part in front of the "@" character as "IRC user name". And the latter is how ircd2.11, Bahamut, and irc-seven behave as well. (Closes bug #155) • Lots of IRC "information functions" like ADMIN, INFO, ... now accept server masks and names of connected users (in addition to server names) for specifying the target server of the command. (Closes bug #153) • Implement a new configuration option "IdleTimeout" in the "[Limits]" section of the configuration file which can be used to set a timeout in seconds after which the whole daemon will shutdown when no more connections are left active after handling at least one client. The default is 0, "never". This can be useful for testing or when ngIRCd is started using "socket activation" with systemd(8), for example. • Implement support for systemd(8) "socket activation". • Enable WHOIS to display information about IRC Services using the new numeric 310(RPL_WHOISSERVICE) This numeric is used for this purpose by InspIRCd, for example -- but as usual, other numerics are in use, too, like 613 in UltimateIRCd ... Please note that neither the Operator (+o) not the "bot status" (+B) of an IRC service id displayed in the output. • Update systemd(8) example configuration files in ./contrib/ directory: the "ngircd.service" file now uses the "forking" service type which enhances the log messages shown by "systemctl status ngircd.service", and the new "ngircd.socket" file configures a systemd socket that configures a socket for ngIRCd and launches the daemon on demand. • Enhance help system and the HELP command: now a "help text file" can be set using the new configuration option "HelpFile" ("global" section), which is read in and parsed on server startup and configuration reload, and then is used to output individual help texts to specific topics. Please see the file ./doc/Commands.txt for details.
Please test this release candidate and report all problems, errors, and regressions you encounter! Best is to file bugs and feature requests here:
ngIRCd Bug Tracker: http://ngircd.barton.de/bugzilla/
You can find more information on our homepage at http://ngircd.barton.de/ and its mirror http://ngircd.berlios.de/. The primary download locations are:
• ftp://ftp.berlios.de/pub/ngircd/ • http://ngircd.barton.de/pub/ngircd/
Thanks to all people contributing code, ideas, and bug reports!
Most probably there will be a second release candidate, and afterwards a new stable release.
Have fun!
Alex