Hello all!
After two release candidates, here it is, the next major release of ngIRCd, the free, portable and lightweight Internet Relay Chat server for small or private networks: Release 26!
This release contains all fixes and enhancements since ngIRCd 25, please see the ChangeLog file for a detailed list of all changes. You can find it online here: https://github.com/ngircd/ngircd/blob/rel-26/ChangeLog
The NEWS file (https://github.com/ngircd/ngircd/blob/rel-26/NEWS) lists the following new features since ngIRCd 25:
• Add AppStream metadata file (contrib/de.barton.ngircd.metainfo.xml).
• Various bug fixes, see the ChangeLog. No new or changed functionality.
• Allow up to 512 characters per line in MOTD and help text files (but keep in mind that lines can't get that long, because they have to be prefixed before being sent to the client). But this allows for more fancy MOTDs :-) Closes #271.
• Show the actually allowed channel types in the ISUPPORT(005) numeric which are configured by the "AllowedChannelTypes" configuration variable. Closes #273.
• Handle commands in the read buffer before reading more data and don't wait for the network in this case: If there are more bytes in the read buffer already than a single valid IRC command can get long (513 bytes), wait for this/those command(s) to be handled first and don't try to read even more data from the network (which most probably would overflow the read buffer of this connection soon).
• Log G-/K-Line changes only when not initiated by a server: this prevents the log from becoming spammed during "net bursts".
• Update test suite to include SSL tests, including checking for reloading certificates during runtime.
• Add support for GnuTLS certificate reload, which is quite handy when using Let's Encrypt, for example. Until now this was only supported when linked with OpenSSL. Thanks a lot, Hilko Bengen bengen@hilluzination.de!
• Allow setting arbitrary channel modes in the configuration file by handling them like in MODE commands, and allow multiple "Modes =" lines per [Channel] section. Thanks to Michi michi+ngircd@dataswamp.org! Closes #55.
• Add "FNC" (forced nick changes) to ISUPPORT(005) numeric. Most probably this doesn't make any difference to any client, but it seems correct. See http://www.irc.org/tech_docs/005.html for details.
• Enhance handling of command line errors, and return with exit code 0 ("no error") when "--help" or "--version" is used (which resulted in exit code 1, "error" before). Exit with code 2 ("command line error") for all other invalid command line options, and show the error message itself on stderr (instead of stdout and exit code 1, "generic error", as before). This new behavior is more in line with the GNU "coding standards", see https://www.gnu.org/prep/standards/html_node/_002d_002dhelp.html.
• Add ./contrib/nglog.sh: This script parses the log output of ngircd(8), and colorizes the messages according to their log level. Example usage: ngircd -f $PWD/doc/sample-ngircd.conf -np | ./contrib/nglog.sh
• Enlarge buffers of info texts to 128 bytes. This includes: • "Real name" of a client (4th filed of the USER command). • Server info text ("Info" configuration option). • Admin info texts and email address ("AdminInfo1", "AdminInfo2" and "AdminEmail" configuration options). • Network name ("Network" configuration option). The limit was 64 bytes before ... Closes #258.
You can download ngIRCd 26~rc1 from the download section on our homepage at https://ngircd.barton.de (mirror: https://ngircd.sourceforge.io). The primary download locations are:
• https://github.com/ngircd/ngircd/releases • https://ngircd.barton.de/pub/ngircd/ • https://ngircd.sourceforge.io/pub/ngircd/
Thanks a lot to all contributors & testers!
Stay safe and have fun! Alex