]> jfr.im git - irc/rqf/shadowircd.git/blob - doc/technical/euid.txt
[svn] - the new plan:
[irc/rqf/shadowircd.git] / doc / technical / euid.txt
1 $Id: euid.txt 1863 2006-08-27 13:40:37Z jilles $
2
3 Extended UID command proposal
4 Jilles Tjoelker <jilles@stack.nl>
5
6 Introduction
7 ------------
8
9 The current protocol to deal with real and visible hosts, with UID, ENCAP
10 REALHOST and ENCAP CHGHOST commands has several problems.
11
12 In some cases (MONITOR) real hosts are used inappropriately because the UID
13 command contains the real host for new users. In other cases (atheme
14 akills), the visible host is used inappropriately because the UID command
15 contains the visible host for burst users. In both cases nothing is sent
16 after the UID command if real and visible hosts are equal. In the latter
17 case this problem can be worked around with end-of-burst detection but in
18 the former case that is not possible.
19
20 This can be fixed by sending both real and visible host in the same command.
21
22 This command can also include the data that is currently sent with ENCAP
23 LOGIN.
24
25 Another problem is that CHGHOST is an ENCAP command although it is important
26 for synchronization. One of the problems is that the target often remains
27 a UID even if sent to a TS5 server (various old services packages).
28
29 This can be fixed by making it a regular command.
30
31 Current commands
32 ----------------
33
34 (TS6 form only)
35
36 :<SID> UID <NICK> <HOPS> <TS> +<UMODE> <USERNAME> <HOSTNAME> <IP> <UID> :<GECOS>
37
38 Introduces a user, see Lee Hardy's ts6.txt.
39
40 :<UID> ENCAP * REALHOST <REALHOST>
41
42 Sets the real host of a user (the hostname in UID is the visible host).
43
44 :<SID> ENCAP * CHGHOST <UID> <VHOST>
45
46 Sets/changes the visible host of a user (the hostname in UID is the real host).
47
48 :<UID> ENCAP * LOGIN <ACCOUNT>
49
50 Sets the login name of a user.
51
52 New commands
53 ------------
54
55 :<SID> EUID <NICK> <HOPS> <TS> +<UMODE> <USERNAME> <VHOST> <IP> <UID> <REALHOST> <ACCOUNT> :<GECOS>
56
57 Introduces a user. The hostname field is now always the visible host.
58 The realhost field is * if the real host is equal to the visible host.
59 The account field is * if the login is not set.
60 Note that even if both new fields are *, an EUID command still carries more
61 information than a UID command (namely that real host is visible host and the
62 user is not logged in with services). Hence a NICK or UID command received
63 from a remote server should not be sent in EUID form to other servers.
64
65 :<SID> CHGHOST <UID> <VHOST>
66
67 Changes the visible host of a user.
68
69 A new server capab named EUID will be sent if these commands are supported.
70 If the capab is not present, the old commands must be used.
71 EUID can (in principle) also be used with TS5.