X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcmd_kill.cpp;h=22525e8cf63a60aad703c1859fd456c9aa285b0a;hb=eb28eaea35d9d109a0b7b890de9d957d562da675;hp=44594a0e14872906d14c478be2166b9169a54f08;hpb=d54fbc71e2a2e0f70002e2d36c669c4aa3d59e17;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cmd_kill.cpp b/src/cmd_kill.cpp index 44594a0e1..22525e8cf 100644 --- a/src/cmd_kill.cpp +++ b/src/cmd_kill.cpp @@ -22,15 +22,14 @@ #include "modules.h" #include "commands.h" #include "helperfuncs.h" -#include "cmd_kill.h" +#include "commands/cmd_kill.h" -extern ServerConfig* Config; +extern InspIRCd* ServerInstance; extern int MODCOUNT; extern std::vector modules; extern std::vector factory; -extern user_hash clientlist; -void cmd_kill::Handle (char **parameters, int pcnt, userrec *user) +void cmd_kill::Handle (const char** parameters, int pcnt, userrec *user) { userrec *u = Find(parameters[0]); char killreason[MAXBUF]; @@ -53,37 +52,37 @@ void cmd_kill::Handle (char **parameters, int pcnt, userrec *user) { // remote kill WriteOpers("*** Remote kill by %s: %s!%s@%s (%s)", user->nick, u->nick, u->ident, u->host, parameters[1]); - snprintf(killreason, MAXBUF,"[%s] Killed (%s (%s))", Config->ServerName, user->nick, parameters[1]); - WriteCommonExcept(u, "QUIT :%s", killreason); + snprintf(killreason, MAXQUIT,"[%s] Killed (%s (%s))", ServerInstance->Config->ServerName, user->nick, parameters[1]); + u->WriteCommonExcept("QUIT :%s", killreason); FOREACH_MOD(I_OnRemoteKill, OnRemoteKill(user, u, killreason)); - user_hash::iterator iter = clientlist.find(u->nick); + user_hash::iterator iter = ServerInstance->clientlist.find(u->nick); - if (iter != clientlist.end()) + if (iter != ServerInstance->clientlist.end()) { log(DEBUG,"deleting user hash value %d", iter->second); - clientlist.erase(iter); + ServerInstance->clientlist.erase(iter); } - if (u->registered == 7) + if (u->registered == REG_ALL) { purge_empty_chans(u); } - delete u; + DELETE(u); } else { // local kill - log(DEFAULT,"LOCAL KILL: %s :%s!%s!%s (%s)", u->nick, Config->ServerName, user->dhost, user->nick, parameters[1]); - WriteTo(user, u, "KILL %s :%s!%s!%s (%s)", u->nick, Config->ServerName, user->dhost, user->nick, parameters[1]); + log(DEFAULT,"LOCAL KILL: %s :%s!%s!%s (%s)", u->nick, ServerInstance->Config->ServerName, user->dhost, user->nick, parameters[1]); + user->WriteTo(u, "KILL %s :%s!%s!%s (%s)", u->nick, ServerInstance->Config->ServerName, user->dhost, user->nick, parameters[1]); WriteOpers("*** Local Kill by %s: %s!%s@%s (%s)", user->nick, u->nick, u->ident, u->host, parameters[1]); - snprintf(killreason,MAXBUF,"Killed (%s (%s))", user->nick, parameters[1]); - kill_link(u, killreason); + snprintf(killreason,MAXQUIT,"Killed (%s (%s))", user->nick, parameters[1]); + userrec::QuitUser(ServerInstance, u, killreason); } } else { - WriteServ(user->fd, "401 %s %s :No such nick/channel", user->nick, parameters[0]); + user->WriteServ( "401 %s %s :No such nick/channel", user->nick, parameters[0]); } }