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