+ngIRCd 25 (2019-01-23)
+
+ - Implement new configuration option "MaxPenaltyTime", which configures the
+ maximum penalty time increase in seconds, per penalty event. Set to -1 for
+ no limit (the default), 0 to disable penalties altogether. ngIRCd doesn't
+ use penalty increases higher than 2 seconds during normal operation, so
+ values higher than 1 rarely make sense.
+ Disabling (or reducing) penalties can greatly speed up "make check" runs
+ for example, see below, but are mostly a debugging feature and normally
+ not meant to be used on production systems!
+ Some example timings running "make check" from my macOS workstation:
+ - MaxPenaltyTime not set: 4:41,79s
+ - "MaxPenaltyTime = 1": 3:14,71s
+ - "MaxPenaltyTime = 0": 25,46s
+ Closes #249 and #251.
+ - Update Xcode project for latest Xcode version (10.0)
+ - Allow a 5th parameter in WEBIRC. Thanks to "ItsOnlyBinary".
+ Closes #247.
+
+ ngIRCd 25~rc1 (2018-08-11)
+ - Only send TOPIC updates to a channel when the topic actually changed:
+ This prevents the channel from becoming flooded by unecessary TOPIC update
+ messages, that can happen when IRC services try to enforce a certain topic
+ but which is already set (at least on the local server), for example.
+ Therefore still forward it to all servers, but don't inform local clients
+ (still update setter and timestamp information, though!).
+ - Update Xcode project for latest Xcode version (9.2). This includes adding
+ missing and deleting obsolete file references.
+ - Handle user mode "C" ("Only users that share a channel are allowed to send
+ messages") like user mode "b" ("block private messages and notices"): allow
+ messages from servers, services, and IRC Operators, too. Change proposed by
+ "wowaname" back in 2015 in #ngircd, thanks!
+ - Allow IRC Ops and remote servers to KILL service clients: such clients
+ behave like regular users, therefore IRC operators and servers should be
+ able to KILL them: for example to resolve nick collisions.
+ Closes #242.
+
+ngIRCd 24 (2017-01-20)
+
+ ngIRCd 24~rc1 (2017-01-07)
+ - Log privilege violations and failed OPER request with log level "error"
+ and send it to the "&SERVER" channel, too.
+ - Immediately shut down connection when receiving an "ERROR" command,
+ don't wait for the peer to close the connection. This allows the daemon
+ to forward the received "ERROR" message in the network, instead of the
+ very generic "client closed connection" message.
+ - Explicitly forbid remote servers to modify "x-lines" (G-LINES) when the
+ "AllowRemoteOper" configuration option isn't set, even when the command
+ seems to originate from the remote server itself: this prevents GLINE's
+ to become set during server handshake in this case (what wouldn't be
+ possible during regular runtime when a remote IRC Op sends the command)
+ and what can't be undone by IRC Ops later on (because of the missing
+ "AllowRemoteOper" option) ...
+ - Update Xcode project for latest Xcode version (8.0), and fix "duplicate
+ symbols" error messages when building (linking) the binary.
+ - Add "Documentation" variables to systemd configuration files.
+ - Make sure that SYSCONFDIR is always set, which can be handy when
+ using source code linters when ./configure hasn't been run already.
+ - Add the new "PAMServiceName" configuration option to specify the name
+ used as PAM service name. This setting allows to run multiple ngIRCd
+ instances with different PAM configurations for each instance.
+ Thanks to Christian Aistleitner <christian@quelltextlich.at> for the
+ patch, closes #226.
+ - Add an ".editorconfig" file to the project.
+ - Limit the number of message target, and suppress duplicates: This
+ prevents an user from flooding the server using commands like this:
+ "PRIVMSG nick1,nick1,nick1,...".
+ Duplicate targets are suppressed silently (channels and clients).
+ In addition, the maximum number of targets per PRIVMSG, NOTICE, ...
+ command are limited to MAX_HNDL_TARGETS (25). If there are more, the
+ daemon sends the new 407 (ERR_TOOMANYTARGETS_MSG) numeric, containing
+ the first target that hasn't been handled any more. Closes #187.
+ - Make contrib/platformtest.sh script more portable, and only show
+ "runs=Y" when the test suite really has been passed successfully.
+
+ngIRCd 23 (2015-11-16)
+
+ ngIRCd 23~rc1 (2015-09-06)
+ - Use "NOTICE *" before registration instead of "NOTICE AUTH". "AUTH" is
+ a valid nickname so sending notices to it is probably not a good idea.
+ Use "*" as the target instead as done with numerics when the nick is not
+ available. This mimics the behavior in Charybdis, IRCD-Hybrid, InspIRCd
+ 2.2, Plexus 4, etc. Closes #217.
+ The "NoticeAuth" configuration variable (ngircd.conf) has been renamed
+ to "NoticeBeforeRegistration" accordingly, but the old name is still
+ supported for compatibility reasons.
+ - Implement new channel mode "N" (regular users can't change their nick
+ name while on this channel). Closes #214.
+ - Keep track of who placed bans, invites, and excepts.
+ Idea and implementation by LucentW, Thanks! Closes #203.
+ - Implement numeric RPL_LISTSTART(321). lightIRC and other clients
+ expecting RPL_LISTSTART should now behave correctly.
+ Idea and implementation by LucentW, Thanks! Closes #207.
+ - Streamline the effect of "MorePrivacy" option: Update documentation
+ in ngircd.conf(5); don't hide channels for IRC Ops on LIST and don't
+ hide IP addresses/hostnames on WHOIS when "MorePrivacy" is in effect.
+ This closes #198.
+ - IRC operators now can kick anyone when "OperCanMode" is set.
+ Idea and implementation by LucentW, Thanks! Closes #202.
+ - Implement user mode "I": Hide channels on WHOIS: this mode prevents
+ ngIRCd from showing channels on WHOIS (IRC Operators can always see
+ the channel list).
+ Idea and implementation by LucentW, Thanks! Closes #197.
+ - INVITE command: Implement ERR_USERNOTONSERV(504) numeric and make sure
+ that the target user is on the same server when inviting other users
+ to local ("&") channels.
+ Idea by Cahata, thanks! Closes #183.
+ - MODE command: Always report channel creation time. Up to now when
+ receiving a MODE command, ngIRCd only reported the channel creation
+ time to clients that were members of the channel. This patch reports
+ the channel creation time to all clients, regardless if they are joined
+ to that channel or not. At least ircd-seven behaves like this.
+ This closes #188. Reported by Cahata, thanks!
+
+ngIRCd 22.1 (2015-04-06)
+
+ - Update "CipherList" to not enable SSLv3 by default. Idea, initial patch,
+ and testing by Christoph Biedl <ngircd.anoy@manchmal.in-ulm.de>.
+ - Change ngIRCd test suite not to use DNS lookups: Different operating
+ systems do behave quite differently when doing DNS lookups, for example
+ "127.0.0.1" sometimes resolves to "localhost" and sometimes to
+ "localhost.localdomain" (for example OpenBSD). And other OS resolve
+ "localhost" to the real host name (for example Cygwin). So not using
+ DNS at all makes the test site much more portable.
+
+ngIRCd 22 (2014-10-11)