]> arthur.barton.de Git - ngircd-web.git/commitdiff
ngIRCd Release 20
authorAlexander Barton <alex@barton.de>
Mon, 17 Dec 2012 14:35:48 +0000 (15:35 +0100)
committerAlexander Barton <alex@barton.de>
Mon, 17 Dec 2012 14:35:48 +0000 (15:35 +0100)
14 files changed:
common/download.inc
doc/Capabilities.txt
doc/ChangeLog
doc/HowToRelease.txt
doc/INSTALL
doc/Modes.txt
doc/NEWS
doc/Platforms.txt
doc/Protocol.txt
doc/README
doc/Services.txt
doc/sample-ngircd.conf
news.php.de
news.php.en

index 529f98f6988ba99a1a34f2e3908772f9219628c4..e0a67d4d17b919b23180f553b691b3e852c636ba 100644 (file)
@@ -1,30 +1,16 @@
 <dl>
        <dt>
-               <strong>ngIRCd Release 19.2</strong> (2012-06-19):
+               <strong>ngIRCd Release 20</strong> (2012-12-17):
        </dt>
        <dd>
                <p>Server: <em>ftp.berlios.de</em>
                (<a href="ftp://ftp.berlios.de/pub/ngircd/">ftp</a>):
-               <a href="ftp://ftp.berlios.de/pub/ngircd/ngircd-19.2.tar.gz">ngircd-19.2.tar.gz</a>
-               (<a href="ftp://ftp.berlios.de/pub/ngircd/ngircd-19.2.tar.gz.sig">Sig</a>)
+               <a href="ftp://ftp.berlios.de/pub/ngircd/ngircd-20.tar.gz">ngircd-20.tar.gz</a>
+               (<a href="ftp://ftp.berlios.de/pub/ngircd/ngircd-20.tar.gz.sig">Sig</a>)
                <br>Server: <em>ngircd.barton.de</em>
                (<a href="http://ngircd.barton.de/pub/ngircd/">http</a>):
-               <a href="http://ngircd.barton.de/pub/ngircd/ngircd-19.2.tar.gz">ngircd-19.2.tar.gz</a>
-               (<a href="http://ngircd.barton.de/pub/ngircd/ngircd-19.2.tar.gz.sig">Sig</a>)
-               </ul>
-       </dd>
-       <dt>
-               <strong>ngIRCd Release 20~rc2</strong> (2012-12-02):
-       </dt>
-       <dd>
-               <p>Server: <em>ftp.berlios.de</em>
-               (<a href="ftp://ftp.berlios.de/pub/ngircd/">ftp</a>):
-               <a href="ftp://ftp.berlios.de/pub/ngircd/ngircd-20~rc2.tar.gz">ngircd-20~rc2.tar.gz</a>
-               (<a href="ftp://ftp.berlios.de/pub/ngircd/ngircd-20~rc2.tar.gz.sig">Sig</a>)
-               <br>Server: <em>ngircd.barton.de</em>
-               (<a href="http://ngircd.barton.de/pub/ngircd/">http</a>):
-               <a href="http://ngircd.barton.de/pub/ngircd/ngircd-20~rc2.tar.gz">ngircd-20~rc2.tar.gz</a>
-               (<a href="http://ngircd.barton.de/pub/ngircd/ngircd-20~rc2.tar.gz.sig">Sig</a>)
+               <a href="http://ngircd.barton.de/pub/ngircd/ngircd-20.tar.gz">ngircd-20.tar.gz</a>
+               (<a href="http://ngircd.barton.de/pub/ngircd/ngircd-20.tar.gz.sig">Sig</a>)
                </ul>
        </dd>
 </dl>
index 9a692ea6cd273a4a6ec4c460ff6d9c0dc89e33d2..d26b8403ef82905b494b9c64d6c7daf27554c1c5 100644 (file)
@@ -19,5 +19,10 @@ ngIRCd implements the "IRC Client Capabilities Extension" as described here:
 I. Supported Capabilities
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
-None. At the moment, ngIRCd supports the "CAP" command and its sub-commands
-but offers no capabilities that could be requested by a client.
+* "multi-prefix"
+
+   When requested, the multi-prefix client capability will cause the IRC
+   server to send all possible prefixes which apply to a user in NAMES and
+   WHO output.
+
+   See <http://ircv3.atheme.org/extensions/multi-prefix-3.1>.
index 37fb0607fe072b650c5c661f074346294575566d..9e2a0428bee33c1e93aa39dc8dc0b9a18ba2847b 100644 (file)
@@ -9,7 +9,168 @@
                                -- ChangeLog --
 
 
