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