ngIRCd - Next Generation IRC Server
http://ngircd.barton.de/
- (c)2001-2020 Alexander Barton and Contributors.
+ (c)2001-2024 Alexander Barton and Contributors.
ngIRCd is free software and published under the
terms of the GNU General Public License.
-- ChangeLog --
-ngIRCd 26
-
- ngIRCd 26~rc2
+ngIRCd 27
+
+ - No longer use a default built-in value for the "IncludeDir" directive when
+ a configuration file was explicitly specified on the command line using
+ "--config"/"-f": This way no default include directory is scanned when a
+ possibly non-default configuration file is used which (intentionally) did
+ not specify an "IncludeDir" directive. So now you can use "-f /dev/null"
+ for checking all built-in defaults, regardless of any local configuration
+ files in the default drop-in directory (which would have been read in
+ until this change).
+ - The server "Name" in the "[Global]" section of the configuration file no
+ longer needs to be set: When not set (or empty), ngIRCd now tries to
+ deduce a valid IRC server name from the local host name ("node name"),
+ possibly adding a ".host" extension when the host name does not contain a
+ dot (".") which is required in an IRC server name ("ID").
+ This new behaviour, with all configuration parameters now being optional,
+ allows running ngIRCd without any configuration file at all.
+ - autogen.sh: Prefer automake 1.11 over other releases because this is the
+ last release supporting "de-ANSI-fication" using the included ansi2knr tool.
+ And because we _want_ to support old K&R platforms, we try hard to use this
+ release of automake when available to generate our build system.
+ Note: This is only relevant for you if you are building from Git sources.
+ - Autodetect support for IPv6 by default: Until now, IPv6 support was disabled
+ by default, which seems a bit outdated in 2024. Note: You still can pass
+ "--enable-ipv6"/"--disable-ipv6" to the ./configure script to forcefully
+ activate or deactivate IPv6 support.
+ - Update config.guess and config.sub to recent versions
+ - Remove the unmaintained contrib/MacOSX/ folder: this includes the Xcode
+ project as well as the outdated macOS "Package Maker" configuration. The
+ sample launchd(8) configuration properties list file was moved to
+ "contrib/de.barton.ngircd.plist" and kept.
+ - Fix Channel Admins being able to to set Channel Owner status! "Sarah"
+ reported this back in April 2021 and proposed a patch, thanks a lot!
+ - Test suite: Update for OpenSSL 3.x, some command outputs changed.
+ - Fix showing the "Ident" option in "--configtest" output which was never
+ shown because of a coding error. Whoops!
+ - Change GnuTLS "slot handling" messages to debug level: Those messages are
+ about an internal implementation detail, not relevant for an administrator
+ of ngIRCd.
+ - Enlarge buffer for log messages: For example, SSL/TLS certificate
+ information can easily get longer than 256 characters. So enlarge the log
+ buffer to 1 KB.
+ - Respect "SSLConnect" option for incoming connections and do not accept
+ incoming plain-text ("non SSL") server connections for servers configured
+ with "SSLConnect" enabled. This change prevents an authenticated
+ client-server being able to force the server-server to send its password
+ on a plain-text connection when SSL/TLS was intended.
+ - Add "hopm.service" to "Wants" and "Before" dependencies in the sample
+ systemd unit file (Hopm is the successor of Bopm).
+ - Return ERR_NOTEXTTOSEND on empty PRIVMSG content, which matches the
+ behaviour of other servers.
+ - Add a new option "Autojoin" to [Channel] blocks: When it is set, ngIRCd
+ automatically joins all local users to this channel on connect. Note: The
+ users must have permissions to access the channel, otherwise joining them
+ will fail!
+ Thanks Ivan Agarkov <i_agarkov@wargaming.net> for the initial patch!
+ - Hide +i users on "WHOIS <pattern>": Let's behave like most(?) other IRC
+ daemons (at least ircd2.11) and hide all +i users when WHOIS is used with a
+ pattern. Otherwise privacy of this users is not guaranteed and the +i mode
+ a bit useless ...
+ Reported by Cahata on #ngircd, thanks!
+ - Update the final "closing connection" message: Add some more information
+ like nick name, user name, host name and bring it in line with some other
+ implementations (at least ircd2.11 and Hybrid).
+ - Fix RPL_INVITING message: All numeric replies must originate from an IRC
+ server, never from a client. Thanks "tommyrot" for reporting this!
+ Closes #307.
+ - Enhance some log messages, for example for errors when accepting new
+ connections.
+ - Add "+DEBUG" to the version "feature string" only when the daemon is
+ ./configure'd and build with "--enable-debug".
+ - Always report an error when a parameter is missing in a channel "MODE +k"
+ or "MODE +l" command, and better validate their parameters: return the new
+ numeric ERR_INVALIDMODEPARAM_MSG(696) on errors.
+ Thanks Val Lorentz for reporting it!
+ Closes #290.
+ - Allow IRC Operators to use the WHO command on any channel.
+ - No longer use Travis-CI, add configuration for "ngIRCd CI" GitHub Action.
+ - Send the NAMES list and channel topic to users "forcefully" joined to a
+ channel using NJOIN, like they joined on their own using JOIN, and
+ streamline the order of NAMES list and channel topic messages.
+ Closes #288.
+ - Fix (invalid) error messages when setting modes on local channels which
+ are defined in the configuration file.
+ - Fix handling of G-Lines/K-Lines with cloaked host names.
+ - Add new "-y"/"--syslog" command line option to allow logging to syslog to
+ be enabled/disabled separately from running on the console ("--nodaemon")
+ or in the background.
+ Thanks Katherine Peeters for the patch and pull request!
+ Closes #294.
+ - Fix a possible race condition while introducing new clients in the network.
+ - Update and enhance our documentation a bit (README.md, INSTALL.md), add
+ doc/QuickStart.md, convert some more files to Markdown (SSL.md, FAQ.md).
+
+ngIRCd 26.1 (2021-01-02)
+
+ - Fix a "format string" compiler warning (detected on OpenBSD).
+ - No longer set "AI_ADDRCONFIG" when resolving host names, even when it
+ exists: with this option set, on an IPv6-only host, we prevent 127.0.0.1
+ to get translated properly, even when the loopback interface has this
+ address configured! And as the test suite uses 127.0.0.1, it was broken
+ on IPv6-only hosts.
+ The drawback is that the resolver possibly returns more addresses now,
+ even of an unsupported/not connected address family; but this shouldn't
+ do much harm in practice, as ngIRCd iterates over all returned addresses
+ while trying to establish an outgoing connection.
+ Closes #281.
+ - Revert "Show allowed channel types in ISUPPORT(005) numeric only", which
+ was introduced in 26~rc1: This lead to some IRC clients assuming "oh, no
+ channel prefix characters at all, so no channels at all, so no PRIVMSG can
+ go to any channel" when "AllowedChannelTypes" was set to the empty string
+ ("") -- which is not the case when there are pre-defined channel set up or
+ other servers still having channels!
+ So "allowed channel types" != "supported channel types", and we always have
+ to list all supported ones in the ISUPPORT(005) numeric!
+ Closes #285.
+ - Test suite: Wait 2 seconds after reloading the daemon, which is required
+ because on reload, all listening ports are closed, configuration updated,
+ and then opened again. This lead to subsequent tests running while the
+ daemon isn't listening on any ports, and that's why some tests could fail.
+ Closes #280.
+ - platformtest.sh: Try to mangle CLang name more intelligently.
+ - Documentation: Fixed URLs of Atheme IRC services, updated all mentions
+ from CVS to Git, and updated Platforms.txt -- Oh, and it is 2021 now! ;-)
+
+ngIRCd 26 (2020-06-20)
+
+ ngIRCd 26~rc2 (2020-06-11)
+ - Add AppStream metadata file (contrib/de.barton.ngircd.metainfo.xml).
+ - Don't send invalid CHANINFO commands when a channel has mode +k set but no
+ key is known to the server. This can happen with a misconfigured predefined
+ channel, for example, and looked like this: "CHANINFO #test +Pk 0 :" --
+ note the unset key represented by the two spaces. Fix this by sending a
+ "*" in this case and update the CHANINFO documentation, too.
- ngircd.spec: Fix names of README.md and INSTALL.md, add ".md" extension.
- Update description texts in the README.md file, the RPM and Debian package
files and the manual page: bring them in line with the updated homepage.
- contrib/ngindent: Fix shebang line.
- Make contrib/platformtest.sh script more portable, and only show
"runs=Y" when the test suite really has been passed successfully.
- - Code cleanup in the NJON handler and the function killing clients as
+ - Code cleanup in the NJOIN handler and the function killing clients as
well as the function sending messages to a "mask" (cleaner code, more
fault tolerant, better code comments).
- Update and enhance documentation: README file, doc/Platforms.txt,