-ngIRCd Release 19.2
+ngIRCd 20 (2012-12-17)
+
+  - Allow user names ("INDENT") up to 20 characters when ngIRCd has not
+    been configured for "strict RFC mode". This is useful if you are using
+    external (PAM) authenticaion mechanisms that require longer user names.
+    Patch suggested by Brett Smith <brett@w3.org>, see
+    <http://arthur.barton.de/pipermail/ngircd-ml/2012-October/000579.html>.
+
+  ngIRCd 20~rc2 (2012-12-02)
+  - Rework cloaked hostname handling and implement the "METADATA cloakhost"
+    subcommand: Now ngIRCd uses two fields internally, one to store the
+    "real" hostname and one to save the "cloaked" hostname. This allows
+    "foreign servers" (aka "IRC services") to alter the real and cloaked
+    hostnames of clients without problems, even when the user itself issues
+    additional "MODE +x" and "MODE -x" commands.
+  - RPL_UMODEIS: send correct target name, even on server links.
+  - Update platformtest.sh to follow autoconf changes and only generate
+    the "configure" script when it is missing.
+  - Fix the test suite to correctly execute test scripts even when stdout
+    is redirected.
+  - Fix some compiler warnings on NetBSD and OpenBSD.
+
+  ngIRCd 20~rc1 (2012-11-11)
+  - Update doc/Services.txt: describe the upcoming version of Anope 1.9.8,
+    then including a protocol module for ngIRCd. And remove our own patches
+    in ./contrib/Anope because they aren't supported any more ...
+  - Implement new "METADATA" command which can be used by remote servers
+    and IRC services to update client metadata like the client info text
+    ("real name"), user name, and hostname, and use this command to
+    configure an cloaked hostname (user mode "+x") on remote servers:
+    This prevents "double cloaking" of hostnames and even cloaked
+    hostnames are in sync on all servers supporting "METADATA" now.
+  - Fix error message when trying to join non-predefined channels and the
+    "PredefChannelsOnly" configuration option is set.
+  - Implement new IRC "SVSNICK" command to allow remote servers (and IRC
+    services) to change nicknames of already registered users. The SVSNICK
+    command itself doesn't change the nickname, but it becomes forwarded
+    to the server to which the user is connected to. And then this server
+    initiates the real nickname changing using regular NICK commands.
+    This allows to run mixed networks with old servers not supporting the
+    SVSNICK command, because SVSNICK commands for nicknames on such servers
+    are silently ignored and don't cause a desynchronization of the network.
+  - Make server reconnect time a little bit more random, so that two
+    servers trying to connect to each other asynchronously don't try this
+    in exactly the same time periods and kick each other off ...
+  - Don't accept connections for servers already being linked: there was a
+    time frame that could result in one connection overwriting the other,
+    e. g. the incoming connection overwriting the status of the outgoing
+    one. And this could lead to all kind of weirdness (even crashes!) later
+    on: now such incoming connections are dropped.
+  - 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
@@ -80,7 +241,7 @@ ngIRCd Release 19 (2012-02-29)
     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 nick name is registered (if user mode 'R' set).
+    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.
@@ -121,7 +282,7 @@ ngIRCd Release 19 (2012-02-29)
     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
@@ -168,7 +329,7 @@ ngIRCd Release 19 (2012-02-29)
     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
@@ -186,7 +347,7 @@ ngIRCd Release 19 (2012-02-29)
   - 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.
@@ -273,7 +434,7 @@ ngIRCd Release 18 (2011-07-10)
   - 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 ...
@@ -605,7 +766,7 @@ ngIRCd 0.11.0 (2008-01-15)
   - 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.
index d4d82bc79e2dcb979fe2fa03ff47940f30449a65..429c3d84a50a2a33c1608497f01b22d2bf2cc0c1 100644 (file)
@@ -40,7 +40,7 @@ a) Make sure the source tree is in a releasable state ;-)
 
 b) Make sure you have working versions of GNU autoconf and GNU automake
    installed on the system you use for generating the release:
-   as of October 2010 we are using GNU autoconf 2.61 and GNU automake 1.10.1
+   as of October 2010 we are using GNU autoconf 2.67 and GNU automake 1.11.1
    which seem to work just fine.
 
 c) Update the files describing the new release:
index 4e1cd2fb7916e779824b1bb08077ff278061fd0c..b445958159e85bdd03cc4b6328c1c59bb0938df1 100644 (file)
 I. Upgrade Information
 ~~~~~~~~~~~~~~~~~~~~~~
 
