ngIRCd - Next Generation IRC Server
http://ngircd.barton.de/
- (c)2001-2015 Alexander Barton and Contributors.
+ (c)2001-2017 Alexander Barton and Contributors.
ngIRCd is free software and published under the
terms of the GNU General Public License.
-- ChangeLog --
-ngIRCd 23
-
+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
+ <ngircd.anoy@manchmal.in-ulm.de> 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 <christian@quelltextlich.at> 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 <https://wiki.debian.org/ReproducibleBuilds>.
+ - 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 <tom@sanctum.geek.nz>, thanks! Closes #182.
- 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.
- 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.
+ 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
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.
"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.
- 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.
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.
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
- 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.
- Include netinet/{in.h, in_systm.h} when checking for netinet/ip.h
- Only include <netinet/in_systm.h> 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
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
- 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)
- 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
to add a new server (ngIRCd tries to connect new servers only once!).
- Added DISCONNECT command ("DISCONNECT <name>") 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".
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