X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=ChangeLog;h=b743736ea2ea033801a01525c0d572b8954b1c5e;hp=90821a29258a19a781f90d3d9e4149bc6e62f8f0;hb=86d27eaf8977c5e6f92fa192d0b2db82ea60b647;hpb=94148c37f5b29dffe1f37192d3930a2e3de2377d diff --git a/ChangeLog b/ChangeLog index 90821a29..b743736e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,19 +2,251 @@ ngIRCd - Next Generation IRC Server http://ngircd.barton.de/ - (c)2001-2013 Alexander Barton and Contributors. + (c)2001-2015 Alexander Barton and Contributors. ngIRCd is free software and published under the terms of the GNU General Public License. -- ChangeLog -- +ngIRCd 23 + + ngIRCd 23~rc1 + - 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 behaviour 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. + Idee 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. + Idee and implementation by LucentW, Thanks! Closes #207. + - Update ngircd.conf.5: "CloadUserToNick" 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. + Idee 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. + - 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. + Problem pointed out by "wowaname" on #ngircd, thanks! + + ngIRCd 22~rc1 (2014-09-29) + - Sync "except lists" between servers: Up to now, ban, invite, and G-Line + lists have been synced between servers while linking -- but obviously + nobody noticed that except list have been missing ever since. Until now. + Thanks to "j4jackj", who reported this issue in #ngircd. + - Allow longer user names (up to 63 characters) for authentication. + - Correctly check that a server has a valid hostname and port, thanks to + David Binderman who reported this bug. + - Fix the function which generates complete "IRC masks" from user input, + don't destroy the source buffer and use all provided parts (nick, user, + host name). This fixes GLINEs/KLINEs from not working in some situations. + - Increase MAX_SERVERS from 16 to 64: There are installations out there + that would like to configure more than 16 links per server, so increase + this limit. Best would be to get rid of MAX_SERVERS altogether and make + if fully dynamic, but start with this quick and dirty hack ... + - Debian: Don't adjust path names that are correct by default and correctly + set and use "docdir". + - Update config.guess and config.sub to recent versions. + - Test suite/platformtest.sh: Detect when tests have been skipped. + - doc/Bopm.txt: Update "connregex" and "kline" for current ngIRCd. + - 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 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 + detected in different functions, Conn_Handler() and Read_Request(), but + handle the actual "throttling" in a common function: this enables us to + guarantee consistent behavior and to disable throttling for special + connections in only one place + - Use server password when PAM is compiled in but disabled. + - Streamline punctuation of log messages. + - Return ISUPPORT(005) numerics on "VERSION". This is how ircd-seven, + Charybdis, Hybrid, and InspIRCd behave, for example. + - configure: Only link "contrib/Debian" if it exists, which isn't the case + on "VPATH builds", for example. + - Show the account name in WHOIS. This uses the same numeric as Charybdis + and ircu families: WHOISLOGGEDIN(330). + - Pattern matching: Remove "range matching" in our pattern matching code + using the "[...]" syntax, because [ and ] are valid characters in nick + names and one has to quote them currently using the "\" character, which + is quite unexpected for users. + - platformtest.sh: New option "-x", don't regenerate build system and + allow using separate source and build trees. + - Test suite: explicitly enable glibc memory checking. + - Make "MODE -k" handling more robust and compatible, send "fake '*' key" + in all replies. + - Update configure.ng: ngIRCd requires GNU autoconf 2.61 for generating its + build system, so update the build system accordingly and implement all + changes that autoupdate(1) suggests: Update AC_PREREQ and AC_INIT, use + AC_LINK_IFELSE, AC_RUN_IFELSE, and AC_COMPILE_IFELSE, and remove + AC_TYPE_SIGNAL (we don't use RETSIGTYPE). + - portabtest: Actually test the functions snprintf(), strlcpy(), strlcat(), + and vsnprintf() for correctness, not only existence (which was quite + useless, because if they weren't available, the program could not have + been linked at all ...). + - Implement new configuration option "Network": it is used to set the + (completely optional) "network name", to which this instance of the + daemon belongs. When set, this name is used in the ISUPPORT(005) numeric + which is sent to all clients connecting to the server after logging in. + - Update doc/Platforms.txt. + - Various code cleanups, remove unused code, streamline error handling. + Remove all imp.h and exp.h header files, support non-standard vsnprintf() + return codes, and fix some K&R C portability issues. Streamline + DEBUG_ARRAY, DEBUG_BUFFER, DEBUG_IO, DEBUG_ZIP definitions. + - Increase penalty time to 10 seconds when handling OPER commands with an + invalid password. + +ngIRCd 21.1 (2014-03-25) + + - Don't ignore but use the server password when PAM is compiled in but + disabled. Thanks to Roy Sindre Norangshol ! + - doc/Platforms.txt: Update from master branch. + - Really kill connections that send "spoofed prefixes" on non-server links. + This fixes commit 6cbe1308 which only killed the connection when the + spoofed prefix itself belonged to a non-server client. + - CHARCONV command: Fix handling conversion errors, don't overwrite already + converted text! + - doc/Services.txt: Update information for Anope 2.x. + - Correctly use cloaked IRC masks on "INVITE nickname": The cloaked IRC mask + of a user is his visible mask, so the daemon has to use it for generating + the "one time" entries for the invite list of the given channel, and not + the "real" mask which will never match while the target client is "+x", and + even worse, will disclose the real mask on "MODE #channel +I" commands :-/ + Bug reported by Cahata on #ngircd, thanks! + - configure: Only link "contrib/Debian" if it exists. This isn't the case on + "VPATH builds", for example. + - Use $(MKDIR_P) instead of $(mkinstalldirs) in Makefile's and test for + "mkdir -p" using AC_PROG_MKDIR_P in "configure". + - Fix configure script and "make check" for TCP Wrappers (problems spotted on + OpenBSD): add missing #include's and static variables, and add libwrap at + the end of the configure run because if libwrap becomes added earlier, + other tests may fail. + - configure: add support for the LDFLAGS_END and LIBS_END variables to add + linker flags and libraries at the end of the configure run (CFLAGS_END has + been implemented already). + - platformtest.sh and Makefile.am: Don't use "test -e", it isn't portable. + - Update Copyright notices for 2014 :-) + - Fix permanent {G|K}LINES (with a timeout of 0 seconds). + - WEBIRC: Don't set the hostname received by the WEBIRC command when DNS + lookups are disabled, but use the IP address instead. + Reported by Toni Spets , thanks! + - Check for working getaddrinfo() function: At least AIX 4.3.3 and 5.1 have a + broken implementation of getaddrinfo() which doesn't handle "0" as numeric + service correctly. This patch adds a configure check for this case and + changes all calling functions to only use getaddrinfo() if it "works". + See + - Only use the unsetenv() function when it is available (AIX 4.3 doesn't + support it, for example). + - Make sure that the source code is still compatible with the "ansi2knr" tool + and builds using non-ANSI K&R C compilers. Tested with Apple C on A/UX. + - Fix building ngIRCd without support for ZLIB compression. Reported by + "der_baer" on #ngircd, thanks! + ngIRCd 21 (2013-10-30) - ./contrib/Debian/ngircd.init: Make sure no stale PID file is left over when (re-)starting ngIRCd. - Change ./contrib/platformtest.sh and update ./doc/Platforms.txt to - allow usernames up to 8 characters. + allow user names up to 8 characters. - Call arc4random_stir() in forked subprocesses, when available. This is required by FreeBSD <10 and current NetBSD at least to correctly initialize the "arc4" random number generator on these platforms. @@ -374,7 +606,7 @@ ngIRCd 20 (2012-12-17) the hash function. When "CloakHostSalt" is not set (the default), a random salt will be generated after each server restart. (Closes #133) -ngIRCd Release 19.2 (2012-06-19) +ngIRCd 19.2 (2012-06-19) - doc/Capabilities.txt: document "multi-prefix" capability @@ -404,7 +636,7 @@ ngIRCd Release 19.2 (2012-06-19) - Fix: Don't ignore "permission denied" errors when enabling chroot. - FAQ: enhance description of chroot setup. -ngIRCd Release 19.1 (2012-03-19) +ngIRCd 19.1 (2012-03-19) - Fix gcc warning (v4.6.3), initialize "list" variable to NULL. - Fix typos: "recieved" -> "received", "Please not" -> "Please note", @@ -414,7 +646,7 @@ ngIRCd Release 19.1 (2012-03-19) - getpid.sh: Fix test case error for Debian using sbuild(1). - Don't log "ngIRCd hello message" two times when starting up. -ngIRCd Release 19 (2012-02-29) +ngIRCd 19 (2012-02-29) - Update build system: bump config.guess and config.sub files used by GNU autoconf/automake to recent versions. @@ -564,7 +796,7 @@ ngIRCd Release 19 (2012-02-29) asynchronous nature of the IRC protocol. So don't break server- links, only log a message and ignore the command. (Closes #113) -ngIRCd Release 18 (2011-07-10) +ngIRCd 18 (2011-07-10) - Update timestamp of ngircd(8) manual page. - Add preliminary ngIRCd protocol module for Anope 1.9 to contrib/Anope/. @@ -674,7 +906,7 @@ ngIRCd Release 18 (2011-07-10) only relevant when a trusted server on a server-server link sends invalid commands). -ngIRCd Release 17.1 (2010-12-19) +ngIRCd 17.1 (2010-12-19) - --configtest: remember if MOTD is configured by file or phrase - Enhance log messages when establishing server links a little bit @@ -690,7 +922,7 @@ ngIRCd Release 17.1 (2010-12-19) - New numeric 329: get channel creation time on "MODE #chan" commands - Save channel creation time; new function Channel_CreationTime() -ngIRCd Release 17 (2010-11-07) +ngIRCd 17 (2010-11-07) - doc: change path names in sample-ngircd.conf depending on sysconfdir - Fix up generation and distribution of sample-ngircd.conf @@ -771,7 +1003,7 @@ ngIRCd Release 17 (2010-11-07) - Fix "beeing" typo ... - SSL/TLS: fix bogus "socket closed" error message. -ngIRCd Release 16 (2010-05-02) +ngIRCd 16 (2010-05-02) - doc/SSL: remove line continuation marker @@ -811,7 +1043,7 @@ ngIRCd Release 16 (2010-05-02) every channel, and c) remote clients using a server not supporting this mode are not checked either and therefore always allowed to join. -ngIRCd Release 15 (2009-11-07) +ngIRCd 15 (2009-11-07) - "ngircd --configtest": print SSL configuration options even when unset. @@ -837,7 +1069,7 @@ ngIRCd Release 15 (2009-11-07) - Fix a few error handling glitches for SSL/TLS connections. - Minor fixes to manual pages and documentation. -ngIRCd Release 14.1 (2009-05-05) +ngIRCd 14.1 (2009-05-05) - Security: fix remotely triggerable crash in SSL/TLS code. - BSD start script contrib/ngircd.sh has been renamed to ngircd-bsd.sh. @@ -850,7 +1082,7 @@ ngIRCd Release 14.1 (2009-05-05) - Fix server list announcement. - Do not remove host names from info text. -ngIRCd Release 14 (2009-04-20) +ngIRCd 14 (2009-04-20) - Display IPv6 addresses as "[]" when accepting connections. @@ -874,7 +1106,7 @@ ngIRCd Release 14 (2009-04-20) - Fix handling of channels containing dots. (closes ug #93, reported by Gonosz Csiga) -ngIRCd Release 13 (2008-12-25) +ngIRCd 13 (2008-12-25) - Updated documentation, especially doc/Services.txt and doc/SSL.txt. - Make the test suite work on OpenSolaris. @@ -965,7 +1197,7 @@ ngIRCd 0.11.0 (2008-01-15) ngIRCd 0.11.0-pre2 (2008-01-07) - SECURITY: IRC_PART could reference invalid memory, causing ngircd to crash [from HEAD]. (CVE-2008-0285) - + ngIRCd 0.11.0-pre1 (2008-01-02) - Use dotted-decimal IP address if host name is >= 64. - Add support for /STAT u (server uptime) command. @@ -999,7 +1231,7 @@ ngIRCd 0.10.4 (2008-01-07) - SECURITY: IRC_PART could reference invalid memory, causing ngircd to crash [from HEAD]. (CVE-2008-0285) - + ngIRCd 0.10.3 (2007-08-01) - SECURITY: Fixed a severe bug in handling JOIN commands, which could @@ -1305,7 +1537,7 @@ ngIRCd 0.7.0 (2003-05-01) - Documentation is now installed in $(datadir)/doc/ngircd. - Enhanced handling of NJOIN in case of nick collisions. -ngIRCd 0.6.1, 2003-01-21 +ngIRCd 0.6.1 (2003-01-21) - Fixed KILL: you can't crash the server by killing yourself any more, ngIRCd no longer sends a QUIT to other servers after the KILL, and you @@ -1326,15 +1558,15 @@ ngIRCd 0.6.1, 2003-01-21 Older changes (sorry, only available in german language): -ngIRCd 0.6.0, 2002-12-24 +ngIRCd 0.6.0, 24.12.2002 - ngIRCd 0.6.0-pre2, 2002-12-23 + ngIRCd 0.6.0-pre2, 23.12.2002 - neuer Numeric 005 ("Features") beim Connect. - LUSERS erweitert: nun wird die maximale Anzahl der lokalen und globalen Clients, die dem Server bzw. im Netzwerk seit dem letzten (Re-)Start dem Server gleichzeitig bekannt waren, angezeigt. - ngIRCd 0.6.0-pre1, 2002-12-18 + ngIRCd 0.6.0-pre1, 18.12.2002 - beim Schliessen einer Verbindung zeigt der Server nun vor dem ERROR noch eine Statistik ueber die empfangene und gesendete Datenmenge an. - der Server wartet bei einer eingehenden Verbindung nun laenger auf den @@ -1385,7 +1617,7 @@ ngIRCd 0.6.0, 2002-12-24 ngIRCd 0.5.4, 24.11.2002 - - Fehler-Handling von connect() gefixed: der Server kann sich nun auch + - Fehler-Handling von connect() gefixed: der Server kann sich nun auch unter A/UX wieder zu anderen verbinden. - in den Konfigurationsvariablen ServerUID und ServerGID kann nun nicht nur die numerische ID, sondern auch der Name des Users bzw. der Gruppe @@ -1497,7 +1729,7 @@ ngIRCd 0.5.0, 20.09.2002 - ADMIN-Befehl implementiert. Die Daten hierzu werden in der Konfig-Datei im [Global]-Abschnitt mit den Variablen "AdminInfo1", "AdminInfo2" und "AdminEMail" konfiguriert. - + ngIRCd 0.4.3, 11.06.2002 - Bei PRIVMSG und NOTICE hat der ngIRCd nicht ueberpruft, ob das Ziel