]> arthur.barton.de Git - ngircd-alex.git/blobdiff - doc/Protocol.txt
Implement account login support
[ngircd-alex.git] / doc / Protocol.txt
index 3d2cda6cb23f8bdd33dee20bc643dbfd59dec19c..ae290dd1d86f09d8f1ea971a0730ab7f7152e214 100644 (file)
@@ -81,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.
 
 - 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).
 
 - 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".
 - Z: Compressed server links are supported by the server.
 
 Example for a complete <flags> string: "ngircd|0.7.5:CZ".
@@ -133,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
 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.
 
 
 therefore to disconnect the peer prior to registering it in the network.
 
 
@@ -186,7 +192,44 @@ II.5 Client character encoding conversion
      Command: CHARCONV
   Parameters: <client-charset>
      Used by: registered clients
      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 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:
+
+ - "accountname": the account name of a client (can't be empty)
+ - "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)
+ - "certfp": the cert fingerprint of a client
 
 
 III. Numerics used by IRC+ Protocol
 
 
 III. Numerics used by IRC+ Protocol
@@ -201,7 +244,7 @@ Numerics 800-849 are used for status and success messages, and numerics
 
 III.1 IRC+ status and success 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
        %1 :Client encoding set"
 
                %1      client character set
@@ -209,5 +252,5 @@ III.1 IRC+ status and success numerics
 
 III.2 IRC+ failure and error numerics
 
 
 III.2 IRC+ failure and error numerics
 
-850 - ERR_IP_CHARCONV_MSG
+851 - ERR_IP_CHARCONV
        :Can't initialize client encoding
        :Can't initialize client encoding