Module: ngircd.git
Branch: master
Commit: 7871a904d766e325bd2ce94dd8bea37f45198771
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=7871a904…
Author: Alexander Barton <alex(a)barton.de>
Date: Mon Nov 5 23:51:52 2012 +0100
doc/Protocol.txt: Document METADATA command
---
doc/Protocol.txt | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/doc/Protocol.txt b/doc/Protocol.txt
index d0f0780..516a4a4 100644
--- a/doc/Protocol.txt
+++ b/doc/Protocol.txt
@@ -81,6 +81,9 @@ 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.
@@ -194,13 +197,35 @@ 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-charset>'s is implementation dependent.
+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)
+ - "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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Module: ngircd.git
Branch: master
Commit: 79731a57f3f35744236407f128cdd09c32b700fa
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=79731a57…
Author: Alexander Barton <alex(a)barton.de>
Date: Mon Nov 5 23:11:41 2012 +0100
doc/Protocol.txt: add/fix CHARCONV description
---
doc/Protocol.txt | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/doc/Protocol.txt b/doc/Protocol.txt
index c7fd782..d0f0780 100644
--- a/doc/Protocol.txt
+++ b/doc/Protocol.txt
@@ -186,7 +186,19 @@ II.5 Client character encoding conversion
Command: CHARCONV
Parameters: <client-charset>
Used by: registered clients
- Replies: RPL_IP_CHARCONV_MSG, ERR_IP_CHARCONV_MSG
+ 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-charset>'s 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.
III. Numerics used by IRC+ Protocol
@@ -201,7 +213,7 @@ Numerics 800-849 are used for status and success messages, and numerics
III.1 IRC+ status and success numerics
-800 - RPL_IP_CHARCONV_MSG
+801 - RPL_IP_CHARCONV
%1 :Client encoding set"
%1 client character set
@@ -209,5 +221,5 @@ III.1 IRC+ status and success numerics
III.2 IRC+ failure and error numerics
-850 - ERR_IP_CHARCONV_MSG
+851 - ERR_IP_CHARCONV
:Can't initialize client encoding
Module: ngircd.git
Branch: master
Commit: a7f37cebdc300b3b87bb8d6b558769cf11441f61
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=a7f37ceb…
Author: DNS777 <dns(a)rbose.org>
Date: Tue Oct 16 07:28:44 2012 +0200
PredefChannelsOnly: Fix message for non pre-defined channels
If PredefChannelsOnly is enabled, and if someone tries to create
a channel which does not exist, then the error message is a 474.
The 474 Error message changed recently and does not match anymore:
'Cannot join channel (+b) -- You are banned'.
Changed the error message to numeric 403 'No such channel'.
Bug introduced by commit 9a82304a.
(cherry picked from commit 2c2e08f34187a33c1da745995c5f213e33a91410)
---
src/ngircd/irc-channel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c
index ed4839a..41947a8 100644
--- a/src/ngircd/irc-channel.c
+++ b/src/ngircd/irc-channel.c
@@ -365,7 +365,7 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
chan = Channel_Search(channame);
if (!chan && Conf_PredefChannelsOnly) {
/* channel must be created, but forbidden by config */
- IRC_WriteStrClient(Client, ERR_BANNEDFROMCHAN_MSG,
+ IRC_WriteStrClient(Client, ERR_NOSUCHCHANNEL_MSG,
Client_ID(Client), channame);
goto join_next;
}
Module: ngircd.git
Branch: master
Commit: 757f3497bc594a5a950806279349d361be7a1515
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=757f3497…
Author: Alexander Barton <alex(a)barton.de>
Date: Sun Nov 4 18:01:49 2012 +0100
Send NICK commands with prefix of (target) user
Now NICK commands are always generated using the prefix of the target
user, even when the nickname change has been initiated by some other
(pseudo) server or using the SVSNICK command. In this case, the prefix
of the initiator has been used, but this isn't compatible with clients
(at least weechat and irssi don't handle such NICK commands correctly).
---
src/ngircd/irc-login.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c
index 977fc54..5ec6162 100644
--- a/src/ngircd/irc-login.c
+++ b/src/ngircd/irc-login.c
@@ -971,7 +971,7 @@ Change_Nick(CLIENT *Origin, CLIENT *Target, char *NewNick, bool InformClient)
/* Inform all servers and users (which have to know) of the new name */
if (InformClient) {
- IRC_WriteStrClientPrefix(Target, Origin, "NICK :%s", NewNick);
+ IRC_WriteStrClientPrefix(Target, Target, "NICK :%s", NewNick);
IRC_WriteStrServersPrefix(NULL, Target, "NICK :%s", NewNick);
} else
IRC_WriteStrServersPrefix(Origin, Target, "NICK :%s", NewNick);
Module: ngircd.git
Branch: master
Commit: f2455cbe33aed1bbbef9dc31363cbf46ee87a4a3
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=f2455cbe…
Author: Alexander Barton <alex(a)barton.de>
Date: Sun Nov 4 13:22:26 2012 +0100
Update doc/Services.txt, sort services alphabetically
---
doc/Services.txt | 53 ++++++++++++++++++++++++++---------------------------
1 file changed, 26 insertions(+), 27 deletions(-)
diff --git a/doc/Services.txt b/doc/Services.txt
index 944afd4..26d1d7e 100644
--- a/doc/Services.txt
+++ b/doc/Services.txt
@@ -13,13 +13,16 @@ 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.
-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.4 or later (<http://www.anope.org/>)
+ - 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
~~~~~~~~~~~~~~~~~
@@ -63,6 +66,25 @@ settings marked as required:
}
+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 +114,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!