diff options
| author | Christine Dodrill <me@christine.website> | 2019-12-08 20:34:20 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-08 20:34:20 -0500 |
| commit | d6727621111387a2e5d83398b24927c97add9afe (patch) | |
| tree | 044ce6c40d85a47684fd3f2f2d5e1b80a5019127 | |
| parent | 8e1a2b73670decde87d6c307b3658383f0bcd136 (diff) | |
| download | xesite-d6727621111387a2e5d83398b24927c97add9afe.tar.xz xesite-d6727621111387a2e5d83398b24927c97add9afe.zip | |
blog: add IRC CHGHOST capability spec (#99)
This is from 2013. It is quite possibly one of my oldest writings on
the internet.
| -rw-r--r-- | blog/irc-chghost-2013-10-04.markdown | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/blog/irc-chghost-2013-10-04.markdown b/blog/irc-chghost-2013-10-04.markdown new file mode 100644 index 0000000..4a3044c --- /dev/null +++ b/blog/irc-chghost-2013-10-04.markdown @@ -0,0 +1,61 @@ +--- +title: "IRCv3.2 CHGHOST Extension" +date: "2013-10-04" +--- + +# IRCv3.2 CHGHOST Extension + +The chghost client capability allows a server to directly inform clients about a +host or user change without having to send a fake quit and join. This capability +MUST be referred to as `chghost` at capability negotiation time. + +When enabled, clients will get the CHGHOST message to designate the host of a +user changing for clients on common channels with them. + +The CHGHOST message is one of the following: + + :nick!user@host CHGHOST user new.host.goes.here + +This message represents that the user identified by nick!user@host has changed +host to another value. The first parameter is the user of the client. The +second parameter is the new host the client is using. + +On irc daemons with support for changing the user portion of a client, the +second form may appear: + + :nick!user@host CHGHOST newuser host + +If specified, a client may also have their user and host changed at the same +time: + + :nick!user@host CHGHOST newuser new.host.goes.here + +This second and third form should only be seen on IRC daemons that support +changing the user field of a user. + +In order to take full advantage of the CHGHOST message, clients must be modified +to support it. The proper way to do so is this: + +1. Enable the chghost capability at capability negotiation time during the + login handshake. + +2. Update the user and host portions of data structures and process channel + users as appropriate. + +## Examples + +In this example, `tim!~toolshed@backyard` gets their username changed to `b` and +their hostname changed to `ckyard`: + + :tim!~toolshed@backyard CHGHOST b ckyard + +In this example, `tim!b@ckyard` gets their username changed to `~toolshed` and +their hostname changed to `backyard`: + + :tim!b@ckyard CHGHOST ~toolshed backyard + +## Errata + +A previous version of this specification did not include any examples, which made +it unclear as to whether the de-facto `~` prefix should be included on CHGHOST +messages. The new examples make clear that it should be included.
\ No newline at end of file |
