]> arthur.barton.de Git - ngircd-alex.git/blobdiff - ChangeLog
Spelling fix: "nick name" -> "nickname"
[ngircd-alex.git] / ChangeLog
index 3d7606b39d82d62c54bc0cf209dbf331537d06f6..296c23fd46cbb4d4da4ce0b5c7222ee4c207a173 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
                      ngIRCd - Next Generation IRC Server
                            http://ngircd.barton.de/
 
-               (c)2001-2011 Alexander Barton and Contributors.
+               (c)2001-2012 Alexander Barton and Contributors.
                ngIRCd is free software and published under the
                    terms of the GNU General Public License.
 
                                -- ChangeLog --
 
 
-ngIRCd Release 19
-
+ngIRCd
+
+  - New configuration option "MaxListSize" to configure the maximum number
+    of channels returned by a LIST command. The default is 100, as before.
+  - Implement user mode "b", "block messages": when a user has set mode "b",
+    all private messages and notices to this user are blocked if they don't
+    originate from a registered user, an IRC Op, server or service. The
+    originator gets an error numeric sent back in this case,
+    ERR_NONONREG_MSG (486), which is used by UnrealIRCd, too. (Closes #144)
+  - WHOIS: Not only show RPL_WHOISHOST_MSG to local IRC operators, but show
+    it to all IRC operators in the network. And don't show it to anybody if
+    the "more privacy" configuration option is enabled. (Closes #134)
+  - Test suite: make expect scripts more verbose displaying dots for each
+    reply of the server that it is waiting for.
+  - WHOIS: Implement numeric RPL_WHOISMODES_MSG (379) and show user modes in
+    the reply of the WHOIS command for the user himself or, if MorePrivacy
+    isn't set, for request initiated by an IRC operator. (Closes #129)
+  - Implement channel mode "V" (invite disallow): If the new channel mode
+    "V" is set, the INVITE command becomes invalid and all clients get the
+    new ERR_NOINVITE_MSG (518) reply. (Closes #143)
+  - KICK-protect IRC services.
+  - Implement channel mode "Q" and user mode "q": Both modes protect users
+    from channel kicks: only IRC operators and servers can kick users having
+    mode "q" or in channels with mode "Q". (Closes #141)
+  - Debian: require "telnet" or "telnet-ssl" for building and enable
+    CHARCONV in ngircd-full[-dbg] variants.
+  - Send RPL_REHASHING (382) numeric if a REHASH command was accepted.
+  - Fix spelling and variable names in some log messages.
+  - Allow users to "cloak" their hostname only when the configuration
+    variable "CloakHostModeX" (introduced in 19.2) is set. Otherwise, only
+    IRC operators, other servers, and services are allowed to set the user
+    mode "+x": this prevents regular users from changing their hostmask to
+    the name of the IRC server itself, which confused quite a few people ;-)
+    (Closes #133)
+  - New configuration option "OperChanPAutoOp": If disabled, IRC operators
+    don't become channel operators in persistent channels when joining.
+    Enabled by default, which has been the behavior of ngIRCd up to this
+    patch. (Closes #135)
+  - Allow IRC operators to see secret (+s) channels in LIST command as long
+    as the "MorePrivacy" configuration option isn't enabled in the
+    configuration file. (Closes #136)
+  - Enhance build system: Support new (>=1.12) and old (<=1.11) GNU automake
+    versions, update checks for required and optional features, enable
+    colored test output of automake (if available), rename configure.in to
+    more modern configure.ac, include .mailmap and all build-system files in
+    distribution archives and no longer require a GIT tree to detect the
+    correct version string.
+  - Update documentation: add doc/Contributing.txt and include version
+    numbers in doc/Modes.txt.
+  - Free all listen ports on initialization: now listen ports can be
+    reconfigured on runtime using a configuration reload.
+  - Initialize SSL when needed only, and disable SSL on errors.
+  - Implement new (optional) IRC+ "CHARCONV" command to set a client
+    character set that the server translates all messages to/from UTF-8.
+    This feature requires the "libiconv" library and must be enabled using
+    the new "--with-iconv" option of the ./configure script. See
+    doc/Protocol.txt for details. (Closes #109)
+  - Allow limited punctuation in usernames, for better PAM integration.
+  - Correctly re-initialize signal handlers on RESTART commands.
+  - Show a warning on startup if the configuration file is not a full path:
+    ngIRCd is a long-running process and changes its working directory to
+    "/" to not block mounted filesystems and the like when running as daemon
+    ("not in the foreground"); therefore the path to the configuration file
+    must be relative to "/" (or the chroot() directory), which basically is
+    "not relative", to ensure that "kill -HUP" and the "REHASH" command work
+    as expected later on. (Closes #127)
+  - Make the "&SERVER" channel definable in a [Channel] configuration block,
+    which enables server operators to overwrite the built-in topic and
+    channel modes. (Closes #131)
+  - Don't limit list size of "WHO #channel" commands, because it makes no
+    sense to not return all the users in that channel, so I removed the
+    check. But if there are more than MAX_RPL_WHO(25) replies, the client
+    requesting the list will be "penalized" one second more, then 2 in
+    total. (Closes #125)
+  - Make ngIRCd buildable using the kqueue() IO interface on FreeBSD 4.x.
+  - Fix the "NoticeAuth" configuration option when using SSL connections and
+    enhance the message to show the hostname and IDENT reply of the client.
+  - Introduce numeric RPL_HOSTHIDDEN_MSG (396): This numeric is sent to the
+    client each time it changes its displayed hostname using "MODE +/-x",
+    and if "CloakHost" is set right after the MOTD has been sent.
+  - Fix USERHOST not displaying the correctly cloaked hostname.
+  - Implement user mode "B" ("Bot flag"): it is settable and unsettable by
+    every (non-restricted) client. This is how Unreal and InspIRCd do
+    behave, and so do we :-)
+  - Dynamically allocate memory for connection passwords: This a) saves
+    memory for clients not using passwords at all and b) allows for
+    "arbitrarily" long passwords.
+  - Implement channel mode "M": Only the server, identified users and IRC
+    operators are able to talk in such a channel.
+  - Block nicknames that are reserved for services and are defined using the
+    configuration variable "ServiceMask" in "Server" blocks; And this
+    variable now can handle more than one mask separated by commas.
+  - Now "make uninstall" removes the installed "ngircd.conf" file, if it is
+    still equal to our "sample-ngircd.conf" file and therefore hasn't been
+    modified by the user. If it has been modified, it isn't removed and a
+    notice is displayed to the user. And "make install" now displays a
+    message when no ngircd.conf file exists and the "sample-ngircd.conf"
+    file will be installed as a starting point.
+  - Add contrib/ngircd.service, a systemd service file for ngircd.
+  - Implemented XOP channel user modes: "Half Op" ("+h", prefix "%") can set
+    the channel modes +imntvIbek and kick all +v and normal users; "Admin"
+    ("+a", prefix "&") can set channel modes +imntvIbekoRsz and kick all +o,
+    +h, +v and normal users; and "Owner" ("+q", prefix "~") can set channel
+    modes +imntvIbekoRsz and kick all +a, +o, +h, +v and normal users.
+  - Implement hashed cloaked hostnames for both the "CloakHost" and
+    "CloakHostModeX" configuration options: now the admin can use the new
+    '%x' placeholder to insert a hashed version of the clients hostname,
+    and the new configuration option "CloakHostSalt" defines the salt for
+    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)
+
+  - doc/Capabilities.txt: document "multi-prefix" capability
+
+  ngIRCd 19.2~rc1 (2012-06-13)
+  - New configuration option "CloakHostModeX" to configure the hostname
+    that gets used for IRC clients which have user mode "+x" enabled.
+    Up to now, the name of the IRC server itself has been used for this,
+    which still is the default when "CloakHostModeX" isn't set.
+  - Correctly handle asynchronously re-established server links: a race
+    condition could let the daemon loose track of an already re-established
+    incoming server link while preparing its own outgoing connection.
+    Peers that both try to connect each other could have been affected.
+  - Log a debug message when SIGUSR2 is handled in debug mode.
+  - Only allow alphanumeric characters in user-supplied user names of
+    USER command and IDENT replies.
+  - Change wording of "TLS initialized" message to make it more consistent.
+  - Don't leak file descriptors on error path when creating "PID files".
+  - Add missing mode "r" to CHANMODES in 005 "ISUPPORT" numeric.
+  - Update doc/Modes.txt and doc/Platforms.txt documents.
+  - contrib/platformtest.sh: correctly detect Open64 C compiler and handle
+    "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
+    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.
+  - FAQ: enhance description of chroot setup.
+
+ngIRCd Release 19.1 (2012-03-19)
+
+  - Fix gcc warning (v4.6.3), initialize "list" variable to NULL.
+  - Fix typos: "recieved" -> "received", "Please not" -> "Please note",
+    and fix lintian(1) warning ""hyphen-used-as-minus-sign", too.
+  - Really include _all_ patches to build the Anope module into the
+    distribution archive ... ooops!
+  - 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)
+
+  - Update build system: bump config.guess and config.sub files used by
+    GNU autoconf/automake to recent versions.
+  - Fix configuration file parser: don't accept "[SSL]" blocks in the
+    configuration file when no SSL support is built in ngIRCd.
+  - Fix building ngIRCd with old gcc versions (e. g. 2.7.2).
+  - Correctly re-open syslog logging after reading of configuration
+    file: Syslog logging has been initialized before reading the
+    configuration, so ngIRCd always used the default facility and ignored
+    the "SyslogFacility" configuration option ...
+    Thanks to Patrik Schindler for reporting this issue!
+
+  ngIRCd 19~rc1 (2012-02-12)
+  - Enhance command limits for server links: the limit now is dependent
+    on the number of users connected in the network and higher while
+    servers are joining the network to make the login of servers faster.
+  - Log more information about server synchronization.
+  - Update preliminary ngIRCd protocol module for Anope 1.9.6, which now
+    is the only supported version.
+  - New numeric RPL_WHOISHOST_MSG(378), which returns the DNS host name
+    (if available) and the IP address of a client in the WHOIS reply.
+    Only the user itself and local IRC operators get this numeric.
+  - Implement channel exception list (mode 'e'). This allows a channel
+    operator to define exception masks that allow users to join the
+    channel even when a "ban" would match and prevent them from joining:
+    the exception list (e) overrides the ban list (b).
+  - PRIVMSG and NOTICE: Handle nick!user@host masks case-insensitive.
+  - Implement user mode 'C': If the target user of a PRIVMSG or NOTICE
+    command has the user mode 'C' set, it is required that both sender
+    and receiver are on the same channel. This prevents private flooding
+    by completely unknown clients.
+  - New RPL_WHOISREGNICK_MSG(307) numeric in WHOIS command replies: it
+    indicates if a nickname is registered (if user mode 'R' set).
+  - Limit channel invite, ban, and exception lists to 50 entries and fix
+    duplicate check and error messages when adding already listed entries
+    or deleting no (longer) existing ones.
+  - Fix both ERR_SUMMONDISABLED(445) and ERR_USERSDISABLED(446) replies.
   - MODE command: correctly return ERR_UNKNOWNMODE(472) numeric for
     unknown channel modes, instead of ERR_UMODEUNKNOWNFLAG(501).
-  - ISUPPORT(005) numeric: add "O", "R", and "z" modes to "CHANMODES".
+  - ISUPPORT(005) numeric: add "O", "R", and "z" modes to "CHANMODES",
+    add "EXCEPTS=e" and "INVEX=I", add "MAXLIST=beI:50".
   - Limit the number of list items in the reply of LIST (100), WHO (25),
     WHOIS (10), and WHOWAS (25) commands.
   - LIST command: compare pattern case insensitive.
@@ -38,7 +226,7 @@ ngIRCd Release 19
     commands: this reduces the possibility of flooding channels with
     commands like "PRIVMSG/NOTICE #a,#n,#c,... :message" a little bit.
     Problem noticed by Cahata, thanks!
-  - Display correct error message when "Server{UID|GID}" variabe in the
+  - Display correct error message when "Server{UID|GID}" variable in the
     configuration file is invalid (not a number and no existing user).
   - Update Copyright notices for 2012 :-)
   - JOIN command: don't stop handling of channel lists when a single
@@ -46,7 +234,7 @@ ngIRCd Release 19
     limit reached), but report an error and continue. And don't check
     the channel limit and don't report with "too many channels" when
     trying to join a channel that the client already is a member of.
-  - ISON command: reply with the correct upper-/lowercase nick names.
+  - ISON command: reply with the correct upper-/lowercase nicknames.
   - New configuration option "PAMIsOptional": when set, clients not
     sending a password are still allowed to connect: they won't become
     "identified" and keep the "~" character prepended to their supplied
@@ -71,13 +259,17 @@ ngIRCd Release 19
   - Log better error messages when rejecting clients.
   - Implement IRC commands "GLINE" and "KLINE" to ban users. G-Lines are
     synchronized between server on peering, K-Lines are local only.
+    If you use "*!<user>@<host>" or "*!*@<host>" masks, these connections
+    are blocked even before the user is fully logged in (before PASS,
+    NICK, and USER commands have been processed) and before the child
+    processes for authentication are forked, so resource usage is smaller.
   - Xcode: update project file for Xcode 4.2 and define HAVE_GAI_STRERROR
     for Mac OS X Xcode builds.
   - ./configure: Fix logic and quoting of poll() detection code: only use
     poll() when poll.h exists as well.
   - Suppress 'Can't create pre-defined channel: invalid name: ""' message.
-  - whois-test: handle local hostname = "localhost.localdomain" using the
-    pattern "localhost*" for valid local hostnames.
+  - whois-test: handle local host name = "localhost.localdomain" using the
+    pattern "localhost*" for valid local host names.
   - sample-ngircd.conf: show correct default for "PAM" variable: The
     default of "PAM" is "yes" when ngIRCd has been configured to use it,
     so show the correct default value in the sample configuration file.
@@ -89,7 +281,7 @@ ngIRCd Release 19
     The bug has been introduced starting with ngIRCd 17 ... :-(
     (commit ID 6ebb31ab35e)
   - Added doc/Modes.txt: document modes supported by ngIRCd.
-  - Implement user mode "R": indicates that the nick name of this user
+  - Implement user mode "R": indicates that the nickname of this user
     is "registered". This mode isn't handled by ngIRCd itself, but must
     be set and unset by IRC services like Anope.
   - Implement channel mode "R": only registered users (having the user
@@ -107,7 +299,7 @@ ngIRCd Release 19
   - Handle channel user modes 'a', 'h', and 'q' from remote servers.
     These channel user modes aren't used for anything at the moment,
     but ngIRCd knows that these three modes are "channel user modes"
-    and not "channel modes", that is that these modes take an "nick name"
+    and not "channel modes", that is that these modes take an "nickname"
     argument. Like unknown user and channel modes, these modes are saved
     and forwarded to other servers, but ignored otherwise.
   - Correctly inform clients when other servers change their user modes.
@@ -191,10 +383,10 @@ ngIRCd Release 18 (2011-07-10)
     variable description.
   - Don't use "the.net" in sample-ngircd.conf, use "example.net".
   - Terminate incoming connections on HTTP commands "GET" and "POST".
-  - New configuration option "CloakHost": when set, this hostname is used for
-    every client instead of the real DNS hostname (or IP address).
+  - New configuration option "CloakHost": when set, this host name is used for
+    every client instead of the real DNS host name (or IP address).
   - New configuration option "CloakUserToNick": when enabled, ngIRCd sets
-    every clients' user name to their nick name and hides the user name
+    every clients' user name to their nickname and hides the user name
     supplied by the IRC client.
   - doc/Protocol.txt: Update description of the CHANINFO and WEBIRC commands.
   - Doxygen'ify (document) much more source files; code cleanup ...
@@ -297,7 +489,7 @@ ngIRCd Release 17 (2010-11-07)
   - configure script: correctly indent IPv6 yes/no summary output.
   - Don't reset My_Connections[Idx].lastping when reading data, so the
     client lag debug-output is working again.
-  - Implement user mode "x": hostname cloaking (closes: #102).
+  - Implement user mode "x": host name cloaking (closes: #102).
   - Make configure switch "--docdir" work (closes: #108).
   - Reformat and update FAQ.txt a little bit.
   - INSTALL: mention SSL, IPv6, and changed handling of MotdFile.
@@ -402,7 +594,7 @@ ngIRCd Release 14.1 (2009-05-05)
   - Allow ping timeout quit messages to show the timeout value.
   - Fix error handling on compressed links.
   - Fix server list announcement.
-  - Do not remove hostnames from info text.
+  - Do not remove host names from info text.
 
 ngIRCd Release 14 (2009-04-20)
 
@@ -498,7 +690,7 @@ ngIRCd 0.12.0 (2008-05-13)
   - RPL_WHOREPLY messages generated by IRC_WHO didn't include flags (*,@,+).
     (Dana Dahlstrom)
   - IRC_WHO now supports search patterns and will test this against user
-    nickname/servername/hostname, etc. as required by RFC 2812, Section 3.6.1.
+    nickname/server name/host name, etc. as required by RFC 2812, Section 3.6.1.
     (reported by Dana Dahlstrom)
   - Add test cases for "WHO" command. (Dana Dahlstrom)
   - Implement RFC 2812 handling of "0" argument to 'JOIN': must be treated
@@ -521,12 +713,12 @@ ngIRCd 0.11.0 (2008-01-15)
     ngircd to crash [from HEAD]. (CVE-2008-0285)
   
   ngIRCd 0.11.0-pre1 (2008-01-02)
-  - Use dotted-decimal IP address if hostname is >= 64.
+  - Use dotted-decimal IP address if host name is >= 64.
   - Add support for /STAT u (server uptime) command.
   - New [Server] configuration Option "Bind" allows to specify
     the source IP address to use when connecting to remote server.
   - New configuration option "MaxNickLength" to specify the allowed maximum
-    length of user nick names. Note: must be unique in an IRC network!
+    length of user nicknames. Note: must be unique in an IRC network!
   - Enhanced the IRC+ protocol to support an enhanced "server handshake" and
     enable server to recognize numeric 005 (ISUPPORT) and 376 (ENDOFMOTD).
     See doc/Protocol.txt for details.
@@ -747,7 +939,7 @@ ngIRCd 0.8.0 (2004-06-26)
     original ircd exactly: the unnecessary but missing ":" before the last
     parameter has been added.
   - Fixed TRACE: don't output "Serv" lines for ourself; display more info.
-  - Results of the resolver (hostnames and IDENT names) are discarded after
+  - Results of the resolver (host names and IDENT names) are discarded after
     the client is successfully registered with the server.
   - Better logging while establishing and shutting down connections.
   - The type of service (TOS) of all sockets is set to "interactive" now.