]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_check.cpp
The module hook is kinda required.
[user/henk/code/inspircd.git] / src / modules / m_check.cpp
index af8aaa3fc74e9240fa8e822a05bf0accaf4147d7..1f142014ef71fe398905467edb3a7dbc8e14b80a 100644 (file)
@@ -12,7 +12,6 @@
  */
 
 #include "inspircd.h"
-#include "wildcard.h"
 
 /* $ModDesc: Provides the /check command to retrieve information on a user, channel, or IP address */
 
 class CommandCheck : public Command
 {
  public:
-       CommandCheck (InspIRCd* Instance) : Command(Instance,"CHECK", 'o', 1)
+       CommandCheck (InspIRCd* Instance) : Command(Instance,"CHECK", "o", 1)
        {
                this->source = "m_check.so";
                syntax = "<nickname>|<ip>|<hostmask>|<channel>";
        }
 
-       CmdResult Handle (const char** parameters, int pcnt, User *user)
+       CmdResult Handle (const std::vector<std::string> &parameters, User *user)
        {
                User *targuser;
                Channel *targchan;
@@ -71,7 +70,7 @@ class CommandCheck : public Command
                        if (IS_OPER(targuser))
                        {
                                /* user is an oper of type ____ */
-                               user->WriteServ(checkstr + " opertype " + irc::Spacify(targuser->oper));
+                               user->WriteServ(checkstr + " opertype " + irc::Spacify(targuser->oper.c_str()));
                        }
 
                        if (IS_LOCAL(targuser))
@@ -107,7 +106,7 @@ class CommandCheck : public Command
 
                        user->WriteServ(checkstr + " modes " + targchan->ChanModes(true));
                        user->WriteServ(checkstr + " membercount " + ConvToStr(targchan->GetUserCounter()));
-                       
+
                        /* now the ugly bit, spool current members of a channel. :| */
 
                        CUList *ulist= targchan->GetUsers();
@@ -119,7 +118,7 @@ class CommandCheck : public Command
                                /*
                                 * Unlike Asuka, I define a clone as coming from the same host. --w00t
                                 */
-                               snprintf(tmpbuf, MAXBUF, "%lu    %s%s (%s@%s) %s ", ServerInstance->Users->GlobalCloneCount(i->first), targchan->GetAllPrefixChars(i->first), i->first->nick, i->first->ident, i->first->dhost, i->first->fullname);
+                               snprintf(tmpbuf, MAXBUF, "%lu    %s%s (%s@%s) %s ", ServerInstance->Users->GlobalCloneCount(i->first), targchan->GetAllPrefixChars(i->first), i->first->nick.c_str(), i->first->ident.c_str(), i->first->dhost.c_str(), i->first->fullname.c_str());
                                user->WriteServ(checkstr + " member " + tmpbuf);
                        }
                }
@@ -131,13 +130,13 @@ class CommandCheck : public Command
                        /* hostname or other */
                        for (user_hash::const_iterator a = ServerInstance->Users->clientlist->begin(); a != ServerInstance->Users->clientlist->end(); a++)
                        {
-                               if (match(a->second->host, parameters[0]) || match(a->second->dhost, parameters[0]))
+                               if (InspIRCd::Match(a->second->host, parameters[0]) || InspIRCd::Match(a->second->dhost, parameters[0]))
                                {
                                        /* host or vhost matches mask */
                                        user->WriteServ(checkstr + " match " + ConvToStr(++x) + " " + a->second->GetFullRealHost());
                                }
                                /* IP address */
-                               else if (match(a->second->GetIPString(), parameters[0], true))
+                               else if (InspIRCd::MatchCIDR(a->second->GetIPString(), parameters[0]))
                                {
                                        /* same IP. */
                                        user->WriteServ(checkstr + " match " + ConvToStr(++x) + " " + a->second->GetFullRealHost());
@@ -147,7 +146,7 @@ class CommandCheck : public Command
                        user->WriteServ(checkstr + " matches " + ConvToStr(x));
                }
 
-               user->WriteServ(checkstr + " END " + std::string(parameters[0]));
+               user->WriteServ(checkstr + " END " + parameters[0]);
 
                return CMD_LOCALONLY;
        }
@@ -161,22 +160,22 @@ class ModuleCheck : public Module
  public:
        ModuleCheck(InspIRCd* Me) : Module(Me)
        {
-               
+
                mycommand = new CommandCheck(ServerInstance);
                ServerInstance->AddCommand(mycommand);
 
        }
-       
+
        virtual ~ModuleCheck()
        {
        }
-       
+
        virtual Version GetVersion()
        {
-               return Version(1, 1, 0, 0, VF_VENDOR, API_VERSION);
+               return Version("$Id$", VF_VENDOR, API_VERSION);
        }
 
-       
+
 };
 
 MODULE_INIT(ModuleCheck)