- 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".
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:
+
+ - "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
III.1 IRC+ status and success numerics
-800 - RPL_IP_CHARCONV_MSG
+801 - RPL_IP_CHARCONV
%1 :Client encoding set"
%1 client character set
III.2 IRC+ failure and error numerics
-850 - ERR_IP_CHARCONV_MSG
+851 - ERR_IP_CHARCONV
:Can't initialize client encoding