]> arthur.barton.de Git - ngircd-alex.git/blobdiff - doc/Protocol.txt
Specify session context for OpenSSL clients
[ngircd-alex.git] / doc / Protocol.txt
index c7fd7826b85539d6e6615362b9693897a2e7fa27..6b3cfbcf3892b0cefa098177ed65ad4c32ba5bfa 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.
 
+- 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".
@@ -186,7 +192,44 @@ 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 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)
+ - "certfp": the certificate fingerprint of a client (can't be empty)
+ - "cloakhost": the cloaked hostname of a client
+ - "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
@@ -201,7 +244,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 +252,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