+Differences to version 19.x
+
+- Starting with ngIRCd 20, users can "cloak" their hostname only when the
+  configuration variable "CloakHostModeX" (introduced in 19.2) is set.
+  Otherwise, only IRC opertators, other servers, and services are allowed to
+  set mode +x. This prevents regular users from changing their hostmask to
+  the name of the IRC server itself, which confused quite a few people ;-)
+
 Differences to version 17
 
 - Support for ZeroConf/Bonjour/Rendezvous service registration has been
@@ -149,10 +157,14 @@ This step is therefore only interesting for developers.
 
 autogen.sh produces the Makefile.in's, which are necessary for the configure
 script itself, and some more files for make. To run autogen.sh you'll need
-GNU autoconf and GNU automake (use recent versions! autoconf 2.53 and
-automake 1.6.1 are known to work).
-
-Again: "end users" do not need this step!
+GNU autoconf and GNU automake: at least autoconf 2.61 and automake 1.10 are
+requird, newer is better. But don't use automake 1.12 or newer for creating
+distribution archives: it will work but lack "de-ANSI-fucation" support in the
+generated Makefile's! Stick with automake 1.11.x for this purpose ...
+So automake 1.11.x and autoconf 2.67+ is recommended.
+
+Again: "end users" do not need this step and neither need GNU autoconf nor GNU
+automake at all!
 
 
 2): "./configure"
index e47e2707244f9d30894c6b108357918468fa92af..aee7491c20783051d24d65705637c25ac3779cac 100644 (file)
@@ -2,7 +2,7 @@
                      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.
 
@@ -22,10 +22,13 @@ channels he is using at the moment.
   mode since   description
 
   a    0.3.0   User is away.
+  b    20      User blocks private messages and notices.
+  B    20      User is flagged as a "bot".
   c    17      IRC operator wants to receive connect/disconnect NOTICEs.
   C    19      Only users that share a channel are allowed to send messages.
   i    0.0.1   User is "invisible".
   o    0.0.1   User is IRC operator.
+  q    20      User is protected, can not be kicked from a channel.
   r    0.0.1   User is restricted.
   R (1)        19      User is registered (e.g. by NickServ).
   s    0.4.0   User wants to receive server notices.
@@ -49,13 +52,16 @@ users to lists (e.g. "invite list", "ban list"), others have parameters
   k    0.6.0   Channel has a "key" (a password).
   l    0.6.0   Channel has a user limit.
   m    0.3.0   Channel is moderated, only "voiced" users can send messages.
+  M    20      Only registered users (and IRC Ops) can send messages.
   n    0.3.0   Channel doesn't allow messages of users not being members.
   O    18      Only IRC operators are allowed to join this channel.
   P    0.5.0   Channel is "persistent".
+  Q    20      Nobody can be kicked from the channel.
   r (1)        19      Channel is "registered" (e.g. by ChanServ).
   R    19      Only registered users are allowed to join this channel.
   s    0.9.0   Channel is "secret".
   t    0.3.0   Only ChanOps are allowed to modify the channel topic.
+  V    20      Channel doesn't allow invites.
   z    16      Only users connected via SSL are allowed to join the channel.
 
 III. Channel User Modes
@@ -66,7 +72,12 @@ channel of which he is a member.
 
   mode since   description
 
+  q    20      User is channel owner can only be set by a service, other
+               owner and irc op. Can promote other users to q, a, o, h, v.
+  a    20      User is channel admin and can promote other users to v, h, o
   o    0.2.0   User is channel operator and can op/kick/... other members.
+  h    20      User is half op and can set channel modes imntvIbek and kick
+               voiced and normal users.
   v    0.2.0   User is "voiced" and can speak even if channel is moderated.
 
 
index 4530de1fadb3da9bbb6f5b05475d12eeef5b7b39..96ecdc8bd12cb3ed9400d49a2a8ce64cb4403ee1 100644 (file)
--- a/doc/NEWS
+++ b/doc/NEWS
@@ -9,9 +9,106 @@
                                   -- NEWS --
 
 
