X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2FProtocol.txt;h=b920b4553daa1ef88d8571847f7c015bd68d2901;hb=4169cb25e620cbd8a54cd19b509a8f88d7c295f9;hp=d0f0780f549a18b00f7f439d2336f7dcbcd147c7;hpb=79731a57f3f35744236407f128cdd09c32b700fa;p=ngircd-alex.git diff --git a/doc/Protocol.txt b/doc/Protocol.txt index d0f0780f..b920b455 100644 --- a/doc/Protocol.txt +++ b/doc/Protocol.txt @@ -2,7 +2,7 @@ ngIRCd - Next Generation IRC Server http://ngircd.barton.de/ - (c)2001-2012 Alexander Barton and Contributors. + (c)2001-2019 Alexander Barton and Contributors. ngIRCd is free software and published under the terms of the GNU General Public License. @@ -26,6 +26,12 @@ clients are compatible with a server configured that way, some can't even connect at all! Therefore this option usually isn't desired for "normal server operation". +In addition, ngIRCd implements some "IRCv3" features. This includes: + - IRCv3 Client Capability Negotiation + - IRCv3.1 multi-prefix Extension + - IRCv3.2 userhost-in-names Extension +Please see the IRCv3 homepage for more information: . + II. The IRC+ Protocol ~~~~~~~~~~~~~~~~~~~~~ @@ -81,11 +87,17 @@ The following 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 string: "ngircd|0.7.5:CZ". @@ -170,7 +182,7 @@ channel mode). In this case should be "0". II.4 Update webchat/proxy client information Command: WEBIRC - Parameters: + Parameters: [] Used by: unregistered clients only The WEBIRC command is used by some Web-to-IRC gateways to set the correct @@ -180,6 +192,9 @@ first command sent to the server, even before USER and NICK commands! The must be set in the server configuration file to prevent unauthorized clients to fake their identity; it is an arbitrary string. +Optionally, a 5th parameter is accepted to comply with an IRCv3 extension, +see , but ignored. + II.5 Client character encoding conversion @@ -194,13 +209,38 @@ received from the client using the set 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 . -The list of supported 's is implementation dependent. +The list of supported client character sets is implementation dependent. If a client sets its 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: + 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 and + 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", "M"), even if it doesn't support the given + itself: unknown names are ignored silently! + +The following 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~