X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodules%2Fm_spanningtree%2Fuid.cpp;h=c7a98b2f46504dabe4c4e55cf921a6a9a040b030;hb=4464121eb232a3ec6049802256012714fe786506;hp=ac9041ecc296efee09d9e758fdc7ed21553f5f60;hpb=f62654a6859998f9d63eb22702c572d5ebcff15c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/uid.cpp b/src/modules/m_spanningtree/uid.cpp index ac9041ecc..c7a98b2f4 100644 --- a/src/modules/m_spanningtree/uid.cpp +++ b/src/modules/m_spanningtree/uid.cpp @@ -43,30 +43,29 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorFindNickOnly(params[2]); if ((collideswith) && (collideswith->registered != REG_ALL)) { // User that the incoming user is colliding with is not fully registered, we force nick change the // unregistered user to their uuid and tell them what happened collideswith->WriteFrom(collideswith, "NICK %s", collideswith->uuid.c_str()); - collideswith->WriteNumeric(433, "%s %s :Nickname overruled.", collideswith->nick.c_str(), collideswith->nick.c_str()); + collideswith->WriteNumeric(ERR_NICKNAMEINUSE, "%s :Nickname overruled.", collideswith->nick.c_str()); // Clear the bit before calling User::ChangeNick() to make it NOT run the OnUserPostNick() hook collideswith->registered &= ~REG_NICK; - collideswith->ChangeNick(collideswith->uuid, true); + collideswith->ChangeNick(collideswith->uuid); } else if (collideswith) { - /* - * Nick collision. - */ - int collide = Utils->DoCollision(collideswith, remoteserver, age_t, params[5], params[6], params[0]); - ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "*** Collision on %s, collide=%d", params[2].c_str(), collide); + // The user on this side is registered, handle the collision + bool they_change = Utils->DoCollision(collideswith, remoteserver, age_t, params[5], params[6], params[0]); + ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Collision on %s %d", params[2].c_str(), they_change); - if (collide != 1) + if (they_change) { - // Remote client lost, make sure we change their nick for the hash too + // The client being introduced needs to change nick to uuid, change the nick in the message before + // processing/forwarding it. params[2] = params[0]; } }