+ngIRCd 20 (2012-12-17)
+
+  - Allow user names ("INDENT") up to 20 characters when ngIRCd has not
+    been configured for "strict RFC mode". This is useful if you are using
+    external (PAM) authenticaion mechanisms that require longer user names.
+    Patch suggested by Brett Smith <brett@w3.org>, see
+    <http://arthur.barton.de/pipermail/ngircd-ml/2012-October/000579.html>.
+
+  ngIRCd 20~rc2 (2012-12-02)
+  - Rework cloaked hostname handling and implement the "METADATA cloakhost"
+    subcommand: Now ngIRCd uses two fields internally, one to store the
+    "real" hostname and one to save the "cloaked" hostname. This allows
+    "foreign servers" (aka "IRC services") to alter the real and cloaked
+    hostnames of clients without problems, even when the user itself issues
+    additional "MODE +x" and "MODE -x" commands.
+
+  ngIRCd 20~rc1 (2012-11-11)
+  - Update doc/Services.txt: describe the upcoming version of Anope 1.9.8,
+    then including a protocol module for ngIRCd. And remove our own patches
+    in ./contrib/Anope because they aren't supported any more ...
+  - Implement new "METADATA" command which can be used by remote servers
+    and IRC services to update client metadata like the client info text
+    ("real name"), user name, and hostname, and use this command to
+    configure an cloaked hostname (user mode "+x") on remote servers:
+    This prevents "double cloaking" of hostnames and even cloaked
+    hostnames are in sync on all servers supporting "METADATA" now.
+  - Implement new IRC "SVSNICK" command to allow remote servers (and IRC
+    services) to change nicknames of already registered users. The SVSNICK
+    command itself doesn't change the nickname, but it becomes forwarded
+    to the server to which the user is connected to. And then this server
+    initiates the real nickname changing using regular NICK commands.
+    This allows to run mixed networks with old servers not supporting the
+    SVSNICK command, because SVSNICK commands for nicknames on such servers
+    are silently ignored and don't cause a desynchronization of the network.
+  - 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)
+  - 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)
+  - 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)
+  - 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)
+  - 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)
+  - 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 :-)
+  - 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.
+  - 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.
+
+ngIRCd Release 19.2 (2012-06-19)
+
+  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.
+  - 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.
+
 ngIRCd Release 19.1 (2012-03-19)
 
-  - Really include _all_ patchtes to build the Anope module into the
+  - Really include _all_ patches to build the Anope module into the
     distribution archive ... ooops!
 
 ngIRCd Release 19 (2012-02-29)
@@ -19,7 +116,7 @@ ngIRCd Release 19 (2012-02-29)
   ngIRCd 19~rc1 (2012-02-12)
   - 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 hostname
+  - 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
@@ -31,7 +128,7 @@ ngIRCd Release 19 (2012-02-29)
     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 nick name is registered (if user mode 'R' set).
+    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.
@@ -67,7 +164,7 @@ ngIRCd Release 19 (2012-02-29)
     NICK, and USER commands have been processed) and before the child
     processes for authentication are forked, so resource usage is smaller.
   - 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
@@ -78,7 +175,7 @@ ngIRCd Release 19 (2012-02-29)
   - 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.
 
@@ -134,10 +231,10 @@ ngIRCd Release 18 (2011-07-10)
     (booleans, text strings, integer numbers) and add type information to each
     variable description.
   - 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.
   - Make write buffers bigger, but flush early. Before this change, a client
     got disconnected if the buffer flushing at 4k failed, now regular clients
@@ -187,7 +284,7 @@ ngIRCd Release 17 (2010-11-07)
   - Enable the daemon to disable and enable "debug mode" on runtime using
     signal SIGUSR1, when debug code is compiled in, not only on startup
     using the command line parameters.
