]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_nick.cpp
Add options:maxtargets that was somehow omitted, fixes bug #400 (Reported by DarkStorm)
[user/henk/code/inspircd.git] / src / cmd_nick.cpp
index a00803d75e139aaac1cb89e2635c4933550a4b19..06c1c87668e13e0e463c16644072bc18a952d241 100644 (file)
@@ -77,7 +77,7 @@ CmdResult cmd_nick::Handle (const char** parameters, int pcnt, userrec *user)
                 * here first, no TS checks need to take place here)
                 */
                userrec* InUse = ServerInstance->FindNick(parameters[0]);
-               if (InUse && (InUse != user) && (ServerInstance->IsNick(parameters[0])))
+               if (InUse && (InUse != user) && ((ServerInstance->IsNick(parameters[0]) || allowinvalid)))
                {
                        if (InUse->registered != REG_ALL)
                        {
@@ -98,7 +98,7 @@ CmdResult cmd_nick::Handle (const char** parameters, int pcnt, userrec *user)
                        }
                }
        }
-       if ((!ServerInstance->IsNick(parameters[0])) && (IS_LOCAL(user)))
+       if (((!allowinvalid || !ServerInstance->IsNick(parameters[0]))) && (IS_LOCAL(user)))
        {
                user->WriteServ("432 %s %s :Erroneous Nickname",user->nick,parameters[0]);
                return CMD_FAILURE;
@@ -180,3 +180,9 @@ CmdResult cmd_nick::Handle (const char** parameters, int pcnt, userrec *user)
 
 }
 
+CmdResult cmd_nick::HandleInternal(const unsigned int id, const std::deque<classbase*> &parameters)
+{
+       allowinvalid = (id != 0);
+       return CMD_SUCCESS;
+}
+