]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Convert m_spanningtree
authoraquanight <aquanight@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 5 May 2008 00:40:23 +0000 (00:40 +0000)
committeraquanight <aquanight@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 5 May 2008 00:40:23 +0000 (00:40 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9626 e03df62e-2008-0410-955e-edbf42e46eb7

19 files changed:
src/modules/m_nicklock.cpp
src/modules/m_opermotd.cpp
src/modules/m_spanningtree/main.cpp
src/modules/m_spanningtree/main.h
src/modules/m_spanningtree/override_admin.cpp
src/modules/m_spanningtree/override_map.cpp
src/modules/m_spanningtree/override_modules.cpp
src/modules/m_spanningtree/override_motd.cpp
src/modules/m_spanningtree/override_squit.cpp
src/modules/m_spanningtree/override_stats.cpp
src/modules/m_spanningtree/override_time.cpp
src/modules/m_spanningtree/override_whois.cpp
src/modules/m_spanningtree/postcommand.cpp
src/modules/m_spanningtree/precommand.cpp
src/modules/m_spanningtree/rconnect.cpp
src/modules/m_spanningtree/rconnect.h
src/modules/m_spanningtree/rsquit.cpp
src/modules/m_spanningtree/rsquit.h
src/modules/m_spanningtree/treesocket2.cpp

index 8fae4627907ea4eda4970968d3df2fe2c6e680cb..cd4a1f8ba59893f1431d9fb71c867fe91abf5163 100644 (file)
@@ -28,7 +28,7 @@ class CommandNicklock : public Command
                TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
        }
 
-       CmdResult Handle(const char* const* parameters, int pcnt, User *user)
+       CmdResult Handle(const std::vector<const std::string>& parameters, User *user)
        {
                User* target = ServerInstance->FindNick(parameters[0]);
                irc::string server;
index 15946cd1f2440b0120ca43fe283cc71a23da5772..9cf068959390104277d030f1b9cc546abc33bc7e 100644 (file)
@@ -49,7 +49,7 @@ class CommandOpermotd : public Command
                syntax = "[<servername>]";
        }
 
-       CmdResult Handle (const char* const* parameters, int pcnt, User* user)
+       CmdResult Handle (const std::vector<const std::string>& parameters, User* user)
        {
                return ShowOperMOTD(user);
        }
index 0cfa53a14552e5255ab7a6688496bf172f1f8e51..6c77de076dc21074e2d7eba878eec1e01f542131 100644 (file)
@@ -110,14 +110,14 @@ int ModuleSpanningTree::CountServs()
        return Utils->serverlist.size();
 }
 
-void ModuleSpanningTree::HandleLinks(const char* const* parameters, int pcnt, User* user)
+void ModuleSpanningTree::HandleLinks(const std::vector<std::string>& parameters, User* user)
 {
        ShowLinks(Utils->TreeRoot,user,0);
        user->WriteNumeric(365, "%s * :End of /LINKS list.",user->nick);
        return;
 }
 
-void ModuleSpanningTree::HandleLusers(const char* const* parameters, int pcnt, User* user)
+void ModuleSpanningTree::HandleLusers(const std::vector<std::string>& parameters, User* user)
 {
        unsigned int n_users = ServerInstance->Users->UserCount();
 
@@ -337,7 +337,7 @@ void ModuleSpanningTree::AutoConnectServers(time_t curtime)
        }
 }
 
-int ModuleSpanningTree::HandleVersion(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleVersion(const std::vector<std::string>& parameters, User* user)
 {
        // we've already checked if pcnt > 0, so this is safe
        TreeServer* found = Utils->FindServerMask(parameters[0]);
@@ -352,7 +352,7 @@ int ModuleSpanningTree::HandleVersion(const char* const* parameters, int pcnt, U
        }
        else
        {
-               user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0]);
+               user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0].c_str());
        }
        return 1;
 }
@@ -409,7 +409,7 @@ void ModuleSpanningTree::RemoteMessage(User* user, const char* format, ...)
        SendingRemoteMessage = false;
 }
        
