X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=NEWS;h=b3d22706a0c5cdda16fac0c80291370a09f68dec;hp=8fd24a30dce61483644d5f710cd46f35cbb0d583;hb=b003d469f18c843725de4f6f46b7ca0714e0a984;hpb=1e84b2640e3ca3fef0bdc0a63198cb98c8c6f7e3 diff --git a/NEWS b/NEWS index 8fd24a30..b3d22706 100644 --- a/NEWS +++ b/NEWS @@ -2,20 +2,158 @@ ngIRCd - Next Generation IRC Server http://ngircd.barton.de/ - (c)2001-2015 Alexander Barton and Contributors. + (c)2001-2020 Alexander Barton and Contributors. ngIRCd is free software and published under the terms of the GNU General Public License. -- NEWS -- - -ngIRCd 23 +ngIRCd 26 + + ngIRCd 26~rc2 + - Various bug fixes, see the ChangeLog. No new or changed functionality. + + ngIRCd 26~rc1 (2020-05-10) + - 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 ! + - 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 ! + 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 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 behaviour is more in line with the GNU "coding standards", + see . + - 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. + - Streamline handling of invalid and unset server name: Don't exit during + runtime (REHASH command, HUP signal), because the server name can't be + changed in this case anyway and the new invalid name will be ignored. + - Slightly reorder startup steps, and enhance logging: + - Show name of configuration file at the beginning of start up. + - Add a message when ngIRCd is ready, including its host name. + - Show name of configuration file on REHASH (SIGHUP), too. + - Change level of "done message" to NOTICE, like "starting" & "ready". + - Initialize IO functions before channels, connections, clients, ... + - configure.ng: OpenSSL can depends on lz or latomic so use pkg-config to + find those dependencies and fallback to existing mechanism. + Closes #256. + +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 unnecessary 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 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 behaviour in Charybdis, IRCD-Hybrid, InspIRCd + 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 @@ -23,20 +161,20 @@ ngIRCd 23 - 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. - Idee and implementation by LucentW, Thanks! Closes #203. + Idea and implementation by LucentW, Thanks! Closes #203. - Implement numeric RPL_LISTSTART(321). lightIRC and other clients expecting RPL_LISTSTART should now behave correctly. - Idee and implementation by LucentW, Thanks! Closes #207. + 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. - Idee and implementation by LucentW, Thanks! Closes #202. + 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). - Idee and implementation by LucentW, Thanks! Closes #197. + 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. @@ -223,7 +361,7 @@ ngIRCd 20.2 (2013-02-15) - This release is a bugfix release only, without new features. - Security: Fix a denial of service bug in the function handling KICK - commands that could be used by arbitrary users to to crash the daemon + commands that could be used by arbitrary users to crash the daemon (CVE-2013-1747). ngIRCd 20.1 (2013-01-02) @@ -324,7 +462,7 @@ ngIRCd 19.2 (2012-06-19) which still is the default when "CloakHostModeX" isn't set. - Add instructions for setting up Atheme IRC services. - Implement support for IRC capability handling, the new "CAP" command, - and capablity "multi-prefix" which allows both the NAME and WHO command + and capability "multi-prefix" which allows both the NAME and WHO command handlers to return more than one "class prefix" to the client. ngIRCd 19.1 (2012-03-19) @@ -487,7 +625,7 @@ ngIRCd 17 (2010-11-07) ngIRCd 17~rc2 (2010-10-25) - Generate ngIRCd version number from GIT tag. - - Make sourcecode compatible with ansi2knr again. This allows to compile + - Make source code compatible with ansi2knr again. This allows to compile ngIRCd using a pre-ANSI K&R C compiler again. ngIRCd 17~rc1 (2010-10-11) @@ -496,7 +634,7 @@ ngIRCd 17 (2010-11-07) Howl, Avahi or on Mac OS X). - New configuration option "SyslogFacility" to define the syslog "facility" (the "target"), to which ngIRCd should send its log messages. - Possible values are system dependant, but most probably "auth", "daemon", + Possible values are system dependent, but most probably "auth", "daemon", "user" and "local1" through "local7" are possible values; see syslog(3). Default is "local5" for historical reasons. - Dump the "internal server state" (configured servers, established @@ -506,7 +644,7 @@ ngIRCd 17 (2010-11-07) signal SIGUSR1, when debug code is compiled in, not only on startup using the command line parameters. - Implement user mode "x": host name cloaking (closes: #102). - - Change MOTD file handling: ngIRCd now caches the contens of the MOTD + - Change MOTD file handling: ngIRCd now caches the contents of the MOTD file, so the daemon now requires a HUP signal or REHASH command to re-read the MOTD file when its content changed. - Allow IRC ops to change channel modes even without OperServerMode set. @@ -522,7 +660,7 @@ ngIRCd 17 (2010-11-07) ngIRCd 16 (2010-05-02) ngIRCd 16~rc2 (2010-04-25) - - Enhace connection statistics counters: display total number of served + - Enhance connection statistics counters: display total number of served connections on daemon shutdown and when a new client connects using the new numeric RPL_STATSCONN (250). @@ -544,7 +682,7 @@ ngIRCd 15 (2009-11-07) ngIRCd 15~rc1 (2009-10-15) - Do not add default listening port (6667) if SSL ports were specified, so ngIRCd can be configured to only accept SSL-encrypted connections now. - - Enable IRC operators to use the IRC command SQUIT (insted of the already + - Enable IRC operators to use the IRC command SQUIT (instead of the already implemented but non-standard DISCONNECT command). - New configuration option "AllowRemoteOper" (disabled by default) that enables remote IRC operators to use the IRC commands SQUIT and CONNECT @@ -727,7 +865,7 @@ ngIRCd 0.7.0 (2003-05-01) - Documentation is now installed in $(datadir)/doc/ngircd. -Older news (sorry, only available in german language): +Older news (sorry, only available in German language): ngIRCd 0.6.0, 24.12.2002