Document the use of SVSNICK to fix a remote user on collide

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7911 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
w00t 2007-08-27 19:12:22 +00:00
parent 26d10afd16
commit 02aee47d72

View File

@ -1027,6 +1027,17 @@ bool TreeSocket::ParseUID(const std::string &source, std::deque<std::string> &pa
}
if (bChangeRemote)
{
/*
* Cheat a little here. Instead of a dedicated command to change UID,
* use SVSNICK and accept their client with it's UID (as we know the SVSNICK will
* not fail under any circumstances -- UIDs are netwide exclusive).
*
* This means that each side of a collide will generate one extra NICK back to where
* they have just linked (and where it got the SVSNICK from), however, it will
* be dropped harmlessly as it will come in as :928AAAB NICK 928AAAB, and we already
* have 928AAAB's nick set to that.
* -- w00t
*/
this->WriteLine(std::string(":")+this->Instance->Config->ServerName+" SVSNICK "+params[0]+" " + params[0]);
/* also, don't trample on the hash - use their UID as nick */
tempnick = params[0].c_str();