-int ModuleSpanningTree::HandleConnect(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleConnect(const std::vector<std::string>& parameters, User* user)
 {
        for (std::vector<Link>::iterator x = Utils->LinkBlocks.begin(); x < Utils->LinkBlocks.end(); x++)
        {
@@ -429,7 +429,7 @@ int ModuleSpanningTree::HandleConnect(const char* const* parameters, int pcnt, U
                        }
                }
        }
-       RemoteMessage(user, "*** CONNECT: No server matching \002%s\002 could be found in the config file.",parameters[0]);
+       RemoteMessage(user, "*** CONNECT: No server matching \002%s\002 could be found in the config file.",parameters[0].c_str());
        return 1;
 }
 
index 216cb61930b267f0b63d03e439471644989ae247..a302c1f4fa8e109d3af7aea727dd1cf633f064de 100644 (file)
@@ -70,11 +70,11 @@ class ModuleSpanningTree : public Module
 
        /** Handle LINKS command
         */
-       void HandleLinks(const char* const* parameters, int pcnt, User* user);
+       void HandleLinks(const std::vector<std::string>& parameters, User* user);
 
        /** Handle LUSERS command
         */
-       void HandleLusers(const char* const* parameters, int pcnt, User* user);
+       void HandleLusers(const std::vector<std::string>& parameters, User* user);
 
        /** Show MAP output to a user (recursive)
         */
@@ -82,35 +82,35 @@ class ModuleSpanningTree : public Module
 
        /** Handle remote MOTD
         */
-       int HandleMotd(const char* const* parameters, int pcnt, User* user);
+       int HandleMotd(const std::vector<std::string>& parameters, User* user);
 
        /** Handle remote ADMIN
         */
-       int HandleAdmin(const char* const* parameters, int pcnt, User* user);
+       int HandleAdmin(const std::vector<std::string>& parameters, User* user);
 
        /** Handle remote STATS
         */
-       int HandleStats(const char* const* parameters, int pcnt, User* user);
+       int HandleStats(const std::vector<std::string>& parameters, User* user);
 
        /** Handle MAP command
         */
-       int HandleMap(const char* const* parameters, int pcnt, User* user);
+       int HandleMap(const std::vector<std::string>& parameters, User* user);
 
        /** Handle SQUIT
         */
-       int HandleSquit(const char* const* parameters, int pcnt, User* user);
+       int HandleSquit(const std::vector<std::string>& parameters, User* user);
 
        /** Handle TIME
         */
-       int HandleTime(const char* const* parameters, int pcnt, User* user);
+       int HandleTime(const std::vector<std::string>& parameters, User* user);
 
        /** Handle remote WHOIS
         */
-       int HandleRemoteWhois(const char* const* parameters, int pcnt, User* user);
+       int HandleRemoteWhois(const std::vector<std::string>& parameters, User* user);
 
        /** Handle remote MODULES
         */
-       int HandleModules(const char* const* parameters, int pcnt, User* user);
+       int HandleModules(const std::vector<std::string>& parameters, User* user);
 
        /** Ping all local servers
         */
@@ -126,11 +126,11 @@ class ModuleSpanningTree : public Module
 
        /** Handle remote VERSON
         */
-       int HandleVersion(const char* const* parameters, int pcnt, User* user);
+       int HandleVersion(const std::vector<std::string>& parameters, User* user);
 
        /** Handle CONNECT
         */
-       int HandleConnect(const char* const* parameters, int pcnt, User* user);
+       int HandleConnect(const std::vector<std::string>& parameters, User* user);
 
        /** Attempt to send a message to a user
         */
@@ -148,8 +148,8 @@ class ModuleSpanningTree : public Module
         ** *** MODULE EVENTS ***
         **/
 
-       virtual int OnPreCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, bool validated, const std::string &original_line);
-       virtual void OnPostCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, CmdResult result, const std::string &original_line);
+       virtual int OnPreCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, bool validated, const std::string &original_line);
+       virtual void OnPostCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, CmdResult result, const std::string &original_line);
        virtual void OnGetServerDescription(const std::string &servername,std::string &description);
        virtual void OnUserInvite(User* source,User* dest,Channel* channel, time_t);
        virtual void OnPostLocalTopicChange(User* user, Channel* chan, const std::string &topic);