-  - Implement user mode "x": hostname cloaking (closes: #102).
+  - Implement user mode "x": host name cloaking (closes: #102).
   - Change MOTD file handling: ngIRCd now caches the contens 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.
@@ -292,7 +389,7 @@ ngIRCd 0.12.0 (2008-05-13)
   - Implemented IRC commands INFO, SUMMON (dummy), and USERS (dummy) and
     enhanced test suite to check these commands. (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)
   - Implement RFC 2812 handling of "0" argument to 'JOIN': must be treated
     as if the user had sent PART commands for all channels the user is a
@@ -305,7 +402,7 @@ ngIRCd 0.11.0 (2008-01-15)
   - 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!
   - Numeric 317: implemented "signon time" (displayed in WHOIS result).
   - Added new server configuration option "Passive" for "Server" blocks to
     disable automatic outgoing connections (similar to -p option to ngircd,
index b8e33b5f4b8f0e985cd189b5b3c2c924c4038463..9ff3b6c9e66fde6b52d48be817f836e38c671d34 100644 (file)
@@ -39,8 +39,8 @@ i386/pc/solaris2.9          gcc 3.2.2    CVSHEAD    04-02-24 alex   Y Y Y Y
 i386/pc/solaris2.11         gcc 3.4.3    19         12-02-26 alex   Y Y N Y (4)
 i386/pc/solaris2.11         gcc 4.2.3    19.1       12-05-29 goetz  Y Y Y Y (4)
 i386/unknown/freebsd5.2.1   gcc 3.3.3    0.8.0      04-05-30 alex   Y Y Y Y
-i386/unknown/freebsd6.2     gcc 3.4.6    19         12-02-26 alex   Y Y Y Y (3)
-i386/unknown/freebsd7.3     gcc 4.2.1    19         12-02-26 alex   Y Y Y Y (3)
+i386/unknown/freebsd6.2     gcc 3.4.6    20~rc1     12-11-13 alex   Y Y Y Y (3)
+i386/unknown/freebsd7.3     gcc 4.2.1    20~rc1     12-11-13 alex   Y Y Y Y (3)
 i686/unknown/gnu0.3         gcc 4.4.5    19         12-02-29 alex   Y Y Y Y
 i686/unkn./kfreebsd7.2-gnu  gcc 4.3.4    15         09-12-02 alex   Y Y Y Y (3)
 i386/unknown/netbsdelf1.6.2 gcc 2.95.3   18         11-07-10 goetz  Y Y Y Y
@@ -49,6 +49,7 @@ i386/unknown/netbsdelf4.0   gcc 4.1.2    19         12-02-29 alex   Y Y Y Y (3)
 i386/unknown/netbsdelf5.0.2 gcc 4.1.3    19         12-02-26 alex   Y Y Y Y (3)
 i386/unknown/openbsd3.9     gcc 3.3.5    0.10.0-p1  06-08-30 alex   Y Y Y Y (3)
 i386/unknown/openbsd4.1     gcc 3.3.5    16         10-04-11 alex   Y Y Y Y (3)
+i586/pc/haiku               gcc 2.95.3   19.2~138   12-10-11 user   Y Y N N
 i586/pc/interix3.5          gcc 3.3      19         12-02-29 alex   Y Y N Y
 i686/pc/cygwin              gcc 3.3.1    0.8.0      04-05-30 alex   Y Y N Y
 i686/pc/linux-gnu           gcc 2.7.2    19.1       12-05-30 goetz  Y Y Y Y (1)
@@ -72,10 +73,12 @@ powerpc/unknown/openbsd3.6  gcc 2.95.3   0.10.0     06-10-08 alex   Y Y N Y
 sparc/sun/solaris2.6        gcc 2.95.3   0.7.x-CVS  03-04-22 alex   Y Y Y Y
 sparc/sun/solaris2.7        gcc 3.3      0.8.0      04-05-30 alex   Y Y Y Y
 sparc/unkn./netbsdelf1.6.1  gcc 2.95.3   0.8.0      04-05-30 alex   Y Y Y Y
-x86_64/unknown/freebsd8.1   gcc 4.2.1    19         12-02-26 alex   Y Y Y Y (3)
+x86_64/apple/darwin12.2.0   gcc 4.2.1    20~rc1     12-11-13 alex   Y Y Y Y (3)
+x86_64/unknown/freebsd8.1   gcc 4.2.1    20~rc1     12-11-13 alex   Y Y Y Y (3)
 x86_64/unkn./freebsd8.1-gnu gcc 4.4.5    19         12-02-26 alex   Y Y Y Y (3)
-x86_64/unknown/linux-gnu    gcc 4.4.5    19         12-02-26 alex   Y Y Y Y (1)
-x86_64/unknown/openbsd4.7   gcc 3.3.5    19         12-02-26 alex   Y Y Y Y (3)
+x86_64/unknown/linux-gnu    gcc 4.4.5    20~rc1     12-02-26 alex   Y Y Y Y (1)
+x86_64/unknown/openbsd4.7   gcc 3.3.5    20~rc1     12-02-26 alex   Y Y Y Y (3)
+x86_64/unknown/openbsd4.8   gcc 4.2.1    20~rc1     12-11-13 alex   Y Y Y Y (3)
 
 
 Notes
index 5093eea9f3ace44b40b5c6388f0395dcc66f4693..39c5730bd4a76da18380af3f44562c806b1e005e 100644 (file)
@@ -1,9 +1,8 @@
 
                      ngIRCd - Next Generation IRC Server
+                           http://ngircd.barton.de/
 
-                        (c)2001-2008 Alexander Barton,
-                    alex@barton.de, http://www.barton.de/
-
+               (c)2001-2012 Alexander Barton and Contributors.
                ngIRCd is free software and published under the
                    terms of the GNU General Public License.
 
@@ -82,11 +81,17 @@ The following <serverflags> are defined at the moment:
 - H: The server supports the "enhanced server handshake", see section II.2
      for a detailed description.
 
+- M: Changing client "metadata" (hostname, real name, ...) using the
+     METADATA command is supported.
+
 - o: IRC operators are allowed to change channel- and channel-user-modes
      even if they aren't channel-operator of the affected channel.
 
 - S: The server supports the SERVICE command (on this link).
 
+- X: Server supports XOP channel modes (owner, admin, halfop) and supports
+     these user prefixes in CHANINFO commands, for example.
+
 - Z: Compressed server links are supported by the server.
 
 Example for a complete <flags> string: "ngircd|0.7.5:CZ".
@@ -134,7 +139,7 @@ protocol which allows at max 15 arguments per command).
 Please see <http://www.irc.org/tech_docs/005.html> for details.
 
 The information exchanged using ISUPPORT can be used to detect configuration
-incompatibilities (different maximum nick name length, for example) and
+incompatibilities (different maximum nickname length, for example) and
 therefore to disconnect the peer prior to registering it in the network.
 
 
@@ -181,3 +186,69 @@ first command sent to the server, even before USER and NICK commands!
 The <password> must be set in the server configuration file to prevent
 unauthorized clients to fake their identity; it is an arbitrary string.
 
+
+II.5 Client character encoding conversion
+
+     Command: CHARCONV
+  Parameters: <client-charset>
+     Used by: registered clients
+     Replies: RPL_IP_CHARCONV, ERR_IP_CHARCONV
+
+A client can set its character set encoding using the CHARCONV command:
+after receiving such a command, the server translates all message data
+received from the client using the set <client-charset> to the server
+encoding (UTF-8), and all message data which is to be sent to the client
+from the server encoding (UTF-8) to <client-charset>.
+
+The list of supported client character sets is implementation dependent.
+
+If a client sets its <client-charset> to the server encoding (UTF-8),
+it disables all conversions; the connection behaves as if no CHARCONV
+command has been sent at all in this session.
+
+
+II.6 Update client "metadata"
+
+     Command: METADATA
+  Parameters: <target> <key> <value>
+     Used by: servers only
+
+The METADATA command is used on server-links to update "metadata" information
+of clients, like the hostname, the info text ("real name"), or the user name.
+
+The server updates its client database according to the received <key> and
+<value> parameters, and passes the METADATA command on to all the other
+servers in the network that support this command (see section II.1 "Register
+new server link", <serverflag> "M"), even if it doesn't support the given
+<key> itself: unknown <key> names are ignored silently!
+
+The following <key> names are defined:
+
+ - "host": the hostname of a client (can't be empty)
+ - "cloakhost": the cloaked hostname of a client
+ - "info": info text ("real name") of a client
+ - "user": the user name of a client (can't be empty)
+
+
+III. Numerics used by IRC+ Protocol
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The IRC+ protocol uses numerics in the range 800-899 which aren't used by
+RFC 2812 and hopefully don't clash with other implementations ...
+
+Numerics 800-849 are used for status and success messages, and numerics
+850-899 are failure and error messages.
+
+
+III.1 IRC+ status and success numerics
+
+801 - RPL_IP_CHARCONV
+       %1 :Client encoding set"
+
+               %1      client character set
+
+
+III.2 IRC+ failure and error numerics
+
+851 - ERR_IP_CHARCONV
+       :Can't initialize client encoding
index 2e19d831deac91663730963afba874b0f52dd736..11d140d6464b7fb780fa79d9f7c3fa96b2197306 100644 (file)
 I. Introduction
 ~~~~~~~~~~~~~~~
 
-ngIRCd is an Open Source server for the Internet Relay Chat (IRC), which
-is developed and published under the terms of the GNU General Public
-Licence, see the file COPYING for details. ngIRCd means "next generation
-IRC daemon" (which is a little bit exaggerated, "lightweight Internet Relay
-Chat server" would be better), it's written from scratch and not deduced
-from the "grandfather of IRC daemons", the daemon of the IRCNet.
+ngIRCd is a free, portable and lightweight Internet Relay Chat server for
+small or private networks, developed under the GNU General Public License
+(GPL; please see the file COPYING for details). It is simple to configure,
+can cope with dynamic IP addresses, and supports IPv6 as well as SSL. It is
+written from scratch and not based on the original IRCd.
+
+The name ngIRCd means next generation IRC daemon, which is a little bit
+exaggerated: lightweight Internet Relay Chat server most probably would be a
+better name :-)
 
 Please see the INSTALL document for installation and upgrade information!
 
index 944afd4807c87cd4dc366c810cf791fe689379c9..f51bd488aed61338d1ba9b3f3b1a377cbf3af008 100644 (file)
@@ -9,17 +9,20 @@
                               -- Services.txt --
 
 
-At the moment, ngIRCd doesn't implement a "special IRC services interface".
-But services acting as a "regular server" are supported, either using the IRC
-protocol defined in RFC 1459 or RFC 2812.
+ngIRCd doesn't implement a "special IRC services interface", but services
+acting as a "regular servers" ("pseudo servers") are supported, either
+using the IRC protocol as defined in RFC 1459 or RFC 2812.
 
-Support for Services has been tested using "IRC Services" version 5.x by
-Andrew Church (<http://achurch.org/services/>), Anope 1.9 using a
-preliminary protocol module for ngIRCd (<http://www.anope.org/>), and
-Atheme 7.0.2 or later.
+Support for Services has been tested using
+ - Anope 1.9.8 or later (<http://www.anope.org/>; unreleased!)
+ - Atheme 7.0.2 or later (<http://www.atheme.net>)
+ - "IRC Services" 5.1.x by Andrew Church (<http://achurch.org/services/>)
 
 This document describes setting up ngIRCd and these services.
 
+Please let us know if you are successfully using other IRC service packages or
+which problems you encounter -- thanks!
+
 
 Setting up ngIRCd
 ~~~~~~~~~~~~~~~~~
@@ -41,13 +44,21 @@ Example:
 Setting up Anope 1.9.x
 ~~~~~~~~~~~~~~~~~~~~~~
 
-Anope 1.9.4 (and above) can be used with ngIRCd using a preliminary "ngircd"
-protocol module contained in our contrib/Anope/ directory. Please see the
-file contrib/Anope/README for installation instructions!
+Anope 1.9.8 or later (<http://www.anope.org/>; unreleased as of 2012-11-10)
+may be used with ngIRCd using the "ngircd" protocol module.
+Until Anope 1.9.8 is released, you have to use the sources from the Anope
+development GIT tree, see <http://sourceforge.net/projects/anope/develop/>!
+
+At least the following settings have to be tweaked, in addition to all the
+settings marked as required by Anope:
 
-After patching and installing Anope, at least the following configuration
-variables have to be adjusted in data/services.conf, in addition to all the
-settings marked as required:
+In conf/services.conf:
+
+  define
+  {
+       name = "services.host"
+       value = "services.irc.net"
+  }
 
   uplink
   {
@@ -56,13 +67,46 @@ settings marked as required:
        password = "123abc"
   }
 
-  serverinfo
+  # Load ngIRCd protocol module
+  module { name = "ngircd" }
+
+  networkinfo
+  {
+       # Must be set to the "MaxNickLength" setting of ngIRCd!
+       nicklen = 9
+
+       chanlen = 50
+  }
+
+In conf/nickserv.conf:
+
+  nickserv
   {
-       name = "services.irc.net"
-       type = "ngircd"
+       # not required if you are running ngIRCd with a higher nickname limit
+       # ("MaxNickLength") than 11 characters, but REQUIRED by default!
+       guestnickprefix = "G-"
   }
 
 
+Setting up Atheme 7.0.2 or later
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Atheme 7.0.2 or later (<http://www.atheme.net>) may be used with ngIRCd using
+the "ngircd" protocol module.
+
+The following settings need to be in atheme.conf:
+
+  loadmodule "modules/protocol/ngircd";
+
+  uplink "server.irc.net" {
+       password = "123abc";
+       port = 6667;
+  };
+
+The documentation of Atheme can be found in the doc/ directory of the
+Atheme source distribution.
+
+
 Setting up IRC Services 5.1.x
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -92,26 +136,3 @@ In modules.conf:
 
 The documentation of IRC Services can be found here:
 <http://www.ircservices.za.net/docs/>
-
-
-Setting up Atheme 7.0.2 or later
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Atheme 7.0.2 or later may be used with ngIRCd using the "ngircd" protocol
-module.
-
-The following settings need to be in atheme.conf:
-
-loadmodule "modules/protocol/ngircd";
-
-uplink "server.irc.net" {
-       password = "123abc";
-       port = 6667;
-};
-
-The documentation of Atheme can be found in the doc/ directory of the
-Atheme source distribution.
-
-
-Please let us know if you are successfully using other IRC service packages or
-which problems you encounter, thanks!
index c3d0050524883560ea3f9e254d6ddabfb4320fde..3cf53a6872c51ce8f6b91c7d01a78fefe1626fa9 100644 (file)
        # Maximum number of channels a user can be member of (0: no limit):
        ;MaxJoins = 10
 
-       # Maximum length of an user nick name (Default: 9, as in RFC 2812).
+       # Maximum length of an user nickname (Default: 9, as in RFC 2812).
        # Please note that all servers in an IRC network MUST use the same
-       # maximum nick name length!
+       # maximum nickname length!
        ;MaxNickLength = 9
 
+       # Maximum number of channels returned in response to a /list
+       # command (0: unlimited):
+       ;MaxListSize = 100
+
        # After <PingTimeout> seconds of inactivity the server will send a
        # PING to the peer to test whether it is alive or not.
        ;PingTimeout = 120
        ;ChrootDir = /var/empty
 
        # Set this hostname for every client instead of the real one.
-       # Please note: don't use the percentage sign ("%"), it is reserved for
-       # future extensions!
-       ;CloakHost = irc.example.net
+       # Use %x to add the hashed value of the original hostname.
+       ;CloakHost = cloaked.host
+
+       # Use this hostname for hostname cloaking on clients that have the
+       # user mode "+x" set, instead of the name of the server.
+       # Use %x to add the hashed value of the original hostname.
+       ;CloakHostModeX = cloaked.user
 
-       # Set every clients' user name to their nick name
+       # The Salt for cloaked hostname hashing. When undefined a random
+       # hash is generated after each server start.
+       ;CloakHostSalt = abcdefghijklmnopqrstuvwxyz
+
+       # Set every clients' user name to their nickname
        ;CloakUserToNick = yes
 
        # Try to connect to other IRC servers using IPv4 and IPv6, if possible.
        # they are not(!) channel-operators?
        ;OperCanUseMode = no
 
+       # Should IRC Operators get AutoOp (+o) in persistent (+P) channels?
+       ;OperChanPAutoOp = yes
+
        # Mask IRC Operator mode requests as if they were coming from the
        # server? (This is a compatibility hack for ircd-irc2 servers)
        ;OperServerMode = no
        # [Operator] sections are used to define IRC Operators. There may be
        # more than one [Operator] block, one for each local operator.
 
-       # ID of the operator (may be different of the nick name)
+       # ID of the operator (may be different of the nickname)
        ;Name = TheOper
 
        # Password of the IRC operator
        # Connect to the remote server using TLS/SSL (Default: false)
        ;SSLConnect = yes
 
-       # Define a (case insensitive) mask matching nick names that should be
-       # treated as IRC services when introduced via this remote server.
+       # Define a (case insensitive) list of masks matching nicknames that
+       # should be treated as IRC services when introduced via this remote
+       # server, separated by commas (",").
        # REGULAR SERVERS DON'T NEED this parameter, so leave it empty
        # (which is the default).
        # When you are connecting IRC services which mask as a IRC server
        # and which use "virtual users" to communicate with, for example
        # "NickServ" and "ChanServ", you should set this parameter to
-       # something like "*Serv".
-       ;ServiceMask = *Serv
+       # something like "*Serv" or "NickServ,ChanServ,XyzServ".
+       ;ServiceMask = *Serv,Global
 
 [Server]
        # More [Server] sections, if you like ...
index b593b2965853d47ec90a19b0a06a4a91520b822a..ff5d30f206685ed27824efcc9b7037807da6234b 100644 (file)
@@ -13,7 +13,7 @@
 </h3>
 <p>
        Die aktuelle stabile Version ist
-       <strong>Release 19.2</strong> vom 19. Juni 2012,
+       <strong>Release 20</strong> vom 17. Dezember 2012,
        siehe auch die
        <a href="download.php.de">Download-M&ouml;glichkeiten</a>.
 </p>
index 1a146cd914c2aa65df48b58934fe2140a120416b..b60a3cd285db4310b52588791770287547f01262 100644 (file)
@@ -13,7 +13,7 @@
 </h3>
 <p>
        The current stable version is
-       <strong>Release 19.2</strong> of June 19 2012,
+       <strong>Release 20</strong> of December 17 2012,
        please also refer to the <a href="download.php.en">Download</a>
        options.
 </p>