forked from cadey/xesite
blog: add IRC CHGHOST capability spec (#99)
This is from 2013. It is quite possibly one of my oldest writings on the internet.
This commit is contained in:
parent
8e1a2b7367
commit
d672762111
|
@ -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.
|
Loading…
Reference in New Issue