index c090cb071fb3ccabdc6189875a8a053fbeab96f2..3fd59f3037f1ead70b1f3b96782fda954e7f5b80 100644 (file)
 
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleAdmin(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleAdmin(const std::vector<std::string>& parameters, User* user)
 {
-       if (pcnt > 0)
+       if (parameters.size() > 0)
        {
-               if (match(ServerInstance->Config->ServerName, parameters[0]))
+               if (match(ServerInstance->Config->ServerName, parameters[0].c_str()))
                        return 0;
 
                /* Remote ADMIN, the server is within the 1st parameter */
@@ -51,7 +51,7 @@ int ModuleSpanningTree::HandleAdmin(const char* const* parameters, int pcnt, Use
                        Utils->DoOneToOne(user->uuid, "ADMIN", params, s->GetName());
                }
                else
-                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
                return 1;
        }
        return 0;
index c8ccf5b99f862d92ad16be9746b52d7fabcb5595..fa93f8280884cda1a2afa469700107bcfb973e69 100644 (file)
@@ -108,16 +108,16 @@ void ModuleSpanningTree::ShowMap(TreeServer* Current, User* user, int depth, cha
 // and divisons, we instead render the map onto a backplane of characters
 // (a character matrix), then draw the branches as a series of "L" shapes
 // from the nodes. This is not only friendlier on CPU it uses less stack.
-int ModuleSpanningTree::HandleMap(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleMap(const std::vector<std::string>& parameters, User* user)
 {
-       if (pcnt > 0)
+       if (parameters.size() > 0)
        {
                /* Remote MAP, the server is within the 1st parameter */
                TreeServer* s = Utils->FindServerMask(parameters[0]);
                bool ret = false;
                if (!s)
                {
-                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
                        ret = true;
                }
                else if (s && s != Utils->TreeRoot)
index c47d642f82b54032e20416b55072bb773fbe9e34..bfeb0a03cecff4726a856ee1b3a3bbf16a09aefa 100644 (file)
 
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleModules(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleModules(const std::vector<std::string>& parameters, User* user)
 {
-       if (pcnt > 0)
+       if (parameters.size() > 0)
        {
-               if (match(ServerInstance->Config->ServerName, parameters[0]))
+               if (match(ServerInstance->Config->ServerName, parameters[0].c_str()))
                        return 0;
 
                std::deque<std::string> params;
                params.push_back(parameters[0]);
-               TreeServer* s = Utils->FindServerMask(parameters[0]);
+               TreeServer* s = Utils->FindServerMask(parameters[0].c_str());
                if (s)
                {
                        params[0] = s->GetName();
                        Utils->DoOneToOne(user->uuid, "MODULES", params, s->GetName());
                }
                else
-                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
                return 1;
        }
        return 0;
index 4aa94334a8476ade66e234d42806d4644f2db599..a870427949b9e7bab2da18a9907cf41ada274d26 100644 (file)
 
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleMotd(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleMotd(const std::vector<std::string>& parameters, User* user)
 {
-       if (pcnt > 0)
+       if (parameters.size() > 0)
        {
-               if (match(ServerInstance->Config->ServerName, parameters[0]))
+               if (match(ServerInstance->Config->ServerName, parameters[0].c_str()))
                        return 0;
 
                /* Remote MOTD, the server is within the 1st parameter */
@@ -51,7 +51,7 @@ int ModuleSpanningTree::HandleMotd(const char* const* parameters, int pcnt, User
                        Utils->DoOneToOne(user->uuid, "MOTD", params, s->GetName());
                }
                else
-                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
                return 1;
        }
        return 0;
index 5f5eae15edd32d23b36a2b0df918b7c75d824877..581a00ef5a1da5b8ef68ee124cc9de9c8c3019e7 100644 (file)
 
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleSquit(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleSquit(const std::vector<std::string>& parameters, User* user)
 {
        TreeServer* s = Utils->FindServerMask(parameters[0]);
        if (s)
        {
                if (s == Utils->TreeRoot)
                {
-                       user->WriteServ("NOTICE %s :*** SQUIT: Foolish mortal, you cannot make a server SQUIT itself! (%s matches local server name)",user->nick,parameters[0]);
+                       user->WriteServ("NOTICE %s :*** SQUIT: Foolish mortal, you cannot make a server SQUIT itself! (%s matches local server name)",user->nick,parameters[0].c_str());
                        return 1;
                }
 
@@ -48,7 +48,7 @@ int ModuleSpanningTree::HandleSquit(const char* const* parameters, int pcnt, Use
 
                if (sock)
                {
-                       ServerInstance->SNO->WriteToSnoMask('l',"SQUIT: Server \002%s\002 removed from network by %s",parameters[0],user->nick);
+                       ServerInstance->SNO->WriteToSnoMask('l',"SQUIT: Server \002%s\002 removed from network by %s",parameters[0].c_str(),user->nick);
                        sock->Squit(s,std::string("Server quit by ") + user->GetFullRealHost());
                        ServerInstance->SE->DelFd(sock);
                        sock->Close();
@@ -60,7 +60,7 @@ int ModuleSpanningTree::HandleSquit(const char* const* parameters, int pcnt, Use
        }
        else
        {
-                user->WriteServ("NOTICE %s :*** SQUIT: The server \002%s\002 does not exist on the network.",user->nick,parameters[0]);
+                user->WriteServ("NOTICE %s :*** SQUIT: The server \002%s\002 does not exist on the network.",user->nick,parameters[0].c_str());
        }
        return 1;
 }
index ba6650d6bfe9b87992e90d58ad31c82c57d050cb..169454cc67ece57e73fdc696b9c406acd3633022 100644 (file)
        
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleStats(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleStats(const std::vector<std::string>& parameters, User* user)
 {
-       if (pcnt > 1)
+       if (parameters.size() > 1)
        {
-               if (match(ServerInstance->Config->ServerName, parameters[1]))
+               if (match(ServerInstance->Config->ServerName, parameters[1].c_str()))
                        return 0;
 
                /* Remote STATS, the server is within the 2nd parameter */
@@ -54,7 +54,7 @@ int ModuleSpanningTree::HandleStats(const char* const* parameters, int pcnt, Use
                }
                else
                {
-                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[1]);
+                       user->WriteServ( "402 %s %s :No such server", user->nick, parameters[1].c_str());
                }
                return 1;
        }
index 20f377979ff17f248e39c1aa41290f8228415e31..c24e6c95d66772ecac13e94e2011a6ad144224ff 100644 (file)
        
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleTime(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleTime(const std::vector<std::string>& parameters, User* user)
 {
-       if ((IS_LOCAL(user)) && (pcnt))
+       if ((IS_LOCAL(user)) && (parameters.size() > 0))
        {
-               TreeServer* found = Utils->FindServerMask(parameters[0]);
+               TreeServer* found = Utils->FindServerMask(parameters[0].c_str());
                if (found)
                {
                        // we dont' override for local server
@@ -51,7 +51,7 @@ int ModuleSpanningTree::HandleTime(const char* const* parameters, int pcnt, User
                }
                else
                {
-                       user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0]);
+                       user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0].c_str());
                }
        }
        return 1;
index c846794f3aead03b7a4436d89b1967b8cfa274b0..8e4d20b6f6e7638ab74c25b3c14a794aff1219a8 100644 (file)
@@ -33,9 +33,9 @@
        
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::HandleRemoteWhois(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleRemoteWhois(const std::vector<std::string>& parameters, User* user)
 {
-       if ((IS_LOCAL(user)) && (pcnt > 1))
+       if ((IS_LOCAL(user)) && (parameters.size() > 1))
        {
                User* remote = ServerInstance->FindNick(parameters[1]);
                if ((remote) && (remote->GetFd() < 0))
@@ -47,8 +47,8 @@ int ModuleSpanningTree::HandleRemoteWhois(const char* const* parameters, int pcn
                }
                else if (!remote)
                {
-                       user->WriteNumeric(401, "%s %s :No such nick/channel",user->nick, parameters[1]);
-                       user->WriteNumeric(318, "%s %s :End of /WHOIS list.",user->nick, parameters[1]);
+                       user->WriteNumeric(401, "%s %s :No such nick/channel",user->nick, parameters[1].c_str());
+                       user->WriteNumeric(318, "%s %s :End of /WHOIS list.",user->nick, parameters[1].c_str());
                        return 1;
                }
        }
index d303ef322e5ae8ddeea35d30fd4cfd12794fbbe2..c485afe5923dc44a4c0a44cc00e69e0ebe5db654 100644 (file)
@@ -33,9 +33,9 @@
 
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-void ModuleSpanningTree::OnPostCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, CmdResult result, const std::string &original_line)
+void ModuleSpanningTree::OnPostCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, CmdResult result, const std::string &original_line)
 {
-       if ((result == CMD_SUCCESS) && (ServerInstance->IsValidModuleCommand(command, pcnt, user)))
+       if ((result == CMD_SUCCESS) && (ServerInstance->IsValidModuleCommand(command, parameters.size(), user)))
        {
                /* Safe, we know its non-null because IsValidModuleCommand returned true */
                Command* thiscmd = ServerInstance->Parser->GetHandler(command);
@@ -46,14 +46,14 @@ void ModuleSpanningTree::OnPostCommand(const std::string &command, const char* c
                // commands and linking protocols.
                std::deque<std::string> params;
                params.clear();
-               int n_translate = thiscmd->translation.size();
+               unsigned int n_translate = thiscmd->translation.size();
                TranslateType translate_to;
 
                /* To make sure that parameters with spaces, or empty
                 * parameters, etc, are always sent properly, *always*
                 * prefix the last parameter with a :. This also removes
                 * an extra strchr() */
-               for (int j = 0; j < pcnt; j++)
+               for (unsigned int j = 0; j < parameters.size(); j++)
                {
                        std::string target;
 
@@ -66,10 +66,10 @@ void ModuleSpanningTree::OnPostCommand(const std::string &command, const char* c
                        else
                                translate_to = TR_TEXT;
 
-                       ServerInstance->Logs->Log("m_spanningtree",DEBUG,"TRANSLATION: %s - type is %d", parameters[j], translate_to);
+                       ServerInstance->Logs->Log("m_spanningtree",DEBUG,"TRANSLATION: %s - type is %d", parameters[j].c_str(), translate_to);
                        ServerInstance->Parser->TranslateUIDs(translate_to, parameters[j], target);
                        
-                       if (j == (pcnt - 1))
+                       if (j == (parameters.size() - 1))
                                params.push_back(":" + target);
                        else
                                params.push_back(target);
index 64e9a90ddc1743590c37b35dcde4524ba18536aa..2fdd9a5d5c70730652305e0eba6a6f0a6ed485c1 100644 (file)
@@ -33,7 +33,7 @@
 
 /* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
 
-int ModuleSpanningTree::OnPreCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, bool validated, const std::string &original_line)
+int ModuleSpanningTree::OnPreCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, bool validated, const std::string &original_line)
 {
        /* If the command doesnt appear to be valid, we dont want to mess with it. */
        if (!validated)
@@ -41,58 +41,58 @@ int ModuleSpanningTree::OnPreCommand(const std::string &command, const char* con
 
        if (command == "CONNECT")
        {
-               return this->HandleConnect(parameters,pcnt,user);
+               return this->HandleConnect(parameters,user);
        }
        else if (command == "STATS")
        {
-               return this->HandleStats(parameters,pcnt,user);
+               return this->HandleStats(parameters,user);
        }
        else if (command == "MOTD")
        {
-               return this->HandleMotd(parameters,pcnt,user);
+               return this->HandleMotd(parameters,user);
        }
        else if (command == "ADMIN")
        {
-               return this->HandleAdmin(parameters,pcnt,user);
+               return this->HandleAdmin(parameters,user);
        }
        else if (command == "SQUIT")
        {
-               return this->HandleSquit(parameters,pcnt,user);
+               return this->HandleSquit(parameters,user);
        }
        else if (command == "MAP")
        {
-               return this->HandleMap(parameters,pcnt,user);
+               return this->HandleMap(parameters,user);
        }
-       else if ((command == "TIME") && (pcnt > 0))
+       else if ((command == "TIME") && (parameters.size() > 0))
        {
-               return this->HandleTime(parameters,pcnt,user);
+               return this->HandleTime(parameters,user);
        }
        else if (command == "LUSERS")
        {
-               this->HandleLusers(parameters,pcnt,user);
+               this->HandleLusers(parameters,user);
                return 1;
        }
        else if (command == "LINKS")
        {
-               this->HandleLinks(parameters,pcnt,user);
+               this->HandleLinks(parameters,user);
                return 1;
        }
        else if (command == "WHOIS")
        {
-               if (pcnt > 1)
+               if (parameters.size() > 1)
                {
                        // remote whois
-                       return this->HandleRemoteWhois(parameters,pcnt,user);
+                       return this->HandleRemoteWhois(parameters,user);
                }
        }
-       else if ((command == "VERSION") && (pcnt > 0))
+       else if ((command == "VERSION") && (parameters.size() > 0))
        {
-               this->HandleVersion(parameters,pcnt,user);
+               this->HandleVersion(parameters,user);
                return 1;
        }
-       else if ((command == "MODULES") && (pcnt > 0))
+       else if ((command == "MODULES") && (parameters.size() > 0))
        {
-               return this->HandleModules(parameters,pcnt,user);
+               return this->HandleModules(parameters,user);
        }
        return 0;
 }
index 32308377ae9c6aa2daabac3e95cc0201c2fb487d..388f77ab7a6938d0d3df81ef4fe92191c5cee96b 100644 (file)
@@ -36,27 +36,27 @@ cmd_rconnect::cmd_rconnect (InspIRCd* Instance, Module* Callback, SpanningTreeUt
        syntax = "<remote-server-mask> <target-server-mask>";
 }
 
-CmdResult cmd_rconnect::Handle (const char* const* parameters, int pcnt, User *user)
+CmdResult cmd_rconnect::Handle (const std::vector<std::string>& parameters, User *user)
 {
        if (IS_LOCAL(user))
        {
                if (!Utils->FindServerMask(parameters[0]))
                {
-                       user->WriteServ("NOTICE %s :*** RCONNECT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0]);
+                       user->WriteServ("NOTICE %s :*** RCONNECT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0].c_str());
                        return CMD_FAILURE;
                }
-               user->WriteServ("NOTICE %s :*** RCONNECT: Sending remote connect to \002%s\002 to connect server \002%s\002.",user->nick,parameters[0],parameters[1]);
+               user->WriteServ("NOTICE %s :*** RCONNECT: Sending remote connect to \002%s\002 to connect server \002%s\002.",user->nick,parameters[0].c_str(),parameters[1].c_str());
        }
 
        /* Is this aimed at our server? */
        if (ServerInstance->MatchText(ServerInstance->Config->ServerName,parameters[0]))
        {
                /* Yes, initiate the given connect */
-               ServerInstance->SNO->WriteToSnoMask('l',"Remote CONNECT from %s matching \002%s\002, connecting server \002%s\002",user->nick,parameters[0],parameters[1]);
-               const char* para[1];
-               para[0] = parameters[1];
+               ServerInstance->SNO->WriteToSnoMask('l',"Remote CONNECT from %s matching \002%s\002, connecting server \002%s\002",user->nick,parameters[0].c_str(),parameters[1].c_str());
+               std::vector<std::string> para(1);
+               para.push_back(parameters[1]);
                std::string original_command = std::string("CONNECT ") + parameters[1];
-               Creator->OnPreCommand("CONNECT", para, 1, user, true, original_command);
+               Creator->OnPreCommand("CONNECT", para, user, true, original_command);
        }
        return CMD_SUCCESS;
 }
index 94035dce2f70746493aa52a8e277c9b220778adc..b29bea55063effcd045697778d233b2f7e10b6a0 100644 (file)
@@ -22,7 +22,7 @@ class cmd_rconnect : public Command
         SpanningTreeUtilities* Utils;  /* Utility class */
  public:
         cmd_rconnect (InspIRCd* Instance, Module* Callback, SpanningTreeUtilities* Util);
-        CmdResult Handle (const char* const* parameters, int pcnt, User *user);
+        CmdResult Handle (const std::vector<std::string>& parameters, User *user);
 };
 
 #endif
index 0b3844f065aa102e6ab0344a352a7c023c9b7c6b..2a906dfe0fe663e4f703eae766734a8386616f48 100644 (file)
@@ -36,7 +36,7 @@ cmd_rsquit::cmd_rsquit (InspIRCd* Instance, Module* Callback, SpanningTreeUtilit
        syntax = "<target-server-mask> [reason]";
 }
 
-CmdResult cmd_rsquit::Handle (const char* const* parameters, int pcnt, User *user)
+CmdResult cmd_rsquit::Handle (const std::vector<std::string>& parameters, User *user)
 {
        TreeServer *server_target; // Server to squit
        TreeServer *server_linked; // Server target is linked to
@@ -44,13 +44,13 @@ CmdResult cmd_rsquit::Handle (const char* const* parameters, int pcnt, User *use
        server_target = Utils->FindServerMask(parameters[0]);
        if (!server_target)
        {
-               user->WriteServ("NOTICE %s :*** RSQUIT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0]);
+               user->WriteServ("NOTICE %s :*** RSQUIT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0].c_str());
                return CMD_FAILURE;
        }
 
        if (server_target == Utils->TreeRoot)
        {
-               NoticeUser(user, "*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! ("+ConvToStr(parameters[0])+" matches local server name)");
+               NoticeUser(user, "*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! ("+parameters[0]+" matches local server name)");
                return CMD_FAILURE;
        }
 
@@ -62,8 +62,8 @@ CmdResult cmd_rsquit::Handle (const char* const* parameters, int pcnt, User *use
                TreeSocket* sock = server_target->GetSocket();
                if (sock)
                {
-                       const char *reason = pcnt == 2 ? parameters[1] : "No reason";
-                       ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: Server \002%s\002 removed from network by %s (%s)", parameters[0], user->nick, reason);
+                       const char *reason = parameters.size() == 2 ? parameters[1].c_str() : "No reason";
+                       ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: Server \002%s\002 removed from network by %s (%s)", parameters[0].c_str(), user->nick, reason);
                        sock->Squit(server_target, std::string("Server quit by ") + user->GetFullRealHost() + " (" + reason + ")");
                        ServerInstance->SE->DelFd(sock);
                        sock->Close();
index 5dce2f3108e3e76b049b8e6ac1f9a96860402236..eb4ae5f5b45b80ba9fdc320c9cf9ef18f2f6a65f 100644 (file)
@@ -22,7 +22,7 @@ class cmd_rsquit : public Command
         SpanningTreeUtilities* Utils;  /* Utility class */
  public:
         cmd_rsquit (InspIRCd* Instance, Module* Callback, SpanningTreeUtilities* Util);
-        CmdResult Handle (const char* const* parameters, int pcnt, User *user);
+        CmdResult Handle (const std::vector<std::string>& parameters, User *user);
         void NoticeUser(User* user, const std::string &msg);
 };
 
index 3cd2f8920d89aa07c1b1725f337ee0ce8f9a44a6..915158f8df4227ed724afcae237d4f6c348627c1 100644 (file)
@@ -366,10 +366,8 @@ bool TreeSocket::ProcessLine(std::string &line)
                                User* user = Instance->FindNick(prefix);
                                if (user)
                                {
-                                       const char* ptrs[127];
-                                       for (size_t n = 0; (n < params.size()) && (n < 127); ++n)
-                                               ptrs[n] = params[n].c_str();
-                                       return Utils->Creator->HandleMap(ptrs, params.size(), user);
+                                       std::vector<std::string> p(params.begin(), params.end());
+                                       return Utils->Creator->HandleMap(p, user);
                                }
                        }
                        else if (command == "SERVER")
@@ -549,9 +547,7 @@ bool TreeSocket::ProcessLine(std::string &line)
                        else if (command == "MODE")
                        {
                                // Server-prefix MODE.
-                               const char* modelist[MAXPARAMETERS];
-                               for (size_t i = 0; i < params.size(); i++)
-                                       modelist[i] = params[i].c_str();
+                               std::vector<std::string> modelist(params.begin(), params.end());
 
                                /* We don't support this for channel mode changes any more! */
                                if (params.size() >= 1)
@@ -564,7 +560,7 @@ bool TreeSocket::ProcessLine(std::string &line)
                                }
                                        
                                // Insert into the parser
-                               this->Instance->SendMode(modelist, params.size(), this->Instance->FakeClient);
+                               this->Instance->SendMode(modelist, this->Instance->FakeClient);
                                
                                // Pass out to the network
                                return Utils->DoOneToAllButSenderRaw(line,sourceserv,prefix,command,params);
@@ -617,13 +613,9 @@ bool TreeSocket::ProcessLine(std::string &line)
                                }
                                        
                                // its a user
-                               const char* strparams[127];
-                               for (unsigned int q = 0; q < params.size(); q++)
-                               {
-                                       strparams[q] = params[q].c_str();
-                               }
+                               std::vector<std::string> strparams(params.begin(), params.end());
 
-                               switch (this->Instance->CallCommandHandler(command.c_str(), strparams, params.size(), who))
+                               switch (this->Instance->CallCommandHandler(command.c_str(), strparams, who))
                                {
                                        case CMD_INVALID:
                                                /*