X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fuid.cpp;h=a41fe408d990a3525cd6d97863a878f2720a4c64;hb=eef45dbfb90f951f3048038aea3ff68b5c157f6d;hp=39857361692e9170dd77c26001b004202429821b;hpb=8f5efbc7aa33b792e02d01e3288f553e6e98ccaa;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/uid.cpp b/src/modules/m_spanningtree/uid.cpp index 398573616..a41fe408d 100644 --- a/src/modules/m_spanningtree/uid.cpp +++ b/src/modules/m_spanningtree/uid.cpp @@ -24,10 +24,11 @@ #include "utils.h" #include "treeserver.h" +#include "remoteuser.h" CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vector& params) { - /** Do we have enough parameters: + /** * 0 1 2 3 4 5 6 7 8 9 (n-1) * UID uuid age nick host dhost ident ip.string signon +modes (modepara) :gecos */ @@ -36,10 +37,10 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorGetID())) throw ProtocolException("Bogus UUID"); - /* Check parameters for validity before introducing the client, discovered by dmb */ + // Sanity check on mode string: must begin with '+' if (modestr[0] != '+') throw ProtocolException("Invalid mode string"); @@ -50,7 +51,7 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorWriteFrom(collideswith, "NICK %s", collideswith->uuid.c_str()); - collideswith->WriteNumeric(ERR_NICKNAMEINUSE, "%s :Nickname overruled.", collideswith->nick.c_str()); + collideswith->WriteNumeric(ERR_NICKNAMEINUSE, collideswith->nick, "Nickname overruled."); // Clear the bit before calling User::ChangeNick() to make it NOT run the OnUserPostNick() hook collideswith->registered &= ~REG_NICK; @@ -59,9 +60,7 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorDoCollision(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); - + bool they_change = Utils->DoCollision(collideswith, remoteserver, age_t, params[5], params[6], params[0], "UID"); if (they_change) { // The client being introduced needs to change nick to uuid, change the nick in the message before @@ -72,12 +71,10 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorUsers->clientlist[params[2]] = _new; _new->nick = params[2]; _new->host = params[3]; @@ -101,7 +98,7 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vectorGetNumParams(true)) + if (mh->NeedsParam(true)) { if (paramptr >= params.size() - 1) throw ProtocolException("Out of parameters while processing modes");