]>
Commit | Line | Data |
---|---|---|
212380e3 | 1 | Nick collision FNC |
2 | Jilles Tjoelker <jilles -at- stack.nl> | |
3 | -------------------------------------- | |
4 | ||
5 | Nick collision FNC performs a forced nick change to the user's UID instead | |
6 | of a kill. The criteria for which user may keep the nick are the same as | |
7 | before. Server notices will say the clients are being "saved" instead of | |
8 | "killed". The client will get a 043 numeric, like this: | |
f22db6d0 | 9 | |
10 | :<server> 043 <nick> <uid> :Nick collision, forcing nick change to your unique ID | |
212380e3 | 11 | |
12 | The following conditions must be fulfilled: | |
13 | ||
14 | - All servers on the network must allow remote nicks starting with a digit. | |
15 | This is not checked; if this is not fulfilled, users will be killed right | |
16 | after being FNCed. | |
17 | ||
18 | - All servers on the path between the two clients must support TS6 and | |
19 | nick collision FNC (SAVE capab). If this is not fulfilled, the collision is | |
20 | resolved with kills as before. (This uses the ENCAP GCAP data for remotes.) | |
21 | ||
22 | - The general::collision_fnc option must be enabled on the server(s) that | |
23 | detect the collision. | |
24 | ||
25 | Technical details: | |
26 | ||
27 | The following message is used to propagate the nick change coming from the | |
28 | server that detected the collision: | |
29 | ||
30 | :<sid> SAVE <uid> <ts> | |
31 | ||
32 | The TS is compared to the current nick TS for the user; if it is not equal, | |
33 | the message is dropped. This prevents nick desyncs if the user changed their | |
34 | nick after being collided. A SAVE message also generates a server notice to | |
35 | +k. | |
36 | ||
37 | The SAVE message is used for propagation to the target's server, and also | |
38 | in several other cases if the destination supports SAVE. In other cases, a | |
39 | normal nick change or introduction with the UID as nick is sent. | |
40 | ||
3f7e0642 | 41 | The TS of the UID nick is 100. This is necessary to ensure nick TS is always |
42 | the same on all servers for each nick-user pair, also if a user with a UID | |
43 | nick changes their nick but is collided again (the server detecting the | |
44 | collision will not propagate the nick change further). | |
45 | ||
212380e3 | 46 | -- |