X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_clones.cpp;h=b3e695bfde0c3c224a4d17ddb63cc825da6e127b;hb=f471083cd0519d47c7c7a09029813ede41994f7b;hp=1e5841609fa875f8f9a8c45450aabb8b8120067b;hpb=44f42a13de52c8025942ddab42f51feb36821782;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_clones.cpp b/src/modules/m_clones.cpp index 1e5841609..b3e695bfd 100644 --- a/src/modules/m_clones.cpp +++ b/src/modules/m_clones.cpp @@ -21,9 +21,7 @@ #include "inspircd.h" -/* $ModDesc: Provides the /clones command to retrieve information on clones. */ - -/** Handle /CHECK +/** Handle /CLONES */ class CommandClones : public Command { @@ -36,7 +34,7 @@ class CommandClones : public Command CmdResult Handle (const std::vector ¶meters, User *user) { - std::string clonesstr = "304 " + std::string(user->nick) + " :CLONES"; + std::string clonesstr = "CLONES "; unsigned long limit = atoi(parameters[0].c_str()); @@ -44,46 +42,38 @@ class CommandClones : public Command * Syntax of a /clones reply: * :server.name 304 target :CLONES START * :server.name 304 target :CLONES - * :server.name 304 target :CHECK END + * :server.name 304 target :CLONES END */ - user->WriteServ(clonesstr + " START"); + user->WriteNumeric(304, clonesstr + "START"); /* hostname or other */ - // XXX I really don't like marking global_clones public for this. at all. -- w00t - for (clonemap::iterator x = ServerInstance->Users->global_clones.begin(); x != ServerInstance->Users->global_clones.end(); x++) + const UserManager::CloneMap& clonemap = ServerInstance->Users->GetCloneMap(); + for (UserManager::CloneMap::const_iterator i = clonemap.begin(); i != clonemap.end(); ++i) { - if (x->second >= limit) - user->WriteServ(clonesstr + " "+ ConvToStr(x->second) + " " + x->first.str()); + const UserManager::CloneCounts& counts = i->second; + if (counts.global >= limit) + user->WriteNumeric(304, clonesstr + ConvToStr(counts.global) + " " + i->first.str()); } - user->WriteServ(clonesstr + " END"); + user->WriteNumeric(304, clonesstr + "END"); return CMD_SUCCESS; } }; - class ModuleClones : public Module { - private: CommandClones cmd; public: ModuleClones() : cmd(this) { - ServerInstance->AddCommand(&cmd); } - virtual ~ModuleClones() + Version GetVersion() CXX11_OVERRIDE { + return Version("Provides the /CLONES command to retrieve information on clones.", VF_VENDOR); } - - virtual Version GetVersion() - { - return Version("Provides the /clones command to retrieve information on clones.", VF_VENDOR); - } - - }; MODULE_INIT(ModuleClones)