X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=ChangeLog;h=3ee3db61b05f45653f15634503a49d2da7f45942;hp=21b289180ef8bc5f4929dce8a6068095188140dc;hb=c97fb2e93e9c7d66b1ce70fa681a762d1f430521;hpb=74262a40935fa67b98e95c02f4bba4056dc21831 diff --git a/ChangeLog b/ChangeLog index 21b28918..3ee3db61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,14 +2,243 @@ ngIRCd - Next Generation IRC Server http://ngircd.barton.de/ - (c)2001-2014 Alexander Barton and Contributors. + (c)2001-2018 Alexander Barton and Contributors. ngIRCd is free software and published under the terms of the GNU General Public License. -- ChangeLog -- -ngIRCd 22 +ngIRCd 25 + + ngIRCd 25~rc1 (2018-08-11) + - Update config.guess (2018-03-08) and config.sub (2018-03-08) files. + - Correctly retry to establish an outgoing connections when forking of the + resolver sub-process failed (for example because of lack of free memory). + Until now, such a connection was never retried once this error was hit. + Thanks to Robert Obermeier for reporting this bug! + Closes #243. + - Fix a "use after free" bug which can be triggered on a newly established + connection when the daemon handles an ERROR command received from the peer + during client login. Thanks a lot to Joseph Bisch + for discovering and reporting this issue! + - 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! + - Fix some compiler warnings. + - Add contrib/ngircd.logcheck: Some sample logcheck(8) rules. + - 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. + - Don't forward KILLs to other servers if they've been blocked locally: + This prevents clients from killing IRC services, for example. + Closes #238 and #239. + - Fix a cross-compiler issue related to the Get_Error() function. + Closes #240 and #241. + - Update ./doc/Services.txt, enhance configuration examples. + +ngIRCd 24 (2017-01-20) + + - Make sure that ./contrib/platformtest.sh aborts when ./autogen.sh fails. + - Update config.guess (2016-10-02) and config.sub (2016-11-04) files. + - Build Debian packages with OpenSSL instead of GnuTLS: OpenSSL allows + to reload used certificates on runtime for example (which is very + useful when using Let's Encrypt), and therefore is preferred. And + explicitly specify the "source format". + - Fix handling of connection pool allocation and enlargement: up to now, + the daemon only enlarged its connection pool when accepting new incoming + client or server connections, not when establishing new outgoing server + links, which could lead to problems when hitting the configured limit, + see "MaxConnections". Thanks to Lukas Braun (k00mi) for reporting this! + Closes #231. + + ngIRCd 24~rc1 (2017-01-07) + - Enhance systemd service file, and install it in Debian package. + - Update configuration of Debian package. + - 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. + - Fix sending of entry duration (no negative values!) when synchronizing + "x-lines" (G-LINES). + - List expiration (G-LINES): use same log level as when setting, and log + this event to the &SERVER channel, too. + - 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) ... + - Make scripts and init-files in ./contrib executable. + - Fix building ngIRCd with OpenSSL 1.1. Thanks to Christoph Biedl + for the patch! + - Fix code indentation warnings of gcc 6.2. + - Update config.guess (2016-04-02) and config.sub (2016-03-30) files. + - Fix warnings of the "shellcheck" linter in autogen.sh, contrib/ngindent + and contrib/platformtest.sh. + - 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. + - Travis-CI: use "container-based infrastructure". + - Limit the number of message targets, 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. + - Test suite: Add new test for server-server logins. + - 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 + 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, + doc/Modes.txt, doc/Commands.txt, doc/PAM.txt. + - Fix NJOIN not propagating "half ops" status: ngIRCd tested for the wrong + prefix of "half ops" when processing NJOIN commands and therefore never + classified a remote user as "half op". + Thanks to wowaname for pointing this out on #ngircd! + +ngIRCd 23 (2015-11-16) + + - Explicitly cast time_t to long when printing it out: this prevents + wrong sized data types on platforms where time_t doesn't equal a + long any more, for example on OpenBSD (which would result in garbled + output on those platforms). + - contrib/Debian/changelog: Fix email address. + - Documentation: Spelling fixes; update doc/Platforms.txt. + + ngIRCd 23~rc1 (2015-09-06) + - Add ".clang_complete" file, which is used by the "linter-clang" package + of the Atom editor, for example. + - Make server-to-server protocol more robust: ngIRCd now catches more + errors on the server-to-server (S2S) protocol that could crash the + daemon before. This hasn't been a real problem because the IRC S2S + protocol is "trusted" by design, but the behavior is much better now. + Thanks to wowaname on #ngircd for pointing this out! + - Make platformtest.sh, autogen.sh, and ngircd.init more portable. + - Enables "reproducible builds" for ngIRCd: Use the optional BIRTHTIME + constant while building ngIRCd, which contains a time stamp for the + "Birth Date" information, in seconds since the epoch. + See . + - Update "contrib/ngircd.service" file for systemd. + - INSTALL: Add deprecation notice for "PredefChannelsOnly" variable. + - 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. + - README, AUTHORS: Update mailing list and issue tracker URLs. + - Remove doc/GIT.txt (it is outdated), update doc/Contributing.txt: + ngIRCd uses GitHub, and Git itself is quite common today. So don't + include an own Git "mini HowTo" any longer. + - Specify session context for OpenSSL clients. This enables some OpenSSL + clients, including Pidgin and stunnel 5.06, to reuse a session. + Patch by Tom Ryder , thanks! Closes #182. + - Keep track of who placed bans, invites, and excepts. + Idea and implementation by LucentW, Thanks! Closes #203. + - Make setgroups(3) function optional: For example, Interix is missing + this function, which prevented ngIRCd to build on this platform. When + setgroups(3) isn't available, a warning message is issued on startup. + - Implement numeric RPL_LISTSTART(321). lightIRC and other clients + expecting RPL_LISTSTART should now behave correctly. + Idea and implementation by LucentW, Thanks! Closes #207. + - Update ngircd.conf.5: "CloakUserToNick" hides user _and_ real name. + This closes #208. + - Fix case insensitive pattern matching: Up to now, only the the input + string became lowercased and was then compared to the pattern -- which + failed when the pattern itself wasn't all lowercase! + - 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. + - INVITE command: Enforce 1 second penalty time, which prevents flooding + of the target client. + This closes #186. Reported by Cahata, thanks! + - 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! + - Update Xcode project for latest Xcode version (6.3). + +ngIRCd 22.1 (2015-04-06) + + - Update doc/Platforms.txt and doc/FAQ.txt. + - Fix spelling of RPL_WHOISBOT message text. + - Don't send nick name as default PART reason: No other IRC daemon seems + to do this (today?). Closes #185. + Reported by Cahata in #ngircd, thanks! + - Fix "WHO #" showing invisible users and hiding all visible, the + logic was reversed! This bug has been introduced by commit c74115f2, + "Simplify mode checking on channels and users within a channel", ngIRCd + releases 21, 21.1, and 22 are affected :-( Problem reported by Cahata + in #ngircd, Thanks! + - Fix typo in src/testsuite/README + - Auth PING: Fix our information text for manual sending of "PONG". Up to + now, ngIRCd doesn't send a valid IRC command at all, oops! + - Auth PING: Fix internal time stamp conversion and don't send a prefix in + our PING command. The prefix confuses WeeChat, at least, which doesn't + send an appropriate PONG in the case ... + Debugging and patch by "wowaname" on #ngircd, thanks! + - Fix syntax of ERR_LISTFULL_MSG(478) numeric. Pointed out by "wowaname" + in #ngircd, thanks! + - Enhance debug messages while sending CHANINFO commands. + - Reset "last try" timer when enabling a passive server. This results in + a new connection attempt as soon as possible. + - Change log message for "Can't resolve address" and for IP address + forgeries. + - doc/HowToRelease.txt: Add note about the bug tracker. + - Update "CipherList" to not enable SSLv3 by default. Idea, initial patch, + and testing by Christoph Biedl . + - 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) - Match all list patterns case-insensitive: this affects the invite-, ban-, and except lists, as well as G-Lines an K-Lines. @@ -38,10 +267,10 @@ ngIRCd 22 - Allow "DefaultUserModes" to set all possible modes, including modes only settable by IRC Operators. - Spoofed prefixes: Really kill connection on non-server links. - - Implement user mode "F": "relaxed flood protection". Clients with mode "F" - set are allowed to send data to the daemon. This mode is only settable by - IRC Operators and can cause problems in the network -- so be careful and - only set it on "trusted" clients! + - Implement user mode "F": "relaxed flood protection". Clients with mode + "F" set are allowed to rapidly send data to the daemon. This mode is only + settable by IRC Operators and can cause problems in the network -- so be + careful and only set it on "trusted" clients! User mode "F" is used by Bahamut for this purpose, for example. - Handle "throttling" in a single function: ngIRCd implements "command throttling" and "bps throttling" (bytes per second). The states are @@ -522,7 +751,7 @@ ngIRCd 19.2 (2012-06-19) "CC=xxx MAKE=yyy ./platformtest.sh" calling convention. - 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. - Update Xcode project files: reference missing documentation files. - Fix: Don't ignore "permission denied" errors when enabling chroot. @@ -822,7 +1051,7 @@ ngIRCd 17 (2010-11-07) - contrib/platformtest.sh: make command name quoting consistent ngIRCd 17~rc3 (2010-10-27) - - Xcode builds: detect version number correctly, updateed project file + - Xcode builds: detect version number correctly, updated project file to use the Mac OS X 10.5.x SDK, disable pam_fail_delay() because it is only available starting with Mac OS X 10.6, and generate a default PAM configuration for the Mac OS X Installer.app package of ngIRCd. @@ -834,7 +1063,7 @@ ngIRCd 17 (2010-11-07) ngIRCd 17~rc2 (2010-10-25) - ZeroConf: include header files missing since commit a988bbc86a. - 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. - ./configure: check if C compiler can compile ISO Standard C. - ./configure: check support for C prototypes again. @@ -850,7 +1079,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 @@ -871,7 +1100,7 @@ ngIRCd 17 (2010-11-07) - Make configure switch "--docdir" work (closes: #108). - Reformat and update FAQ.txt a little bit. - INSTALL: mention SSL, IPv6, and changed handling of MotdFile. - - 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. - Startup: open /dev/null before chroot'ing the daemon. @@ -907,14 +1136,14 @@ ngIRCd 16 (2010-05-02) - Include netinet/{in.h, in_systm.h} when checking for netinet/ip.h - Only include if it exists - Updated doc/Platforms.txt - - 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). ngIRCd 16~rc1 (2010-03-25) - Various fixes to the build system and code cleanups. - contrib/platformtest.sh: Only show latest commit. - - Updatet doc/Platforms.txt, added new README-Interix.txt documenting + - Updated doc/Platforms.txt, added new README-Interix.txt documenting how to tun ngIRCd on Microsoft Services for UNIX (MS SFU, MS SUA). - Updated links to the ngIRCd homepage (bug tracker, mailing list). - Added missing modes to USERMODES #define @@ -942,7 +1171,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 @@ -996,7 +1225,7 @@ ngIRCd 14 (2009-04-20) - Fix memory leak when a encrypted and compressed server link goes down. (closes bug #95, reported by Christoph, fiesh@fiesh.homeip.net) - Fix handling of channels containing dots. - (closes ug #93, reported by Gonosz Csiga) + (closes bug #93, reported by Gonosz Csiga) ngIRCd 13 (2008-12-25) @@ -1226,7 +1455,7 @@ ngIRCd 0.9.0 (2005-07-24) - Fixed ./configure test for TCP Wrappers: now it runs on Mac OS X as well. - Enhanced configure script: now you can pass an (optional) search path to all --with-XXX parameters, e. g. "--with-ident=/opt/ident". - - Removed typedefs for the native C datatypes. + - Removed typedefs for the native C data types. Use stdbool.h / inttypes.h if available. - New configuration option "OperServerMode" to enable a workaround needed when running an network with ircd2 servers and "OperCanUseMode" enabled @@ -1407,7 +1636,7 @@ ngIRCd 0.7.0 (2003-05-01) to add a new server (ngIRCd tries to connect new servers only once!). - Added DISCONNECT command ("DISCONNECT ") to disable servers. - Restructured the documentation: Now the main language is English. The - german documentation has been removed (until there is a maintainer). + German documentation has been removed (until there is a maintainer). - Enhanced killing of users caused by a nickname collision. - Better error detection for status code ("numerics") forwarding. - Moved tool functions to own library: "libngtool". @@ -1448,7 +1677,7 @@ ngIRCd 0.6.1 (2003-01-21) member when changing his channel user modes which could crash ngIRCd. -Older changes (sorry, only available in german language): +Older changes (sorry, only available in German language): ngIRCd 0.6.0, 24.12.2002