]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Use CommandBase::Params instead of std::vector<std::string>.
authorPeter Powell <petpow@saberuk.com>
Thu, 26 Jul 2018 18:43:54 +0000 (19:43 +0100)
committerPeter Powell <petpow@saberuk.com>
Thu, 26 Jul 2018 19:12:14 +0000 (20:12 +0100)
This is presently a typedef but will soon be replaced with a class
that encapsulates both tags and parameters.

176 files changed:
include/command_parse.h
include/commands/cmd_whowas.h
include/ctables.h
include/inspircd.h
include/modules.h
include/modules/sasl.h
include/numeric.h
include/protocol.h
src/command_parse.cpp
src/commands.cpp
src/coremods/core_channel/cmd_invite.cpp
src/coremods/core_channel/cmd_join.cpp
src/coremods/core_channel/cmd_kick.cpp
src/coremods/core_channel/cmd_names.cpp
src/coremods/core_channel/cmd_topic.cpp
src/coremods/core_channel/core_channel.h
src/coremods/core_info/cmd_admin.cpp
src/coremods/core_info/cmd_commands.cpp
src/coremods/core_info/cmd_info.cpp
src/coremods/core_info/cmd_modules.cpp
src/coremods/core_info/cmd_motd.cpp
src/coremods/core_info/cmd_time.cpp
src/coremods/core_info/cmd_version.cpp
src/coremods/core_info/core_info.cpp
src/coremods/core_info/core_info.h
src/coremods/core_ison.cpp
src/coremods/core_list.cpp
src/coremods/core_loadmodule.cpp
src/coremods/core_lusers.cpp
src/coremods/core_oper/cmd_die.cpp
src/coremods/core_oper/cmd_kill.cpp
src/coremods/core_oper/cmd_oper.cpp
src/coremods/core_oper/cmd_rehash.cpp
src/coremods/core_oper/cmd_restart.cpp
src/coremods/core_oper/core_oper.h
src/coremods/core_privmsg.cpp
src/coremods/core_reloadmodule.cpp
src/coremods/core_stats.cpp
src/coremods/core_stub.cpp
src/coremods/core_user/cmd_away.cpp
src/coremods/core_user/cmd_mode.cpp
src/coremods/core_user/cmd_nick.cpp
src/coremods/core_user/cmd_part.cpp
src/coremods/core_user/cmd_quit.cpp
src/coremods/core_user/cmd_user.cpp
src/coremods/core_user/core_user.cpp
src/coremods/core_user/core_user.h
src/coremods/core_userhost.cpp
src/coremods/core_wallops.cpp
src/coremods/core_who.cpp
src/coremods/core_whois.cpp
src/coremods/core_whowas.cpp
src/coremods/core_xline/cmd_eline.cpp
src/coremods/core_xline/cmd_gline.cpp
src/coremods/core_xline/cmd_kline.cpp
src/coremods/core_xline/cmd_qline.cpp
src/coremods/core_xline/cmd_zline.cpp
src/coremods/core_xline/core_xline.h
src/modules.cpp
src/modules/m_abbreviation.cpp
src/modules/m_alias.cpp
src/modules/m_alltime.cpp
src/modules/m_blockamsg.cpp
src/modules/m_callerid.cpp
src/modules/m_cap.cpp
src/modules/m_cban.cpp
src/modules/m_cgiirc.cpp
src/modules/m_check.cpp
src/modules/m_chghost.cpp
src/modules/m_chgident.cpp
src/modules/m_chgname.cpp
src/modules/m_clearchan.cpp
src/modules/m_cloaking.cpp
src/modules/m_clones.cpp
src/modules/m_close.cpp
src/modules/m_conn_umodes.cpp
src/modules/m_conn_waitpong.cpp
src/modules/m_customtitle.cpp
src/modules/m_cycle.cpp
src/modules/m_dccallow.cpp
src/modules/m_filter.cpp
src/modules/m_globalload.cpp
src/modules/m_globops.cpp
src/modules/m_helpop.cpp
src/modules/m_jumpserver.cpp
src/modules/m_knock.cpp
src/modules/m_ldapoper.cpp
src/modules/m_lockserv.cpp
src/modules/m_maphide.cpp
src/modules/m_modenotice.cpp
src/modules/m_monitor.cpp
src/modules/m_namedmodes.cpp
src/modules/m_namesx.cpp
src/modules/m_nicklock.cpp
src/modules/m_ojoin.cpp
src/modules/m_operlog.cpp
src/modules/m_opermodes.cpp
src/modules/m_opermotd.cpp
src/modules/m_password_hash.cpp
src/modules/m_remove.cpp
src/modules/m_rline.cpp
src/modules/m_rmode.cpp
src/modules/m_sajoin.cpp
src/modules/m_sakick.cpp
src/modules/m_samode.cpp
src/modules/m_sanick.cpp
src/modules/m_sapart.cpp
src/modules/m_saquit.cpp
src/modules/m_sasl.cpp
src/modules/m_satopic.cpp
src/modules/m_securelist.cpp
src/modules/m_sethost.cpp
src/modules/m_setident.cpp
src/modules/m_setidle.cpp
src/modules/m_setname.cpp
src/modules/m_showfile.cpp
src/modules/m_showwhois.cpp
src/modules/m_shun.cpp
src/modules/m_silence.cpp
src/modules/m_spanningtree/addline.cpp
src/modules/m_spanningtree/away.cpp
src/modules/m_spanningtree/capab.cpp
src/modules/m_spanningtree/commands.h
src/modules/m_spanningtree/compat.cpp
src/modules/m_spanningtree/delline.cpp
src/modules/m_spanningtree/encap.cpp
src/modules/m_spanningtree/fjoin.cpp
src/modules/m_spanningtree/fmode.cpp
src/modules/m_spanningtree/ftopic.cpp
src/modules/m_spanningtree/idle.cpp
src/modules/m_spanningtree/ijoin.cpp
src/modules/m_spanningtree/main.cpp
src/modules/m_spanningtree/main.h
src/modules/m_spanningtree/metadata.cpp
src/modules/m_spanningtree/misccommands.cpp
src/modules/m_spanningtree/nick.cpp
src/modules/m_spanningtree/num.cpp
src/modules/m_spanningtree/opertype.cpp
src/modules/m_spanningtree/override_map.cpp
src/modules/m_spanningtree/override_squit.cpp
src/modules/m_spanningtree/override_whois.cpp
src/modules/m_spanningtree/ping.cpp
src/modules/m_spanningtree/pong.cpp
src/modules/m_spanningtree/postcommand.cpp
src/modules/m_spanningtree/precommand.cpp
src/modules/m_spanningtree/protocolinterface.cpp
src/modules/m_spanningtree/protocolinterface.h
src/modules/m_spanningtree/rconnect.cpp
src/modules/m_spanningtree/rsquit.cpp
src/modules/m_spanningtree/save.cpp
src/modules/m_spanningtree/server.cpp
src/modules/m_spanningtree/servercommand.cpp
src/modules/m_spanningtree/servercommand.h
src/modules/m_spanningtree/sinfo.cpp
src/modules/m_spanningtree/svsjoin.cpp
src/modules/m_spanningtree/svsnick.cpp
src/modules/m_spanningtree/svspart.cpp
src/modules/m_spanningtree/treesocket.h
src/modules/m_spanningtree/treesocket1.cpp
src/modules/m_spanningtree/treesocket2.cpp
src/modules/m_spanningtree/uid.cpp
src/modules/m_spanningtree/utils.h
src/modules/m_sqloper.cpp
src/modules/m_sslinfo.cpp
src/modules/m_starttls.cpp
src/modules/m_svshold.cpp
src/modules/m_swhois.cpp
src/modules/m_timedbans.cpp
src/modules/m_tline.cpp
src/modules/m_topiclock.cpp
src/modules/m_uhnames.cpp
src/modules/m_uninvite.cpp
src/modules/m_userip.cpp
src/modules/m_vhost.cpp
src/modules/m_watch.cpp
src/users.cpp

index ec5ebba485ad1f02c82f15f559c96ff54d603024..8324e5e25f262b82dd2302a8fd5d095d7ec673e9 100644 (file)
@@ -65,7 +65,7 @@ class CoreExport CommandParser
         * command simply did not exist at all or the wrong number of parameters were given, or the user
         * was not privilaged enough to execute the command.
         */
-       CmdResult CallHandler(const std::string& commandname, const std::vector<std::string>& parameters, User* user, Command** cmd = NULL);
+       CmdResult CallHandler(const std::string& commandname, const CommandBase::Params& parameters, User* user, Command** cmd = NULL);
 
        /** Get the handler function for a command.
         * @param commandname The command required. Always use uppercase for this parameter.
@@ -110,7 +110,7 @@ class CoreExport CommandParser
         * command handler for each entry on the list. When this occurs, the caller should return without doing anything,
         * otherwise it should continue into its main section of code.
         */
-       static bool LoopCall(User* user, Command* handler, const std::vector<std::string>& parameters, unsigned int splithere, int extra = -1, bool usemax = true);
+       static bool LoopCall(User* user, Command* handler, const CommandBase::Params& parameters, unsigned int splithere, int extra = -1, bool usemax = true);
 
        /** Take a raw input buffer from a recvq, and process it on behalf of a user.
         * @param buffer The buffer line to process
@@ -144,7 +144,7 @@ class CoreExport CommandParser
         * @param custom_translator Used to translate the parameter if the translation type is TR_CUSTOM, if NULL, TR_CUSTOM will act like TR_TEXT
         * @return dest The output string
         */
-       static std::string TranslateUIDs(const std::vector<TranslateType>& to, const std::vector<std::string>& source, bool prefix_final = false, CommandBase* custom_translator = NULL);
+       static std::string TranslateUIDs(const std::vector<TranslateType>& to, const CommandBase::Params& source, bool prefix_final = false, CommandBase* custom_translator = NULL);
 };
 
 /** A lookup table of values for multiplier characters used by
index 03ffae905aee39954ed657c71ead1e161cbc5f11..6af0c7c5584e84c3661f65fe17bc5706dbce6992 100644 (file)
@@ -203,5 +203,5 @@ class CommandWhowas : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
index 43a311a6635e6243759cf644f82dc2ae7662fa13..c34e4abeb4ab9f1b6336a2b42fa0394068b97daf 100644 (file)
@@ -110,6 +110,8 @@ struct RouteDescriptor
 class CoreExport CommandBase : public ServiceProvider
 {
  public:
+       typedef std::vector<std::string> Params;
+
        /** User flags needed to execute the command or 0
         */
        unsigned char flags_needed;
@@ -168,7 +170,7 @@ class CoreExport CommandBase : public ServiceProvider
         */
        CommandBase(Module* me, const std::string& cmd, unsigned int minpara = 0, unsigned int maxpara = 0);
 
-       virtual RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       virtual RouteDescriptor GetRouting(User* user, const CommandBase::Params& parameters);
 
        /** Encode a parameter for server->server transmission.
         * Used for parameters for which the translation type is TR_CUSTOM.
@@ -219,7 +221,7 @@ class CoreExport Command : public CommandBase
         * @param user The user who issued the command.
         * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.
         */
-       virtual CmdResult Handle(const std::vector<std::string>& parameters, User* user) = 0;
+       virtual CmdResult Handle(User* user, const Params& parameters) = 0;
 
        /** Register this object in the CommandParser
         */
@@ -236,10 +238,10 @@ class CoreExport SplitCommand : public Command
  public:
        SplitCommand(Module* me, const std::string &cmd, unsigned int minpara = 0, unsigned int maxpara = 0)
                : Command(me, cmd, minpara, maxpara) {}
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       virtual CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user);
-       virtual CmdResult HandleRemote(const std::vector<std::string>& parameters, RemoteUser* user);
-       virtual CmdResult HandleServer(const std::vector<std::string>& parameters, FakeUser* user);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       virtual CmdResult HandleLocal(LocalUser* user, const Params& parameters);
+       virtual CmdResult HandleRemote(RemoteUser* user, const Params& parameters);
+       virtual CmdResult HandleServer(FakeUser* user, const Params& parameters);
 };
 
 /** Shortcut macros for defining translation lists
index b028280f7c661309bfb48dfb3916b06a61900657..7180fd672028fbc8b0b8b3656f9c7296a736d4ec 100644 (file)
@@ -72,6 +72,7 @@ struct fakederef
 #include "cull_list.h"
 #include "extensible.h"
 #include "fileutils.h"
+#include "ctables.h"
 #include "numerics.h"
 #include "numeric.h"
 #include "uid.h"
@@ -83,7 +84,6 @@ struct fakederef
 #include "logger.h"
 #include "usermanager.h"
 #include "socket.h"
-#include "ctables.h"
 #include "command_parse.h"
 #include "mode.h"
 #include "socketengine.h"
index 9355712bf5dc87a058b8b5d39962691b25f770ab..432e7075221c160656b524b981849eac92291e86 100644 (file)
@@ -720,7 +720,7 @@ class CoreExport Module : public classbase, public usecountbase
         * @param original_line The entire original line as passed to the parser from the user
         * @return 1 to block the command, 0 to allow
         */
-       virtual ModResult OnPreCommand(std::string &command, std::vector<std::string>& parameters, LocalUser *user, bool validated, const std::string &original_line);
+       virtual ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line);
 
        /** Called after any command has been executed.
         * This event occurs for all registered commands, wether they are registered in the core,
@@ -733,7 +733,7 @@ class CoreExport Module : public classbase, public usecountbase
         * @param result The return code given by the command handler, one of CMD_SUCCESS or CMD_FAILURE
         * @param original_line The entire original line as passed to the parser from the user
         */
-       virtual void OnPostCommand(Command* command, const std::vector<std::string>& parameters, LocalUser* user, CmdResult result, const std::string& original_line);
+       virtual void OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result, const std::string& original_line);
 
        /** Called when a user is first connecting, prior to starting DNS lookups, checking initial
         * connect class, or accepting any commands.
index 0a7b19a7085e49666c7883390cc745f368b23889..8a54cfdb36975032ddc2f4237f07a363cddbbe34 100644 (file)
@@ -29,5 +29,5 @@ class SASLEventListener : public Events::ModuleEventListener
        {
        }
 
-       virtual void OnSASLAuth(const parameterlist& params) = 0;
+       virtual void OnSASLAuth(const CommandBase::Params& params) = 0;
 };
index 85f2f13f082340c6038e36970a711b2a9360fb1c..cc9f9cc9bbd7f7206631b9517e4c6bc6ca136224 100644 (file)
@@ -34,7 +34,7 @@ class Numeric::Numeric
 
        /** Parameters of the numeric
         */
-       std::vector<std::string> params;
+       CommandBase::Params params;
 
        /** Source server of the numeric, if NULL (the default) then it is the local server
         */
@@ -78,10 +78,10 @@ class Numeric::Numeric
        /** Get the parameters of the numeric
         * @return Parameters of the numeric as a const vector of strings
         */
-       const std::vector<std::string>& GetParams() const { return params; }
+       const CommandBase::Params& GetParams() const { return params; }
 
        /** Get the parameters of the numeric
         * @return Parameters of the numeric as a vector of strings
         */
-       std::vector<std::string>& GetParams() { return params; }
+       CommandBase::Params& GetParams() { return params; }
 };
index 7a2908a4c8a6dd92bb79aad14017a9c036acae0f..a7c727e8c5727463f5b1f300e120398b4d0738a6 100644 (file)
@@ -24,8 +24,6 @@
 
 class User;
 
-typedef std::vector<std::string> parameterlist;
-
 class ProtocolServer
 {
  public:
@@ -66,7 +64,7 @@ class CoreExport ProtocolInterface
         * and the message was sent, false if it was not found.
         * ENCAP (should) be used instead of creating new protocol messages for easier third party application support.
         */
-       virtual bool SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const parameterlist& params, User* source = NULL) { return false; }
+       virtual bool SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const CommandBase::Params& params, User* source = NULL) { return false; }
 
        /** Send an ENCAP message to all servers.
         * See the protocol documentation for the purpose of ENCAP.
@@ -76,7 +74,7 @@ class CoreExport ProtocolInterface
         * or NULL which is equivalent to the local server
         * @param omit If non-NULL the message won't be sent in the direction of this server, useful for forwarding messages
         */
-       virtual void BroadcastEncap(const std::string& cmd, const parameterlist& params, User* source = NULL, User* omit = NULL) { }
+       virtual void BroadcastEncap(const std::string& cmd, const CommandBase::Params& params, User* source = NULL, User* omit = NULL) { }
 
        /** Send metadata for a channel to other linked servers.
         * @param chan The channel to send metadata for
index 61f59ac0b1de3bfa6ced6328902e94e106a83a6e..1ead005c48ba7cb75aa3475e16ca32d9dd2bf124 100644 (file)
@@ -43,7 +43,7 @@ bool InspIRCd::PassCompare(Extensible* ex, const std::string& data, const std::s
        return TimingSafeCompare(data, input);
 }
 
-bool CommandParser::LoopCall(User* user, Command* handler, const std::vector<std::string>& parameters, unsigned int splithere, int extra, bool usemax)
+bool CommandParser::LoopCall(User* user, Command* handler, const CommandBase::Params& parameters, unsigned int splithere, int extra, bool usemax)
 {
        if (splithere >= parameters.size())
                return false;
@@ -82,7 +82,7 @@ bool CommandParser::LoopCall(User* user, Command* handler, const std::vector<std
        {
                if ((!check_dupes) || (dupes.insert(item).second))
                {
-                       std::vector<std::string> new_parameters(parameters);
+                       CommandBase::Params new_parameters(parameters);
                        new_parameters[splithere] = item;
 
                        if (extra >= 0)
@@ -93,7 +93,7 @@ bool CommandParser::LoopCall(User* user, Command* handler, const std::vector<std
                                new_parameters[extra] = item;
                        }
 
-                       CmdResult result = handler->Handle(new_parameters, user);
+                       CmdResult result = handler->Handle(user, new_parameters);
                        if (localuser)
                        {
                                // Run the OnPostCommand hook with the last parameter (original line) being empty
@@ -118,7 +118,7 @@ Command* CommandParser::GetHandler(const std::string &commandname)
 
 // calls a handler function for a command
 
-CmdResult CommandParser::CallHandler(const std::string& commandname, const std::vector<std::string>& parameters, User* user, Command** cmd)
+CmdResult CommandParser::CallHandler(const std::string& commandname, const CommandBase::Params& parameters, User* user, Command** cmd)
 {
        CommandMap::iterator n = cmdlist.find(commandname);
 
@@ -152,7 +152,7 @@ CmdResult CommandParser::CallHandler(const std::string& commandname, const std::
                        {
                                if (cmd)
                                        *cmd = n->second;
-                               return n->second->Handle(parameters,user);
+                               return n->second->Handle(user, parameters);
                        }
                }
        }
@@ -161,7 +161,7 @@ CmdResult CommandParser::CallHandler(const std::string& commandname, const std::
 
 void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd)
 {
-       std::vector<std::string> command_p;
+       CommandBase::Params command_p;
        irc::tokenstream tokens(cmd);
        std::string command, token;
        tokens.GetToken(command);
@@ -236,12 +236,12 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd)
                 */
 
                // Iterator to the last parameter that will be kept
-               const std::vector<std::string>::iterator lastkeep = command_p.begin() + (handler->max_params - 1);
+               const CommandBase::Params::iterator lastkeep = command_p.begin() + (handler->max_params - 1);
                // Iterator to the first excess parameter
-               const std::vector<std::string>::iterator firstexcess = lastkeep + 1;
+               const CommandBase::Params::iterator firstexcess = lastkeep + 1;
 
                // Append all excess parameter(s) to the last parameter, seperated by spaces
-               for (std::vector<std::string>::const_iterator i = firstexcess; i != command_p.end(); ++i)
+               for (CommandBase::Params::const_iterator i = firstexcess; i != command_p.end(); ++i)
                {
                        lastkeep->push_back(' ');
                        lastkeep->append(*i);
@@ -329,7 +329,7 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd)
                /*
                 * WARNING: be careful, the user may be deleted soon
                 */
-               CmdResult result = handler->Handle(command_p, user);
+               CmdResult result = handler->Handle(user, command_p);
 
                FOREACH_MOD(OnPostCommand, (handler, command_p, user, result, cmd));
        }
@@ -363,7 +363,7 @@ void CommandBase::EncodeParameter(std::string& parameter, unsigned int index)
 {
 }
 
-RouteDescriptor CommandBase::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandBase::GetRouting(User* user, const Params& parameters)
 {
        return ROUTE_LOCALONLY;
 }
index c72a5dc73b09a11255839dca6811508656f95d44..c5b34c72f0e655d3c8a64e557c75252e5141ace1 100644 (file)
 
 #include "inspircd.h"
 
-CmdResult SplitCommand::Handle(const std::vector<std::string>& parms, User* u)
+CmdResult SplitCommand::Handle(User* user, const Params& parameters)
 {
-       if (IS_LOCAL(u))
-               return HandleLocal(parms, IS_LOCAL(u));
-       if (IS_REMOTE(u))
-               return HandleRemote(parms, IS_REMOTE(u));
-       if (IS_SERVER(u))
-               return HandleServer(parms, IS_SERVER(u));
-       ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Unknown user type in command (uuid=%s)!", u->uuid.c_str());
+       switch (user->usertype)
+       {
+               case USERTYPE_LOCAL:
+                       return HandleLocal(static_cast<LocalUser*>(user), parameters);
+
+               case USERTYPE_REMOTE:
+                       return HandleRemote(static_cast<RemoteUser*>(user), parameters);
+
+               case USERTYPE_SERVER:
+                       return HandleServer(static_cast<FakeUser*>(user), parameters);
+       }
+
+       ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Unknown user type %d in command (uuid=%s)!",
+               user->usertype, user->uuid.c_str());
        return CMD_INVALID;
 }
 
-CmdResult SplitCommand::HandleLocal(const std::vector<std::string>&, LocalUser*)
+CmdResult SplitCommand::HandleLocal(LocalUser* user, const Params& parameters)
 {
        return CMD_INVALID;
 }
 
-CmdResult SplitCommand::HandleRemote(const std::vector<std::string>&, RemoteUser*)
+CmdResult SplitCommand::HandleRemote(RemoteUser* user, const Params& parameters)
 {
        return CMD_INVALID;
 }
 
-CmdResult SplitCommand::HandleServer(const std::vector<std::string>&, FakeUser*)
+CmdResult SplitCommand::HandleServer(FakeUser* user, const Params& parameters)
 {
        return CMD_INVALID;
 }
index e9ce03a0c96138e393fa214a14058ccb39764e17..89a2f6b691aba152346164d388ebcbaa17111bb0 100644 (file)
@@ -34,7 +34,7 @@ CommandInvite::CommandInvite(Module* parent, Invite::APIImpl& invapiimpl)
 
 /** Handle /INVITE
  */
-CmdResult CommandInvite::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandInvite::Handle(User* user, const Params& parameters)
 {
        ModResult MOD_RESULT;
 
@@ -173,7 +173,7 @@ CmdResult CommandInvite::Handle (const std::vector<std::string>& parameters, Use
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandInvite::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandInvite::GetRouting(User* user, const Params& parameters)
 {
        return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
 }
index a60f1b2c6fd824ebfffad0031061fd9b557b8adb..2caed9dc6efb3df351af2fdf7dd400d718a65a90 100644 (file)
@@ -30,7 +30,7 @@ CommandJoin::CommandJoin(Module* parent)
 
 /** Handle /JOIN
  */
-CmdResult CommandJoin::HandleLocal(const std::vector<std::string>& parameters, LocalUser *user)
+CmdResult CommandJoin::HandleLocal(LocalUser* user, const Params& parameters)
 {
        if (parameters.size() > 1)
        {
index 05e2797514aaf0f25594341ecb2a3dc87cc2a476..755c6613b9cbfb95ec8b9ee02d04d284ac6e3fbb 100644 (file)
@@ -29,7 +29,7 @@ CommandKick::CommandKick(Module* parent)
 
 /** Handle /KICK
  */
-CmdResult CommandKick::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandKick::Handle(User* user, const Params& parameters)
 {
        Channel* c = ServerInstance->FindChan(parameters[0]);
        User* u;
@@ -127,7 +127,7 @@ CmdResult CommandKick::Handle (const std::vector<std::string>& parameters, User
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandKick::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandKick::GetRouting(User* user, const Params& parameters)
 {
        return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
 }
index 92f0810de317a213904a9fa2c5abdd7d71bf3716..28273c90394ce80567eadd98b24af23bc1b2e4e0 100644 (file)
@@ -32,7 +32,7 @@ CommandNames::CommandNames(Module* parent)
 
 /** Handle /NAMES
  */
-CmdResult CommandNames::HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+CmdResult CommandNames::HandleLocal(LocalUser* user, const Params& parameters)
 {
        Channel* c;
 
index fe913225e0bc6de95e34dabd20e7aa6b4df6fafe..0417f1a0cf422e6a1ebcb48088693a251eaa8be1 100644 (file)
@@ -33,7 +33,7 @@ CommandTopic::CommandTopic(Module* parent)
        Penalty = 2;
 }
 
-CmdResult CommandTopic::HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+CmdResult CommandTopic::HandleLocal(LocalUser* user, const Params& parameters)
 {
        Channel* c = ServerInstance->FindChan(parameters[0]);
        if (!c)
index e59b2cdbdd82801ffa8559980af55349224f3993..59a41779055e1ade7df7d2546dcfab8995976b3b 100644 (file)
@@ -70,8 +70,8 @@ class CommandInvite : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /JOIN.
@@ -88,7 +88,7 @@ class CommandJoin : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /TOPIC.
@@ -109,7 +109,7 @@ class CommandTopic : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /NAMES.
@@ -130,7 +130,7 @@ class CommandNames : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 
        /** Spool the NAMES list for a given channel to the given user
         * @param user User to spool the NAMES list to
@@ -154,8 +154,8 @@ class CommandKick : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Channel mode +b
index f79ebc036dd218520ab9aa26922efacdd8e44257..44827555d5488ee7db133022d1765cd69e4247c0 100644 (file)
@@ -30,7 +30,7 @@ CommandAdmin::CommandAdmin(Module* parent)
 
 /** Handle /ADMIN
  */
-CmdResult CommandAdmin::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandAdmin::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
                return CMD_SUCCESS;
index a7a622f5fe96eedd7f05f94469928acaaa2856c8..0a3efdf23143906ad7140567c4a0c1aa7e05f81d 100644 (file)
@@ -36,7 +36,7 @@ CommandCommands::CommandCommands(Module* parent)
 
 /** Handle /COMMANDS
  */
-CmdResult CommandCommands::Handle (const std::vector<std::string>&, User *user)
+CmdResult CommandCommands::Handle(User* user, const Params& parameters)
 {
        const CommandParser::CommandMap& commands = ServerInstance->Parser.GetCommands();
        std::vector<std::string> list;
index e84daeccb91e551f1e09a22302c35e4c00fc039c..89e92e5a87eacc4c6c202e586efb9a4fa907b9aa 100644 (file)
@@ -77,7 +77,7 @@ static const char* const lines[] = {
 
 /** Handle /INFO
  */
-CmdResult CommandInfo::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandInfo::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
                return CMD_SUCCESS;
index fa8c2aebbc61c2c91be428d09f69d91cc67830da..952b6bca25ca44f651df2599346550b1f4c88141 100644 (file)
@@ -38,7 +38,7 @@ CommandModules::CommandModules(Module* parent)
 
 /** Handle /MODULES
  */
-CmdResult CommandModules::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandModules::Handle(User* user, const Params& parameters)
 {
        // Don't ask remote servers about their modules unless the local user asking is an oper
        // 2.0 asks anyway, so let's handle that the same way
index cfb083eed2b08b10b0d1c0a6280232cd065cb03e..cc770b157bf3bedd218f1f4c717a74f7a60765b8 100644 (file)
@@ -29,7 +29,7 @@ CommandMotd::CommandMotd(Module* parent)
 
 /** Handle /MOTD
  */
-CmdResult CommandMotd::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandMotd::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
        {
index 6755e583742efe31f706414e45164f666e0b636f..73987cf0183c24ba8f1fc91ab0745676be29a787 100644 (file)
@@ -27,7 +27,7 @@ CommandTime::CommandTime(Module* parent)
        syntax = "[<servername>]";
 }
 
-CmdResult CommandTime::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandTime::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
                return CMD_SUCCESS;
index 9ec0108b13123ed675572ebf88debae05af44aa3..29d96169e9b42a595103f07f5249deb84b716a0a 100644 (file)
@@ -27,7 +27,7 @@ CommandVersion::CommandVersion(Module* parent)
        syntax = "[<servername>]";
 }
 
-CmdResult CommandVersion::Handle (const std::vector<std::string>&, User *user)
+CmdResult CommandVersion::Handle(User* user, const Params& parameters)
 {
        std::string version = ServerInstance->GetVersionString((user->IsOper()));
        user->WriteNumeric(RPL_VERSION, version);
index bd519076d92a23ee0331e549434eb470e3473f03..f1a17d0898dafd182d3f8afb01083cc62d2599fa 100644 (file)
@@ -20,7 +20,7 @@
 #include "inspircd.h"
 #include "core_info.h"
 
-RouteDescriptor ServerTargetCommand::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor ServerTargetCommand::GetRouting(User* user, const Params& parameters)
 {
        // Parameter must be a server name, not a nickname or uuid
        if ((!parameters.empty()) && (parameters[0].find('.') != std::string::npos))
index 53b949ac57e1163ae2fafd917789f58cde2dc8e4..127041b463748551326d1096f4fb9ce3e22fe6a9 100644 (file)
@@ -31,7 +31,7 @@ class ServerTargetCommand : public Command
        {
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /ADMIN.
@@ -63,7 +63,7 @@ class CommandAdmin : public ServerTargetCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /COMMANDS.
@@ -80,7 +80,7 @@ class CommandCommands : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /INFO.
@@ -97,7 +97,7 @@ class CommandInfo : public ServerTargetCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /MODULES.
@@ -114,7 +114,7 @@ class CommandModules : public ServerTargetCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /MOTD.
@@ -131,7 +131,7 @@ class CommandMotd : public ServerTargetCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /TIME.
@@ -148,7 +148,7 @@ class CommandTime : public ServerTargetCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /VERSION.
@@ -165,5 +165,5 @@ class CommandVersion : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
index 642e36b43984046a53c8d8b58522cc4e1980c701..0c98dfe5621aa23bdf93781ed105543db126d2a3 100644 (file)
@@ -37,7 +37,7 @@ class CommandIson : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class IsonReplyBuilder : public Numeric::Builder<' ', true>
@@ -58,7 +58,7 @@ class IsonReplyBuilder : public Numeric::Builder<' ', true>
 
 /** Handle /ISON
  */
-CmdResult CommandIson::HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+CmdResult CommandIson::HandleLocal(LocalUser* user, const Params& parameters)
 {
        IsonReplyBuilder reply(user);
 
index 600ec47c2e3b31772aaa92de9e2cdcf990577fdd..f03fbbe5e811aae441c2efb899cacd511de1b858 100644 (file)
@@ -56,13 +56,13 @@ class CommandList : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 
 /** Handle /LIST
  */
-CmdResult CommandList::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandList::Handle(User* user, const Params& parameters)
 {
        // C: Searching based on creation time, via the "C<val" and "C>val" modifiers
        // to search for a channel creation time that is lower or higher than val
index 1064da6c8897c9fe33f00ecdc9419381853fdede..69c6bbcef2dd24e86bc1b1ca0b1b4054601b9e7f 100644 (file)
@@ -33,12 +33,12 @@ class CommandLoadmodule : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /LOADMODULE
  */
-CmdResult CommandLoadmodule::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandLoadmodule::Handle(User* user, const Params& parameters)
 {
        if (ServerInstance->Modules->Load(parameters[0]))
        {
@@ -72,10 +72,10 @@ class CommandUnloadmodule : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
-CmdResult CommandUnloadmodule::Handle(const std::vector<std::string>& parameters, User* user)
+CmdResult CommandUnloadmodule::Handle(User* user, const Params& parameters)
 {
        if (!ServerInstance->Config->ConfValue("security")->getBool("allowcoreunload") &&
                InspIRCd::Match(parameters[0], "core_*.so", ascii_case_insensitive_map))
index a995e59e7fa6cffabf3c84e2a4f9aa83764a6e6f..39a5dac7f61e421686752c6acb25002991bc96cc 100644 (file)
@@ -61,12 +61,12 @@ class CommandLusers : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /LUSERS
  */
-CmdResult CommandLusers::Handle (const std::vector<std::string>&, User *user)
+CmdResult CommandLusers::Handle(User* user, const Params& parameters)
 {
        unsigned int n_users = ServerInstance->Users->RegisteredUserCount();
        ProtocolInterface::ServerList serverlist;
index 5fe64352058c615ef9065444f7df1082f37e41f7..d10732952e6a8b1d549fefe5c1e2bd3e28127d1b 100644 (file)
@@ -58,7 +58,7 @@ void DieRestart::SendError(const std::string& message)
 
 /** Handle /DIE
  */
-CmdResult CommandDie::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandDie::Handle(User* user, const Params& parameters)
 {
        if (DieRestart::CheckPass(user, parameters[0], "diepass"))
        {
index 446b50c0b892e59a1c3b87b31db72dd3e45b92cb..fd6729f53d429dd253da934db6e945c839522b5d 100644 (file)
@@ -33,7 +33,7 @@ CommandKill::CommandKill(Module* parent)
 
 /** Handle /KILL
  */
-CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandKill::Handle(User* user, const Params& parameters)
 {
        /* Allow comma seperated lists of users for /KILL (thanks w00t) */
        if (CommandParser::LoopCall(user, this, parameters, 0))
@@ -118,7 +118,7 @@ CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandKill::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandKill::GetRouting(User* user, const Params& parameters)
 {
        // FindNick() doesn't work here because we quit the target user in Handle() which
        // removes it from the nicklist, so we check lastuuid: if it's empty then this KILL
index e65ed9752429536c26ef51f02b00823aa2d7c35a..8c3c86adc4df74d2af589ad3830b3e67dc9c4066 100644 (file)
@@ -28,7 +28,7 @@ CommandOper::CommandOper(Module* parent)
        syntax = "<username> <password>";
 }
 
-CmdResult CommandOper::HandleLocal(const std::vector<std::string>& parameters, LocalUser *user)
+CmdResult CommandOper::HandleLocal(LocalUser* user, const Params& parameters)
 {
        bool match_login = false;
        bool match_pass = false;
index 5ce38eb2c39cd8e1f82867eaa0922dd37f481dfe..e234e54b46c9331f42b600c0e9e3b052b054bd2b 100644 (file)
@@ -30,7 +30,7 @@ CommandRehash::CommandRehash(Module* parent)
        syntax = "[<servermask>]";
 }
 
-CmdResult CommandRehash::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandRehash::Handle(User* user, const Params& parameters)
 {
        std::string param = parameters.size() ? parameters[0] : "";
 
index 6c19329c30aac78f1e4e8c78f0f79ded3fa379d0..936348f951df3da916871602f180286b0347e874 100644 (file)
@@ -28,7 +28,7 @@ CommandRestart::CommandRestart(Module* parent)
        syntax = "<server>";
 }
 
-CmdResult CommandRestart::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandRestart::Handle(User* user, const Params& parameters)
 {
        ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Restart: %s", user->nick.c_str());
        if (DieRestart::CheckPass(user, parameters[0], "restartpass"))
index be615239e22328190359e4240522dfaba4563332..b069c34b2a270f65f62f3c2d0e9529aa227e6be9 100644 (file)
@@ -51,7 +51,7 @@ class CommandDie : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /KILL.
@@ -71,8 +71,8 @@ class CommandKill : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 
        void EncodeParameter(std::string& param, unsigned int index) CXX11_OVERRIDE;
 };
@@ -91,7 +91,7 @@ class CommandOper : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /REHASH.
@@ -108,7 +108,7 @@ class CommandRehash : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /RESTART
@@ -125,5 +125,5 @@ class CommandRestart : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
index 29756a4c28ec54ba5cd6b3db2f6b4f0bee9eb84c..6078f5297dcc2b5195a67091af0188e219ceaa53 100644 (file)
@@ -52,9 +52,9 @@ class MessageCommandBase : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleMessage(const std::vector<std::string>& parameters, User* user, MessageType mt);
+       CmdResult HandleMessage(User* user, const CommandBase::Params& parameters, MessageType mt);
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (IS_LOCAL(user))
                        // This is handled by the OnUserPostMessage hook to split the LoopCall pieces
@@ -75,7 +75,7 @@ void MessageCommandBase::SendAll(User* user, const std::string& msg, MessageType
        }
 }
 
-CmdResult MessageCommandBase::HandleMessage(const std::vector<std::string>& parameters, User* user, MessageType mt)
+CmdResult MessageCommandBase::HandleMessage(User* user, const CommandBase::Params& parameters, MessageType mt)
 {
        User *dest;
        Channel *chan;
@@ -271,9 +271,9 @@ class CommandMessage : public MessageCommandBase
        {
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
-               return HandleMessage(parameters, user, MT);
+               return HandleMessage(user, parameters, MT);
        }
 };
 
index 9101442216465c477df8dbfe5911ff47729e1215..23be33af8d327ad9757bc37eef28f42a2d3117cc 100644 (file)
@@ -45,7 +45,7 @@ class CommandReloadmodule : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 namespace ReloadModule
@@ -608,7 +608,7 @@ class ReloadAction : public ActionBase
        }
 };
 
-CmdResult CommandReloadmodule::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandReloadmodule::Handle(User* user, const Params& parameters)
 {
        Module* m = ServerInstance->Modules->Find(parameters[0]);
        if (m == creator)
index 5642cd52ee64be5c13a3e25bbb9532bf5e0a8bfd..bb20dd7612ab470cd9bd3b29dd1807222b8ddfff 100644 (file)
@@ -51,8 +51,8 @@ class CommandStats : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos))
                        return ROUTE_UNICAST(parameters[1]);
@@ -375,7 +375,7 @@ void CommandStats::DoStats(Stats::Context& stats)
        return;
 }
 
-CmdResult CommandStats::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandStats::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() > 1 && parameters[1] != ServerInstance->Config->ServerName)
        {
index 6adc02f32998b4a20ac5490a87c9928585d51bed..7ed3865e3851c9725256e6c2b06be077f5ffa111 100644 (file)
@@ -41,7 +41,7 @@ class CommandConnect : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /*
                 * This is handled by the server linking module, if necessary. Do not remove this stub.
@@ -68,7 +68,7 @@ class CommandLinks : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                user->WriteNumeric(RPL_LINKS, ServerInstance->Config->ServerName, ServerInstance->Config->ServerName, InspIRCd::Format("0 %s", ServerInstance->Config->ServerDesc.c_str()));
                user->WriteNumeric(RPL_ENDOFLINKS, '*', "End of /LINKS list.");
@@ -94,7 +94,7 @@ class CommandServer : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (user->registered == REG_ALL)
                {
@@ -127,7 +127,7 @@ class CommandSquit : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                user->WriteNotice("Look into loading a linking module (like m_spanningtree) if you want this to do anything useful.");
                return CMD_FAILURE;
index 32d4a9d84f8dd951838b09b5fbf12d249567c686..1b7bacebaa3d31eae28767f16941a903688f844e 100644 (file)
@@ -29,7 +29,7 @@ CommandAway::CommandAway(Module* parent)
 
 /** Handle /AWAY
  */
-CmdResult CommandAway::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandAway::Handle(User* user, const Params& parameters)
 {
        ModResult MOD_RESULT;
 
@@ -59,7 +59,7 @@ CmdResult CommandAway::Handle (const std::vector<std::string>& parameters, User
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandAway::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandAway::GetRouting(User* user, const Params& parameters)
 {
        return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
 }
index ec75d619145c923d488bbd00bffd81d5e3dd4839..a3ebda16d7feaf88f758dedc2314860762360af3 100644 (file)
@@ -30,7 +30,7 @@ CommandMode::CommandMode(Module* parent)
        memset(&sent, 0, sizeof(sent));
 }
 
-CmdResult CommandMode::Handle(const std::vector<std::string>& parameters, User* user)
+CmdResult CommandMode::Handle(User* user, const Params& parameters)
 {
        const std::string& target = parameters[0];
        Channel* targetchannel = ServerInstance->FindChan(target);
@@ -103,7 +103,7 @@ CmdResult CommandMode::Handle(const std::vector<std::string>& parameters, User*
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandMode::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandMode::GetRouting(User* user, const Params& parameters)
 {
        return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
 }
index 80bfbe674fe083c5d3aa19bd382bdf9eff8a59cd..670931f7aacf8379de0b235ec0f478f90c16a0fa 100644 (file)
@@ -36,7 +36,7 @@ CommandNick::CommandNick(Module* parent)
  * for the client introduction code in here, youre in the wrong place.
  * You need to look in the spanningtree module for this!
  */
-CmdResult CommandNick::HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+CmdResult CommandNick::HandleLocal(LocalUser* user, const Params& parameters)
 {
        std::string oldnick = user->nick;
        std::string newnick = parameters[0];
index 261d75a700414a4c02c65a9cca545cc60ed2743b..2bc431ab3d6b7b9b6412e482df8ab5946536e29a 100644 (file)
@@ -28,7 +28,7 @@ CommandPart::CommandPart(Module* parent)
        syntax = "<channel>{,<channel>} [<reason>]";
 }
 
-CmdResult CommandPart::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandPart::Handle(User* user, const Params& parameters)
 {
        std::string reason;
        if (parameters.size() > 1)
@@ -59,7 +59,7 @@ CmdResult CommandPart::Handle (const std::vector<std::string>& parameters, User
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandPart::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandPart::GetRouting(User* user, const Params& parameters)
 {
        return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
 }
index f9a4e1f70b2c9178dd4ea89dacdffceb86d55c13..d919a5761028def110ccfd9a7cf8c706cdbb1dd6 100644 (file)
@@ -29,7 +29,7 @@ CommandQuit::CommandQuit(Module* parent)
        syntax = "[<message>]";
 }
 
-CmdResult CommandQuit::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandQuit::Handle(User* user, const Params& parameters)
 {
        std::string quitmsg;
        if (parameters.empty())
@@ -45,7 +45,7 @@ CmdResult CommandQuit::Handle (const std::vector<std::string>& parameters, User
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandQuit::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandQuit::GetRouting(User* user, const Params& parameters)
 {
        return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST);
 }
index 452146adc5f6eeede173ee11e8238b0755a802a2..f49b1339ceed347c8c89822991b5b32131be7a89 100644 (file)
@@ -35,7 +35,7 @@ CommandUser::CommandUser(Module* parent)
        syntax = "<username> <localhost> <remotehost> <realname>";
 }
 
-CmdResult CommandUser::HandleLocal(const std::vector<std::string>& parameters, LocalUser *user)
+CmdResult CommandUser::HandleLocal(LocalUser* user, const Params& parameters)
 {
        /* A user may only send the USER command once */
        if (!(user->registered & REG_USER))
index 8504de8e0e969e8426c0c6699e6b3bc49bf60f21..6e4e547c16f148668b2018657336f27d7752611b 100644 (file)
@@ -40,7 +40,7 @@ class CommandPass : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                // Check to make sure they haven't registered -- Fix by FCS
                if (user->registered == REG_ALL)
@@ -73,7 +73,7 @@ class CommandPing : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                user->WriteServ("PONG %s :%s", ServerInstance->Config->ServerName.c_str(), parameters[0].c_str());
                return CMD_SUCCESS;
@@ -99,7 +99,7 @@ class CommandPong : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                // set the user as alive so they survive to next ping
                LocalUser* localuser = IS_LOCAL(user);
index befb07ef5862919d37c020c8b45ae4a45edc866f..f29d2e448b8b962e323a49f8c3c9c51e83df04d0 100644 (file)
@@ -62,8 +62,8 @@ class CommandAway : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandMode : public Command
@@ -95,9 +95,9 @@ class CommandMode : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /NICK.
@@ -114,7 +114,7 @@ class CommandNick : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /PART.
@@ -133,8 +133,8 @@ class CommandPart : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /QUIT.
@@ -156,9 +156,9 @@ class CommandQuit : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /USER.
@@ -175,7 +175,7 @@ class CommandUser : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 
        /** Run the OnUserRegister hook if the user has sent both NICK and USER. Called after an unregistered user
         * successfully executes the USER or the NICK command.
index 2ed19f4d7c3bfd7404bde3980c3b432e3153e4b0..294f714b4e0f8f9d468c8e16c546ca331e3e108c 100644 (file)
@@ -40,10 +40,10 @@ class CommandUserhost : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
-CmdResult CommandUserhost::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandUserhost::Handle(User* user, const Params& parameters)
 {
        const bool has_privs = user->HasPrivPermission("users/auspex");
 
index d45ede846a9e4306dcb55727e284a5e8ef6604d4..856fcea747293cf470c878a6ec5f0c44909128bf 100644 (file)
@@ -42,15 +42,15 @@ class CommandWallops : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
 };
 
-CmdResult CommandWallops::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandWallops::Handle(User* user, const Params& parameters)
 {
        std::string wallop("WALLOPS :");
        wallop.append(parameters[0]);
index 305733e03e90694bb2397a27a9c91b96b82166b2..8bba1f8604c0146b78bf4f1c790b0e2ba5cf44bb 100644 (file)
@@ -56,7 +56,7 @@ struct WhoData
        // A user specified label for the WHOX response.
        std::string whox_querytype;
 
-       WhoData(const std::vector<std::string>& parameters)
+       WhoData(const CommandBase::Params& parameters)
                : whox(false)
        {
                // Find the matchtext and swap the 0 for a * so we can use InspIRCd::Match on it.
@@ -168,7 +168,7 @@ class CommandWho : public SplitCommand
        /** Sends a WHO reply to a user. */
        void SendWhoLine(LocalUser* user, const std::vector<std::string>& parameters, Membership* memb, User* u, WhoData& data);
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 template<> User* CommandWho::GetUser(UserManager::OperList::const_iterator& t) { return *t; }
@@ -539,7 +539,7 @@ void CommandWho::SendWhoLine(LocalUser* source, const std::vector<std::string>&
                data.results.push_back(wholine);
 }
 
-CmdResult CommandWho::HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+CmdResult CommandWho::HandleLocal(LocalUser* user, const Params& parameters)
 {
        WhoData data(parameters);
 
index 4ec59278142ba1c398b01c1653038f5fb0b17f30..8f09396b295aae20e22ee6206832aef0e3951ba2 100644 (file)
@@ -109,8 +109,8 @@ class CommandWhois : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
-       CmdResult HandleRemote(const std::vector<std::string>& parameters, RemoteUser* target) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
+       CmdResult HandleRemote(RemoteUser* target, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class WhoisNumericSink
@@ -267,7 +267,7 @@ void CommandWhois::DoWhois(LocalUser* user, User* dest, time_t signon, unsigned
        whois.SendLine(RPL_ENDOFWHOIS, "End of /WHOIS list.");
 }
 
-CmdResult CommandWhois::HandleRemote(const std::vector<std::string>& parameters, RemoteUser* target)
+CmdResult CommandWhois::HandleRemote(RemoteUser* target, const Params& parameters)
 {
        if (parameters.size() < 2)
                return CMD_FAILURE;
@@ -287,7 +287,7 @@ CmdResult CommandWhois::HandleRemote(const std::vector<std::string>& parameters,
        return CMD_SUCCESS;
 }
 
-CmdResult CommandWhois::HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+CmdResult CommandWhois::HandleLocal(LocalUser* user, const Params& parameters)
 {
        User *dest;
        unsigned int userindex = 0;
index 188b0e4d5db48e0ab6d1bd7ee69e48694a548d57..6bcf6448b1b144e8e525ae70fd7e92da9bb48db7 100644 (file)
@@ -41,7 +41,7 @@ CommandWhowas::CommandWhowas( Module* parent)
        Penalty = 2;
 }
 
-CmdResult CommandWhowas::Handle (const std::vector<std::string>& parameters, User* user)
+CmdResult CommandWhowas::Handle(User* user, const Params& parameters)
 {
        /* if whowas disabled in config */
        if (!manager.IsEnabled())
index 26b49894b708ef36ff166b7a303e4e42bdec7d7f..0cb52298c14ea5e3a443a6c851abd01e5cef7424 100644 (file)
@@ -31,7 +31,7 @@ CommandEline::CommandEline(Module* parent)
 
 /** Handle /ELINE
  */
-CmdResult CommandEline::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandEline::Handle(User* user, const Params& parameters)
 {
        std::string target = parameters[0];
 
index 49932ba9d473b1ec9342423f9926e659d4d104bd..79b3ce21f07b597a222c063cf6278a4450008bf0 100644 (file)
@@ -31,7 +31,7 @@ CommandGline::CommandGline(Module* parent)
 
 /** Handle /GLINE
  */
-CmdResult CommandGline::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandGline::Handle(User* user, const Params& parameters)
 {
        std::string target = parameters[0];
 
index db8862d37474636213fd6d1b36a044437a861f8f..0f04224d681fda59897e59e9adae5234fab72180 100644 (file)
@@ -31,7 +31,7 @@ CommandKline::CommandKline(Module* parent)
 
 /** Handle /KLINE
  */
-CmdResult CommandKline::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandKline::Handle(User* user, const Params& parameters)
 {
        std::string target = parameters[0];
 
index 6dc0da9bad7ec210e62fbe690a6bd39840ae9c9d..b7597386129215b9a21c1bee66f0146efb03e542 100644 (file)
@@ -30,7 +30,7 @@ CommandQline::CommandQline(Module* parent)
        syntax = "<nick> [<duration> :<reason>]";
 }
 
-CmdResult CommandQline::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandQline::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() >= 3)
        {
index af9d54a5b6e66b4a4df55daddf8312b4e34e3788..350f3270c0d8dd5518b5b056ff1cb271f7c4a688 100644 (file)
@@ -30,7 +30,7 @@ CommandZline::CommandZline(Module* parent)
        syntax = "<ipmask> [<duration> :<reason>]";
 }
 
-CmdResult CommandZline::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandZline::Handle(User* user, const Params& parameters)
 {
        std::string target = parameters[0];
 
index 11756c06b982d01ad2e2217112896b476997921f..1e0bc74cceaec62ddcadb18b8676de5e2caf0c78 100644 (file)
@@ -79,7 +79,7 @@ class CommandEline : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /GLINE.
@@ -96,7 +96,7 @@ class CommandGline : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /KLINE.
@@ -113,7 +113,7 @@ class CommandKline : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /QLINE.
@@ -136,7 +136,7 @@ class CommandQline : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /ZLINE.
@@ -159,5 +159,5 @@ class CommandZline : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
index ab10d6ae13ead59f48d3f638f30a1ba29ada72e1..334111e6d42936968079fee171da5d11ac3a62fd 100644 (file)
@@ -94,8 +94,8 @@ ModResult     Module::OnKill(User*, User*, const std::string&) { DetachEvent(I_OnKil
 void           Module::OnLoadModule(Module*) { DetachEvent(I_OnLoadModule); }
 void           Module::OnUnloadModule(Module*) { DetachEvent(I_OnUnloadModule); }
 void           Module::OnBackgroundTimer(time_t) { DetachEvent(I_OnBackgroundTimer); }
-ModResult      Module::OnPreCommand(std::string&, std::vector<std::string>&, LocalUser*, bool, const std::string&) { DetachEvent(I_OnPreCommand); return MOD_RES_PASSTHRU; }
-void           Module::OnPostCommand(Command*, const std::vector<std::string>&, LocalUser*, CmdResult, const std::string&) { DetachEvent(I_OnPostCommand); }
+ModResult      Module::OnPreCommand(std::string&, CommandBase::Params&, LocalUser*, bool, const std::string&) { DetachEvent(I_OnPreCommand); return MOD_RES_PASSTHRU; }
+void           Module::OnPostCommand(Command*, const CommandBase::Params&, LocalUser*, CmdResult, const std::string&) { DetachEvent(I_OnPostCommand); }
 void           Module::OnUserInit(LocalUser*) { DetachEvent(I_OnUserInit); }
 ModResult      Module::OnCheckReady(LocalUser*) { DetachEvent(I_OnCheckReady); return MOD_RES_PASSTHRU; }
 ModResult      Module::OnUserRegister(LocalUser*) { DetachEvent(I_OnUserRegister); return MOD_RES_PASSTHRU; }
index c81caf1429cc6b9f39d380d426f4ff96dc4a63fd..22baa916bc73c41be7517c83e7c648c204496998 100644 (file)
@@ -38,7 +38,7 @@ class ModuleAbbreviation : public Module
                return Version("Provides the ability to abbreviate commands a-la BBC BASIC keywords.",VF_VENDOR);
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                /* Command is already validated, has a length of 0, or last character is not a . */
                if (validated || command.empty() || *command.rbegin() != '.')
index 01338e8b47d3285223fe651b0b47d929ccd65e0e..a8e39cb477c105ca253ea7192e386d06959e66fc 100644 (file)
@@ -129,7 +129,7 @@ class ModuleAlias : public Module
                return word;
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                /* If theyre not registered yet, we dont want
                 * to know.
@@ -328,7 +328,7 @@ class ModuleAlias : public Module
                }
 
                irc::tokenstream ss(result);
-               std::vector<std::string> pars;
+               CommandBase::Params pars;
                std::string command, token;
 
                ss.GetToken(command);
index de3e702acfc56b73a66e6ec54589c6ee066ab248..486ad1c18113b689882f2fb2e9369d4618a08b40 100644 (file)
@@ -29,7 +29,7 @@ class CommandAlltime : public Command
                flags_needed = 'o';
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                const std::string fmtdate = InspIRCd::TimeString(ServerInstance->Time(), "%Y-%m-%d %H:%M:%S", true);
 
@@ -41,7 +41,7 @@ class CommandAlltime : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_BCAST;
        }
index 097041896099dc06216f2e03dba6223e1bcb055c..3c8fcd1b55302521f955c0a8226b70b1e16c0619 100644 (file)
@@ -81,7 +81,7 @@ class ModuleBlockAmsg : public Module
                        action = IBLOCK_KILLOPERS;
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                // Don't do anything with unregistered users
                if (user->registered != REG_ALL)
index ecccbe91b5fe7e2d3ca217bd4c024ae23c83edb2..b0ec3b8ff900d9642b723a5ab7dbe515ad7f6fec 100644 (file)
@@ -201,7 +201,7 @@ public:
         * /accept nick1,nick2,nick3,*
         * to add 3 nicks and then show your list
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (CommandParser::LoopCall(user, this, parameters, 0))
                        return CMD_SUCCESS;
@@ -234,7 +234,7 @@ public:
                        return (RemoveAccept(user, action.first) ? CMD_SUCCESS : CMD_FAILURE);
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                // There is a list in parameters[0] in two cases:
                // Either when the source is remote, this happens because 2.0 servers send comma seperated uuid lists,
index 1465f8a383436b6a4f25ce526e2a24b802fe2c7b..80e70d3e57470d89ba883edde2ada430d47d55bd 100644 (file)
@@ -365,7 +365,7 @@ class CommandCap : public SplitCommand
                works_before_reg = true;
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (user->registered != REG_ALL)
                        holdext.set(user, 1);
index 7235a8befa3d186aca0d82882b7bddf8121d003b..5f98def8f6eea222ad00672c0b9e992d0c15d4b6 100644 (file)
@@ -85,7 +85,7 @@ class CommandCBan : public Command
                flags_needed = 'o'; this->syntax = "<channel> [<duration> :<reason>]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /* syntax: CBAN #channel time :reason goes here */
                /* 'time' is a human-readable timestring, like 2d3h2s. */
@@ -132,7 +132,7 @@ class CommandCBan : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (IS_LOCAL(user))
                        return ROUTE_LOCALONLY; // spanningtree will send ADDLINE
index 7d4f671b9dfcee4f74fa8d5491bde53747a661be..ecb07f96ecbce661d673fcf36bed135106541991 100644 (file)
@@ -110,7 +110,7 @@ class CommandWebIRC : public SplitCommand
                this->syntax = "password gateway hostname ip";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (user->registered == REG_ALL)
                        return CMD_FAILURE;
index f2da47f1bb63cb4d317b6c880112ab458550d423..cbb32db48e17e9439fe779968be6d4d960e9056f 100644 (file)
@@ -140,7 +140,7 @@ class CommandCheck : public Command
                return ret;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters.size() > 1 && parameters[1] != ServerInstance->Config->ServerName)
                        return CMD_SUCCESS;
@@ -301,7 +301,7 @@ class CommandCheck : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos))
                        return ROUTE_OPT_UCAST(parameters[1]);
index 10e447b45b6426cc2eb3d63191240ac53be07f15..6e498a8be1c0442d76435ca52bdec42d54ff36b6 100644 (file)
@@ -37,7 +37,7 @@ class CommandChghost : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters[1].length() > ServerInstance->Config->Limits.MaxHost)
                {
@@ -75,7 +75,7 @@ class CommandChghost : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index f09bef0abc10d7222327d9f25f737e7ac5080425..9a2d3b2ea9e36d9619bf0e61fbb6603941a8978d 100644 (file)
@@ -35,7 +35,7 @@ class CommandChgident : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
 
@@ -68,7 +68,7 @@ class CommandChgident : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index b6c59d36f6dc5ba1e637b0db14c700a6b6175571..fa35732b86596e57f7dd74bcf26f903c34668a84 100644 (file)
@@ -33,7 +33,7 @@ class CommandChgname : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
 
@@ -64,7 +64,7 @@ class CommandChgname : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index 0c6d522650c4a07751656076051a4d950a4add74..016d28737ff88fcb6e4ce2a35cfed6ebe4732bbd 100644 (file)
@@ -35,7 +35,7 @@ class CommandClearChan : public Command
                force_manual_route = true;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                Channel* chan = activechan = ServerInstance->FindChan(parameters[0]);
                if (!chan)
@@ -79,7 +79,7 @@ class CommandClearChan : public Command
                        // The idea is that by the time our QUITs reach the next hop, it has already removed all their
                        // clients from the channel, meaning victims on other servers won't see the victims on this
                        // server quitting.
-                       std::vector<std::string> eparams;
+                       CommandBase::Params eparams;
                        eparams.push_back(chan->name);
                        eparams.push_back(method);
                        eparams.push_back(":");
index ad4b958c58ac89f6ff4b9a736dcf9c4f597b9082..c277759d174400649a2cac31721fc221ac30769f 100644 (file)
@@ -137,7 +137,7 @@ class CommandCloak : public Command
                syntax = "<host>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class ModuleCloaking : public Module
@@ -403,7 +403,7 @@ class ModuleCloaking : public Module
        }
 };
 
-CmdResult CommandCloak::Handle(const std::vector<std::string> &parameters, User *user)
+CmdResult CommandCloak::Handle(User* user, const Params& parameters)
 {
        ModuleCloaking* mod = (ModuleCloaking*)(Module*)creator;
        irc::sockets::sockaddrs sa;
index 7cce32188932d51774bb95af15b708da1a852362..68c9639c25e2efcbe427fe281377c338d815f296 100644 (file)
@@ -31,7 +31,7 @@ class CommandClones : public Command
                flags_needed = 'o'; syntax = "<limit>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
 
                std::string clonesstr = "CLONES ";
index 8ef93830dbdc200fbc86d4f19184850bd788455e..b0b45b4b6b3797a18cda2120be497c1e5a99efa2 100644 (file)
@@ -31,7 +31,7 @@ class CommandClose : public Command
                flags_needed = 'o';
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* src) CXX11_OVERRIDE
+       CmdResult Handle(User* src, const Params& parameters) CXX11_OVERRIDE
        {
                std::map<std::string,int> closed;
 
index c439f3bfeccf0fb6a18787b41f720a2b736bcd62..1f2fe745531f9e4a7463b790a9c3e37f7b0b2141 100644 (file)
@@ -49,7 +49,7 @@ class ModuleModesOnConnect : public Module
                        std::string buf;
                        irc::spacesepstream ss(ThisModes);
 
-                       std::vector<std::string> modes;
+                       CommandBase::Params modes;
                        modes.push_back(user->nick);
 
                        // split ThisUserModes into modes and mode params
index 87b6b51f21e1bf064c5cf11e6959cfbe83b1c603..f9e9262a7a00e93a04787482cc8e548ea9be6c25 100644 (file)
@@ -56,7 +56,7 @@ class ModuleWaitPong : public Module
                return MOD_RES_PASSTHRU;
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser* user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                if (command == "PONG")
                {
index ea07ba7d0a5ae05a357da6973e6f4e4d31ab67a0..c16b1eda21313093ffdfe3d2a60a35a53f62588a 100644 (file)
@@ -40,7 +40,7 @@ class CommandTitle : public Command
                syntax = "<user> <password>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                const std::string userHost = user->ident + "@" + user->GetRealHost();
                const std::string userIP = user->ident + "@" + user->GetIPString();
index 1028fa97753be60c13f7e498cc20ef2def180a2c..3ead72a453f1787b798f7e7aaca18f24a6ebf692 100644 (file)
@@ -31,7 +31,7 @@ class CommandCycle : public SplitCommand
                Penalty = 3; syntax = "<channel> :[reason]";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                Channel* channel = ServerInstance->FindChan(parameters[0]);
                std::string reason = "Cycling";
index 647f69e7a4c8455d21485e5b94bb79eb1b6fa360..04f85739a8317aa3db8a0b0634c03e58ef255315 100644 (file)
@@ -114,7 +114,7 @@ class CommandDccallow : public Command
                /* XXX we need to fix this so it can work with translation stuff (i.e. move +- into a seperate param */
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /* syntax: DCCALLOW [+|-]<nick> (<time>) */
                if (!parameters.size())
@@ -252,7 +252,7 @@ class CommandDccallow : public Command
                return CMD_FAILURE;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
index 0d0b7ae60c52b1b26d56bfc1cb5ab3f62b5eca94..343a62a8d0c2f8167131f4f1a4a37dcd393ef5dc 100644 (file)
@@ -153,9 +153,9 @@ class CommandFilter : public Command
                flags_needed = 'o';
                this->syntax = "<filter-definition> <action> <flags> [<duration>] :<reason>";
        }
-       CmdResult Handle(const std::vector<std::string>& , User* ) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
@@ -196,7 +196,7 @@ class ModuleFilter : public Module, public ServerEventListener, public Stats::Ev
        void OnSyncNetwork(ProtocolInterface::Server& server) CXX11_OVERRIDE;
        void OnDecodeMetaData(Extensible* target, const std::string &extname, const std::string &extdata) CXX11_OVERRIDE;
        ModResult OnStats(Stats::Context& stats) CXX11_OVERRIDE;
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE;
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE;
        void OnUnloadModule(Module* mod) CXX11_OVERRIDE;
        bool AppliesToMe(User* user, FilterResult* filter, int flags);
        void ReadFilters();
@@ -204,7 +204,7 @@ class ModuleFilter : public Module, public ServerEventListener, public Stats::Ev
        static std::string FilterActionToString(FilterAction fa);
 };
 
-CmdResult CommandFilter::Handle(const std::vector<std::string> &parameters, User *user)
+CmdResult CommandFilter::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() == 1)
        {
@@ -413,7 +413,7 @@ ModResult ModuleFilter::OnUserPreMessage(User* user, const MessageTarget& msgtar
        return MOD_RES_PASSTHRU;
 }
 
-ModResult ModuleFilter::OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line)
+ModResult ModuleFilter::OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line)
 {
        if (validated)
        {
index 1de0aea8b2c21e57b08789e711c716c2de8084e9..c0ce025bdc97c1cbee89b70070335f6a170688a0 100644 (file)
@@ -35,7 +35,7 @@ class CommandGloadmodule : public Command
                syntax = "<modulename> [servermask]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                std::string servername = parameters.size() > 1 ? parameters[1] : "*";
 
@@ -57,7 +57,7 @@ class CommandGloadmodule : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
@@ -74,7 +74,7 @@ class CommandGunloadmodule : public Command
                syntax = "<modulename> [servermask]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (!ServerInstance->Config->ConfValue("security")->getBool("allowcoreunload") &&
                        InspIRCd::Match(parameters[0], "core_*.so", ascii_case_insensitive_map))
@@ -109,7 +109,7 @@ class CommandGunloadmodule : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
@@ -125,7 +125,7 @@ class CommandGreloadmodule : public Command
                flags_needed = 'o'; syntax = "<modulename> [servermask]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                std::string servername = parameters.size() > 1 ? parameters[1] : "*";
 
@@ -149,7 +149,7 @@ class CommandGreloadmodule : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
index 1fe911e805101ae636bf42428801497f31138b50..b98adce35e63d149d55de89e4a57628c964bd699 100644 (file)
@@ -33,7 +33,7 @@ class CommandGlobops : public Command
                flags_needed = 'o'; syntax = "<any-text>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                ServerInstance->SNO->WriteGlobalSno('g', "From " + user->nick + ": " + parameters[0]);
                return CMD_SUCCESS;
index 8d129e8f541f50a3688b88f85e7c4ac93bf050d8..f8829857681b37b9a775ab2f35c6f9cac6e952ab 100644 (file)
@@ -57,7 +57,7 @@ class CommandHelpop : public Command
                syntax = "<any-text>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                const std::string& parameter = (!parameters.empty() ? parameters[0] : startkey);
 
index e54d1efb22556ba7007c4bc1d4b2092811d92f2b..9f3b41af7f514b1a564f04e58169ed06ccfbfd3e 100644 (file)
@@ -48,7 +48,7 @@ class CommandJumpserver : public Command
                redirect_new_users = false;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                int n_done = 0;
                reason = (parameters.size() < 4) ? "Please use this server/port instead" : parameters[3];
index 66abda8515b17abc05b7217ce82aabc184c76ea4..a0a8455a8ebd76b929bcda25e4df4d29d93d23e8 100644 (file)
@@ -50,7 +50,7 @@ class CommandKnock : public Command
                Penalty = 5;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                Channel* c = ServerInstance->FindChan(parameters[0]);
                if (!c)
@@ -87,7 +87,7 @@ class CommandKnock : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_BCAST;
        }
index 45e83333afd890e09ab05a96d7de0d4d49f2e44e..104c3bb21528a1fc5deddc081d2368bccf5f1542 100644 (file)
@@ -45,10 +45,10 @@ class LDAPOperBase : public LDAPInterface
                if (!oper_command)
                        return;
 
-               std::vector<std::string> params;
+               CommandBase::Params params;
                params.push_back(opername);
                params.push_back(password);
-               oper_command->Handle(params, user);
+               oper_command->Handle(user, params);
        }
 
        void Fallback()
@@ -201,7 +201,7 @@ class ModuleLDAPAuth : public Module
                attribute = tag->getString("attribute");
        }
 
-       ModResult OnPreCommand(std::string& command, std::vector<std::string>& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                if (validated && command == "OPER" && parameters.size() >= 2)
                {
index 48d9801eeffd31eaeb29c718e224ac4ff22ca4c7..45a0095d79e646fb67e74a2465a9f4f693253ca3 100644 (file)
@@ -42,7 +42,7 @@ class CommandLockserv : public Command
                flags_needed = 'o';
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (!locked.empty())
                {
@@ -67,7 +67,7 @@ class CommandUnlockserv : public Command
                flags_needed = 'o';
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (locked.empty())
                {
index 41de2997d3db56a361b4050cd9b2c82ba7a9b9d2..7c5f6b97b1eda88375f80ed966b9e618c5ea65e7 100644 (file)
@@ -28,7 +28,7 @@ class ModuleMapHide : public Module
                url = ServerInstance->Config->ConfValue("security")->getString("maphide");
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                if (validated && !user->IsOper() && !url.empty() && (command == "MAP" || command == "LINKS"))
                {
index 3d12f98d1f532f772bacba095df00d0c4bbbb035..5311015b7898ec8463a951cee73484621d865904 100644 (file)
@@ -28,7 +28,7 @@ class CommandModeNotice : public Command
                flags_needed = 'o';
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* src) CXX11_OVERRIDE
+       CmdResult Handle(User* src, const Params& parameters) CXX11_OVERRIDE
        {
                std::string msg = "*** From " + src->nick + ": " + parameters[1];
                int mlen = parameters[0].length();
@@ -47,7 +47,7 @@ next_user:    ;
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_BCAST;
        }
index 75fa11cf0c54223b077cb2616c237078828a34d5..38e7ccc3ea39ef1302ce0ac0e1d02598f5338282 100644 (file)
@@ -319,7 +319,7 @@ class CommandMonitor : public SplitCommand
                syntax = "[C|L|S|+ <nick1>[,<nick2>]|- <nick1>[,<nick2>]";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                char subcmd = toupper(parameters[0][0]);
                if (subcmd == '+')
index 73c5cb521fdc919572e5576ca2a474b8fef6a3da..8872ba62927c822977f8d90dda37f5084f1e209a 100644 (file)
@@ -59,7 +59,7 @@ class CommandProp : public SplitCommand
                syntax = "<user|channel> {[+-]<mode> [<value>]}*";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* src) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* src, const Params& parameters) CXX11_OVERRIDE
        {
                Channel* const chan = ServerInstance->FindChan(parameters[0]);
                if (!chan)
index beac968ef0c19e0a4693cddb053f1fe0e291dd31..98fac887200a89d7d5c6fa958094167b93b5dd5d 100644 (file)
@@ -41,7 +41,7 @@ class ModuleNamesX : public Module
                tokens["NAMESX"];
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                /* We don't actually create a proper command handler class for PROTOCTL,
                 * because other modules might want to have PROTOCTL hooks too.
index afdb0b1dc1eb799fe7d7e7674861e224d898c891..964ed9780ab41ba99684e15a175cc787b12270fd 100644 (file)
@@ -44,7 +44,7 @@ class CommandNicklock : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* target = ServerInstance->FindNick(parameters[0]);
 
@@ -84,7 +84,7 @@ class CommandNicklock : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
@@ -104,7 +104,7 @@ class CommandNickunlock : public Command
                TRANSLATE1(TR_NICK);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* target = ServerInstance->FindNick(parameters[0]);
 
@@ -131,7 +131,7 @@ class CommandNickunlock : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index 2752a6ea8227614d68113fe60700b9361d979727..67b79e07c4965f62c1fa34d48e56b1a37bb40cf2 100644 (file)
@@ -38,7 +38,7 @@ class CommandOjoin : public SplitCommand
                active = false;
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                // Make sure the channel name is allowable.
                if (!ServerInstance->IsChannel(parameters[0]))
index 68f50bf6d046e47ebbc77067321b54b225afdd75..49d816fa9243e6da587d039d59bd0a002cc00d09 100644 (file)
@@ -41,7 +41,7 @@ class ModuleOperLog : public Module
                tosnomask = ServerInstance->Config->ConfValue("operlog")->getBool("tosnomask", false);
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                /* If the command doesnt appear to be valid, we dont want to mess with it. */
                if (!validated)
index 6a18e9c9d198f241c395b078ddd74f3d111cda2f..475d561ba2028a1f2de837699b5680220111aff7 100644 (file)
@@ -53,7 +53,7 @@ class ModuleModesOnOper : public Module
 
                std::string buf;
                irc::spacesepstream ss(smodes);
-               std::vector<std::string> modes;
+               CommandBase::Params modes;
 
                modes.push_back(u->nick);
                // split into modes and mode params
index 6884cd4476aa8d82713eb269eb9f1244369a0cc7..49409a1c05f5e90f33fe1f429a48d1a51d1a6cc3 100644 (file)
@@ -34,14 +34,14 @@ class CommandOpermotd : public Command
                flags_needed = 'o'; syntax = "[<servername>]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if ((parameters.empty()) || (parameters[0] == ServerInstance->Config->ServerName))
                        ShowOperMOTD(user);
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if ((!parameters.empty()) && (parameters[0].find('.') != std::string::npos))
                        return ROUTE_OPT_UCAST(parameters[0]);
index b092a37f4899d7a79874ebf3e8562030318795b1..137ddb96c93cd359f02fb3d128b22d7e4f1090d5 100644 (file)
@@ -32,7 +32,7 @@ class CommandMkpasswd : public Command
                Penalty = 5;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (!parameters[0].compare(0, 5, "hmac-", 5))
                {
index 35b7fbf0379e565d069f18daf393ef320f5a1e96..d68a70503339e4d2dc37cd8607e6dc1a7a1c586c 100644 (file)
@@ -47,7 +47,7 @@ class RemoveBase : public Command
        {
        }
 
-       CmdResult HandleRMB(const std::vector<std::string>& parameters, User *user, bool fpart)
+       CmdResult HandleRMB(User* user, const CommandBase::Params& parameters,  bool fpart)
        {
                User* target;
                Channel* channel;
@@ -102,7 +102,7 @@ class RemoveBase : public Command
                {
                        /* We'll let everyone remove their level and below, eg:
                         * ops can remove ops, halfops, voices, and those with no mode (no moders actually are set to 1)
-                        * a ulined target will get a higher level than it's possible for a /remover to get..so they're safe.
+                         a ulined target will get a higher level than it's possible for a /remover to get..so they're safe.
                         * Nobody may remove people with >= protectedrank rank.
                         */
                        unsigned int ulevel = channel->GetPrefixValue(user);
@@ -114,7 +114,7 @@ class RemoveBase : public Command
                                {
                                        // Send an ENCAP REMOVE with parameters being in the old <user> <chan> order which is
                                        // compatible with both 2.0 and 3.0. This also turns FPART into REMOVE.
-                                       std::vector<std::string> p;
+                                       CommandBase::Params p;
                                        p.push_back(target->uuid);
                                        p.push_back(channel->name);
                                        if (parameters.size() > 2)
@@ -169,9 +169,9 @@ class CommandRemove : public RemoveBase
                TRANSLATE3(TR_NICK, TR_TEXT, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
-               return HandleRMB(parameters, user, false);
+               return HandleRMB(user, parameters, false);
        }
 };
 
@@ -187,9 +187,9 @@ class CommandFpart : public RemoveBase
                TRANSLATE3(TR_TEXT, TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
-               return HandleRMB(parameters, user, true);
+               return HandleRMB(user, parameters, true);
        }
 };
 
index e3a84397f5657b7842e8ee8be7084c919be75113..64228caf7fcc1b7d920f2c93af7d6b69c2cad96d 100644 (file)
@@ -140,7 +140,7 @@ class CommandRLine : public Command
                flags_needed = 'o'; this->syntax = "<regex> [<rline-duration>] :<reason>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
 
                if (parameters.size() >= 3)
@@ -198,7 +198,7 @@ class CommandRLine : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (IS_LOCAL(user))
                        return ROUTE_LOCALONLY; // spanningtree will send ADDLINE
index dbe69eca1c3eb1e9ccc3c0ea99301880d177e388..ce28630b4704c6017bf8b1ffd412edcf736a2949 100644 (file)
@@ -31,7 +31,7 @@ class CommandRMode : public Command
                syntax = "<channel> <mode> [pattern]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                ModeHandler* mh;
                Channel* chan = ServerInstance->FindChan(parameters[0]);
index 0af2e1e3ee9262914bc1be12971a6a368bbb3938..9aa8837e04181fe905843ae68f9ca4601a6509f6 100644 (file)
@@ -33,7 +33,7 @@ class CommandSajoin : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                const unsigned int channelindex = (parameters.size() > 1) ? 1 : 0;
                if (CommandParser::LoopCall(user, this, parameters, channelindex))
@@ -101,7 +101,7 @@ class CommandSajoin : public Command
                }
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index 93b1c391271344f76f7c5b6b64f345404beda104..6a9e11fe7167de23049869b8919ed4833d5a5796 100644 (file)
@@ -31,7 +31,7 @@ class CommandSakick : public Command
                TRANSLATE3(TR_TEXT, TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[1]);
                Channel* channel = ServerInstance->FindChan(parameters[0]);
@@ -73,7 +73,7 @@ class CommandSakick : public Command
                return CMD_FAILURE;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[1]);
        }
index 5c3d59edb82463c48b8a0fe6bc8080ad84a201a3..e4b102b92bce13512f8c1730d0df3207148fdd9a 100644 (file)
@@ -35,7 +35,7 @@ class CommandSamode : public Command
                active = false;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters[0].c_str()[0] != '#')
                {
index a6bb4db4c0f9d4875b65a82f4a638368354addbf..4744ca1dea333dfc223bd4c0424d7caac85d9089 100644 (file)
@@ -33,7 +33,7 @@ class CommandSanick : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* target = ServerInstance->FindNick(parameters[0]);
 
@@ -77,7 +77,7 @@ class CommandSanick : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index bdc78142b1c48050571ce59f6b2a42592b9dcf54..0cd82fa152cfa28b8118511721c4b9234d8b3c54 100644 (file)
@@ -32,7 +32,7 @@ class CommandSapart : public Command
                TRANSLATE3(TR_NICK, TR_TEXT, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (CommandParser::LoopCall(user, this, parameters, 1))
                        return CMD_FAILURE;
@@ -78,7 +78,7 @@ class CommandSapart : public Command
                return CMD_FAILURE;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index 6e8ab6069b9d5efcc2eff8222293f480b371e24b..9034016d29d1aa0efc499a53191e97677cbb28cf 100644 (file)
@@ -32,7 +32,7 @@ class CommandSaquit : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
                if ((dest) && (dest->registered == REG_ALL))
@@ -59,7 +59,7 @@ class CommandSaquit : public Command
                }
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index 2fc0725a98a4e1007fa7bef2d499d370b0c74844..d37e1c90f8a0f93f3a50ddf891d627352b95c06d 100644 (file)
@@ -143,9 +143,9 @@ enum SaslResult { SASL_OK, SASL_FAIL, SASL_ABORT };
 
 static Events::ModuleEventProvider* saslevprov;
 
-static void SendSASL(LocalUser* user, const std::string& agent, char mode, const parameterlist& parameters)
+static void SendSASL(LocalUser* user, const std::string& agent, char mode, const std::vector<std::string>& parameters)
 {
-       parameterlist params(parameters.size() + 3);
+       CommandBase::Params params(parameters.size() + 3);
        params.push_back(user->uuid);
        params.push_back(agent);
        params.push_back(ConvToStr(mode));
@@ -171,7 +171,7 @@ class SaslAuthenticator
 
        void SendHostIP()
        {
-               parameterlist params;
+               std::vector<std::string> params;
                params.push_back(user->GetRealHost());
                params.push_back(user->GetIPString());
                params.push_back(SSLIOHook::IsSSL(&user->eh) ? "S" : "P");
@@ -185,7 +185,7 @@ class SaslAuthenticator
        {
                SendHostIP();
 
-               parameterlist params;
+               std::vector<std::string> params;
                params.push_back(method);
 
                const std::string fp = SSLClientCert::GetFingerprint(&user->eh);
@@ -207,7 +207,7 @@ class SaslAuthenticator
        }
 
        /* checks for and deals with a state change. */
-       SaslState ProcessInboundMessage(const std::vector<std::string> &msg)
+       SaslState ProcessInboundMessage(const CommandBase::Params& msg)
        {
                switch (this->state)
                {
@@ -304,7 +304,7 @@ class CommandAuthenticate : public SplitCommand
                allow_empty_last_param = false;
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                {
                        if (!cap.get(user))
@@ -341,7 +341,7 @@ class CommandSASL : public Command
                this->flags_needed = FLAG_SERVERONLY; // should not be called by users
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* target = ServerInstance->FindUUID(parameters[1]);
                if (!target)
@@ -363,7 +363,7 @@ class CommandSASL : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
index 8fe96bcf93e4f9effed1a2e313cd220c618bff60..8c86292218cf85d542fc6ddeb56385a66bd76b75 100644 (file)
@@ -29,7 +29,7 @@ class CommandSATopic : public Command
                flags_needed = 'o'; syntax = "<target> <topic>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /*
                 * Handles a SATOPIC request. Notifies all +s users.
index f7431f1f2ccf2903a1cf52a4071a94ae9eaa3e21..b1aeeb9d44678905a9d961ba592302adf238497c 100644 (file)
@@ -52,7 +52,7 @@ class ModuleSecureList : public Module
         * OnPreCommand()
         *   Intercept the LIST command.
         */
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                /* If the command doesnt appear to be valid, we dont want to mess with it. */
                if (!validated)
index 678d9d9797497dfa1eda5395e2407abffc8bcf32..87eed402284bbd09a3dc31ece342ff9ce6a6fcab 100644 (file)
@@ -35,7 +35,7 @@ class CommandSethost : public Command
                flags_needed = 'o'; syntax = "<new-hostname>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters[0].length() > ServerInstance->Config->Limits.MaxHost)
                {
index beb7611ab968f23b158822596af41831c48dbcf0..11ce8f015ad5bfde9e258f08962db69b39d2965b 100644 (file)
@@ -33,7 +33,7 @@ class CommandSetident : public Command
                flags_needed = 'o'; syntax = "<new-ident>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters[0].size() > ServerInstance->Config->Limits.IdentMax)
                {
index 0f224e9e9e93921bed142ef549257d18d3dd91e6..37984030b6ea5ffbe0b04b974051c6b987dff786 100644 (file)
@@ -38,7 +38,7 @@ class CommandSetidle : public SplitCommand
                flags_needed = 'o'; syntax = "<duration>";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                int idle = InspIRCd::Duration(parameters[0]);
                if (idle < 1)
index b8efd98aa35b653360e9fe3f235eb218a1ab07d0..3bede1ad23ced12dd566db3521f68a99e35916ae 100644 (file)
@@ -32,7 +32,7 @@ class CommandSetname : public Command
                syntax = "<newname>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters[0].size() > ServerInstance->Config->Limits.MaxGecos)
                {
index 83030b7a14a7254c4e6d61761c899049f3d76180..565aaf78b97de3d60baa0f3f9abf52326df3c602 100644 (file)
@@ -51,7 +51,7 @@ class CommandShowFile : public Command
        {
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (method == SF_NUMERIC)
                {
index ab60dbddb7d2143ce873e831b78b3f15e213eabb..d01e1a83be06ad09d70616454361d95ea5c3d452 100644 (file)
@@ -55,7 +55,7 @@ class WhoisNoticeCmd : public Command
                        ") did a /whois on you");
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
                if (!dest)
@@ -114,7 +114,7 @@ class ModuleShowwhois : public Module, public Whois::EventListener
                }
                else
                {
-                       std::vector<std::string> params;
+                       CommandBase::Params params;
                        params.push_back(dest->uuid);
                        params.push_back(source->uuid);
                        ServerInstance->PI->SendEncapsulatedData(dest->server->GetName(), cmd.name, params);
index 3e378a74c3e0b2a04d8218737433fc1047e971cb..267e15ad7061fa893b639b395c0df0c39adf37ef 100644 (file)
@@ -56,7 +56,7 @@ class CommandShun : public Command
                flags_needed = 'o'; this->syntax = "<nick!user@hostmask> [<shun-duration>] :<reason>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /* syntax: SHUN nick!user@host time :reason goes here */
                /* 'time' is a human-readable timestring, like 2d3h2s. */
@@ -125,7 +125,7 @@ class CommandShun : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (IS_LOCAL(user))
                        return ROUTE_LOCALONLY; // spanningtree will send ADDLINE
@@ -198,7 +198,7 @@ class ModuleShun : public Module, public Stats::EventListener
                affectopers = tag->getBool("affectopers", false);
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string>& parameters, LocalUser* user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                if (validated)
                        return MOD_RES_PASSTHRU;
index e60694470a0e0f5b76bb214a28eb94d6084f2caf..165e083bb9b4bdef75bb1b2716d9fad6af81a3bf 100644 (file)
@@ -78,7 +78,7 @@ class CommandSVSSilence : public Command
                TRANSLATE3(TR_NICK, TR_TEXT, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /*
                 * XXX: thought occurs to me
@@ -96,13 +96,14 @@ class CommandSVSSilence : public Command
 
                if (IS_LOCAL(u))
                {
-                       ServerInstance->Parser.CallHandler("SILENCE", std::vector<std::string>(parameters.begin() + 1, parameters.end()), u);
+                       CommandBase::Params params(parameters.begin() + 1, parameters.end());
+                       ServerInstance->Parser.CallHandler("SILENCE", params, u);
                }
 
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
@@ -121,7 +122,7 @@ class CommandSilence : public Command
                syntax = "{[+|-]<mask> <p|c|i|n|t|a|x>}";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters.empty())
                {
index 1bf84760456b6a39e2ed77d5cb8bc454935dda2b..cd11b8d581b6371a1934d059a2c35defd84431db 100644 (file)
@@ -24,7 +24,7 @@
 #include "utils.h"
 #include "commands.h"
 
-CmdResult CommandAddLine::Handle(User* usr, std::vector<std::string>& params)
+CmdResult CommandAddLine::Handle(User* usr, Params& params)
 {
        XLineFactory* xlf = ServerInstance->XLines->GetFactory(params[0]);
        const std::string& setter = usr->nick;
index 28cbf8f7372b5bde7dd7765dc36ba8993a1b96b9..e65b3099b92aa5317c7a61fe985530a35614fb2f 100644 (file)
@@ -23,7 +23,7 @@
 #include "utils.h"
 #include "commands.h"
 
-CmdResult CommandAway::HandleRemote(::RemoteUser* u, std::vector<std::string>& params)
+CmdResult CommandAway::HandleRemote(::RemoteUser* u, Params& params)
 {
        if (!params.empty())
        {
index 7f9f9edb7b4575b753c24f7f20c3b5b7df3b9bc5..79019b668308f6c17d27ea79d12677e4324ee148 100644 (file)
@@ -221,7 +221,7 @@ void TreeSocket::ListDifference(const std::string &one, const std::string &two,
        }
 }
 
-bool TreeSocket::Capab(const parameterlist &params)
+bool TreeSocket::Capab(const CommandBase::Params& params)
 {
        if (params.size() < 1)
        {
index 05fafd1a71215749c742e8540826174fea558ad7..b98512578338de743f20a2da0caf55e72d6bd27f 100644 (file)
@@ -44,55 +44,55 @@ class CommandRConnect : public Command
 {
  public:
        CommandRConnect(Module* Creator);
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandRSQuit : public Command
 {
  public:
        CommandRSQuit(Module* Creator);
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandMap : public Command
 {
  public:
        CommandMap(Module* Creator);
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandSVSJoin : public ServerCommand
 {
  public:
        CommandSVSJoin(Module* Creator) : ServerCommand(Creator, "SVSJOIN", 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandSVSPart : public ServerCommand
 {
  public:
        CommandSVSPart(Module* Creator) : ServerCommand(Creator, "SVSPART", 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandSVSNick : public ServerCommand
 {
  public:
        CommandSVSNick(Module* Creator) : ServerCommand(Creator, "SVSNICK", 3) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandMetadata : public ServerCommand
 {
  public:
        CommandMetadata(Module* Creator) : ServerCommand(Creator, "METADATA", 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
 
        class Builder : public CmdBuilder
        {
@@ -107,7 +107,7 @@ class CommandUID : public ServerOnlyServerCommand<CommandUID>
 {
  public:
        CommandUID(Module* Creator) : ServerOnlyServerCommand<CommandUID>(Creator, "UID", 10) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& params);
+       CmdResult HandleServer(TreeServer* server, CommandBase::Params& params);
 
        class Builder : public CmdBuilder
        {
@@ -120,7 +120,7 @@ class CommandOpertype : public UserOnlyServerCommand<CommandOpertype>
 {
  public:
        CommandOpertype(Module* Creator) : UserOnlyServerCommand<CommandOpertype>(Creator, "OPERTYPE", 1) { }
-       CmdResult HandleRemote(RemoteUser* user, std::vector<std::string>& params);
+       CmdResult HandleRemote(RemoteUser* user, Params& params);
 
        class Builder : public CmdBuilder
        {
@@ -149,8 +149,8 @@ class CommandFJoin : public ServerCommand
        void ProcessModeUUIDPair(const std::string& item, TreeServer* sourceserver, Channel* chan, Modes::ChangeList* modechangelist, FwdFJoinBuilder& fwdfjoin);
  public:
        CommandFJoin(Module* Creator) : ServerCommand(Creator, "FJOIN", 3) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE { return ROUTE_LOCALONLY; }
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_LOCALONLY; }
 
        class Builder : public CmdBuilder
        {
@@ -186,14 +186,14 @@ class CommandFMode : public ServerCommand
 {
  public:
        CommandFMode(Module* Creator) : ServerCommand(Creator, "FMODE", 3) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
 };
 
 class CommandFTopic : public ServerCommand
 {
  public:
        CommandFTopic(Module* Creator) : ServerCommand(Creator, "FTOPIC", 4, 5) { }
-       CmdResult Handle(User* user, std::vector<std::string>& params) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& params) CXX11_OVERRIDE;
 
        class Builder : public CmdBuilder
        {
@@ -207,43 +207,43 @@ class CommandFHost : public UserOnlyServerCommand<CommandFHost>
 {
  public:
        CommandFHost(Module* Creator) : UserOnlyServerCommand<CommandFHost>(Creator, "FHOST", 1) { }
-       CmdResult HandleRemote(RemoteUser* user, std::vector<std::string>& params);
+       CmdResult HandleRemote(RemoteUser* user, Params& params);
 };
 
 class CommandFIdent : public UserOnlyServerCommand<CommandFIdent>
 {
  public:
        CommandFIdent(Module* Creator) : UserOnlyServerCommand<CommandFIdent>(Creator, "FIDENT", 1) { }
-       CmdResult HandleRemote(RemoteUser* user, std::vector<std::string>& params);
+       CmdResult HandleRemote(RemoteUser* user, Params& params);
 };
 
 class CommandFName : public UserOnlyServerCommand<CommandFName>
 {
  public:
        CommandFName(Module* Creator) : UserOnlyServerCommand<CommandFName>(Creator, "FNAME", 1) { }
-       CmdResult HandleRemote(RemoteUser* user, std::vector<std::string>& params);
+       CmdResult HandleRemote(RemoteUser* user, Params& params);
 };
 
 class CommandIJoin : public UserOnlyServerCommand<CommandIJoin>
 {
  public:
        CommandIJoin(Module* Creator) : UserOnlyServerCommand<CommandIJoin>(Creator, "IJOIN", 2) { }
-       CmdResult HandleRemote(RemoteUser* user, std::vector<std::string>& params);
+       CmdResult HandleRemote(RemoteUser* user, Params& params);
 };
 
 class CommandResync : public ServerOnlyServerCommand<CommandResync>
 {
  public:
        CommandResync(Module* Creator) : ServerOnlyServerCommand<CommandResync>(Creator, "RESYNC", 1) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE { return ROUTE_LOCALONLY; }
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_LOCALONLY; }
 };
 
 class SpanningTree::CommandAway : public UserOnlyServerCommand<SpanningTree::CommandAway>
 {
  public:
        CommandAway(Module* Creator) : UserOnlyServerCommand<SpanningTree::CommandAway>(Creator, "AWAY", 0, 2) { }
-       CmdResult HandleRemote(::RemoteUser* user, std::vector<std::string>& parameters);
+       CmdResult HandleRemote(::RemoteUser* user, Params& parameters);
 
        class Builder : public CmdBuilder
        {
@@ -258,7 +258,7 @@ class CommandAddLine : public ServerCommand
 {
  public:
        CommandAddLine(Module* Creator) : ServerCommand(Creator, "ADDLINE", 6, 6) { }
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE;
 
        class Builder : public CmdBuilder
        {
@@ -271,46 +271,46 @@ class CommandDelLine : public ServerCommand
 {
  public:
        CommandDelLine(Module* Creator) : ServerCommand(Creator, "DELLINE", 2, 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandEncap : public ServerCommand
 {
  public:
        CommandEncap(Module* Creator) : ServerCommand(Creator, "ENCAP", 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandIdle : public UserOnlyServerCommand<CommandIdle>
 {
  public:
        CommandIdle(Module* Creator) : UserOnlyServerCommand<CommandIdle>(Creator, "IDLE", 1) { }
-       CmdResult HandleRemote(RemoteUser* user, std::vector<std::string>& parameters);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE { return ROUTE_UNICAST(parameters[0]); }
+       CmdResult HandleRemote(RemoteUser* user, Params& parameters);
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_UNICAST(parameters[0]); }
 };
 
 class SpanningTree::CommandNick : public UserOnlyServerCommand<SpanningTree::CommandNick>
 {
  public:
        CommandNick(Module* Creator) : UserOnlyServerCommand<SpanningTree::CommandNick>(Creator, "NICK", 2) { }
-       CmdResult HandleRemote(::RemoteUser* user, std::vector<std::string>& parameters);
+       CmdResult HandleRemote(::RemoteUser* user, Params& parameters);
 };
 
 class SpanningTree::CommandPing : public ServerCommand
 {
  public:
        CommandPing(Module* Creator) : ServerCommand(Creator, "PING", 1) { }
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE { return ROUTE_UNICAST(parameters[0]); }
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_UNICAST(parameters[0]); }
 };
 
 class SpanningTree::CommandPong : public ServerOnlyServerCommand<SpanningTree::CommandPong>
 {
  public:
        CommandPong(Module* Creator) : ServerOnlyServerCommand<SpanningTree::CommandPong>(Creator, "PONG", 1) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE { return ROUTE_UNICAST(parameters[0]); }
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_UNICAST(parameters[0]); }
 };
 
 class CommandSave : public ServerCommand
@@ -321,16 +321,16 @@ class CommandSave : public ServerCommand
        static const time_t SavedTimestamp = 100;
 
        CommandSave(Module* Creator) : ServerCommand(Creator, "SAVE", 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE;
 };
 
 class SpanningTree::CommandServer : public ServerOnlyServerCommand<SpanningTree::CommandServer>
 {
-       static void HandleExtra(TreeServer* newserver, const std::vector<std::string>& params);
+       static void HandleExtra(TreeServer* newserver, Params& params);
 
  public:
        CommandServer(Module* Creator) : ServerOnlyServerCommand<SpanningTree::CommandServer>(Creator, "SERVER", 3) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
 
        class Builder : public CmdBuilder
        {
@@ -347,28 +347,28 @@ class CommandSQuit : public ServerOnlyServerCommand<CommandSQuit>
 {
  public:
        CommandSQuit(Module* Creator) : ServerOnlyServerCommand<CommandSQuit>(Creator, "SQUIT", 2) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
 };
 
 class CommandSNONotice : public ServerCommand
 {
  public:
        CommandSNONotice(Module* Creator) : ServerCommand(Creator, "SNONOTICE", 2) { }
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE;
 };
 
 class CommandEndBurst : public ServerOnlyServerCommand<CommandEndBurst>
 {
  public:
        CommandEndBurst(Module* Creator) : ServerOnlyServerCommand<CommandEndBurst>(Creator, "ENDBURST") { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
 };
 
 class CommandSInfo : public ServerOnlyServerCommand<CommandSInfo>
 {
  public:
        CommandSInfo(Module* Creator) : ServerOnlyServerCommand<CommandSInfo>(Creator, "SINFO", 2) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
 
        class Builder : public CmdBuilder
        {
@@ -381,8 +381,8 @@ class CommandNum : public ServerOnlyServerCommand<CommandNum>
 {
  public:
        CommandNum(Module* Creator) : ServerOnlyServerCommand<CommandNum>(Creator, "NUM", 3) { }
-       CmdResult HandleServer(TreeServer* server, std::vector<std::string>& parameters);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult HandleServer(TreeServer* server, Params& parameters);
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 
        class Builder : public CmdBuilder
        {
index 98b4be88d1a7da0091545a01ca23ec002f8f1e0a..dc00d6ff3cf18d076be10e32da79cf94498f1012 100644 (file)
@@ -320,7 +320,7 @@ void TreeSocket::WriteLine(const std::string& original_line)
 
 namespace
 {
-       bool InsertCurrentChannelTS(std::vector<std::string>& params, unsigned int chanindex = 0, unsigned int pos = 1)
+       bool InsertCurrentChannelTS(CommandBase::Params& params, unsigned int chanindex = 0, unsigned int pos = 1)
        {
                Channel* chan = ServerInstance->FindChan(params[chanindex]);
                if (!chan)
@@ -332,7 +332,7 @@ namespace
        }
 }
 
-bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, std::vector<std::string>& params)
+bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, CommandBase::Params& params)
 {
        if ((cmd == "METADATA") && (params.size() >= 3) && (params[0][0] == '#'))
        {
@@ -381,7 +381,7 @@ bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, std:
                if ((params.size() != 1) && (params.size() != 3))
                        return false;
 
-               parameterlist p;
+               CommandBase::Params p;
                p.push_back(cmd.substr(0, 1));
                p.push_back(params[0]);
 
index f790dc885d8a7e50257b4b4d09e72115a790403e..c64bec6541d874aab30a52acdfcf8a018709703b 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "commands.h"
 
-CmdResult CommandDelLine::Handle(User* user, std::vector<std::string>& params)
+CmdResult CommandDelLine::Handle(User* user, Params& params)
 {
        const std::string& setter = user->nick;
 
index 8059d2a39ce5b4ee5c605fd888b6395e98d090b5..4bc321065dde862a520a67d06ccb9c5943c50498 100644 (file)
 #include "main.h"
 
 /** ENCAP */
-CmdResult CommandEncap::Handle(User* user, std::vector<std::string>& params)
+CmdResult CommandEncap::Handle(User* user, Params& params)
 {
        if (ServerInstance->Config->GetSID() == params[0] || InspIRCd::Match(ServerInstance->Config->ServerName, params[0]))
        {
-               parameterlist plist(params.begin() + 2, params.end());
+               CommandBase::Params plist(params.begin() + 2, params.end());
 
                // XXX: Workaround for SVS* commands provided by spanningtree not being registered in the core
                if ((params[1] == "SVSNICK") || (params[1] == "SVSJOIN") || (params[1] == "SVSPART"))
@@ -48,7 +48,7 @@ CmdResult CommandEncap::Handle(User* user, std::vector<std::string>& params)
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandEncap::GetRouting(User* user, const std::vector<std::string>& params)
+RouteDescriptor CommandEncap::GetRouting(User* user, const Params& params)
 {
        if (params[0].find_first_of("*?") != std::string::npos)
                return ROUTE_BROADCAST;
index c292373b3de455be754ab025e8f6c79dfe94a66a..cfbaeb9170f8b9123a38da5cc4646f2f5b778e6f 100644 (file)
@@ -42,7 +42,7 @@ class FwdFJoinBuilder : public CommandFJoin::Builder
 };
 
 /** FJOIN, almost identical to TS6 SJOIN, except for nicklist handling. */
-CmdResult CommandFJoin::Handle(User* srcuser, std::vector<std::string>& params)
+CmdResult CommandFJoin::Handle(User* srcuser, Params& params)
 {
        /* 1.1+ FJOIN works as follows:
         *
index e6f49c5b964f65b786a8776cdf0579be9eaf1f7a..a15b5ddc219b0b4c96d40148eba494b81bb8c0a1 100644 (file)
@@ -22,7 +22,7 @@
 #include "commands.h"
 
 /** FMODE command - channel mode change with timestamp checks */
-CmdResult CommandFMode::Handle(User* who, std::vector<std::string>& params)
+CmdResult CommandFMode::Handle(User* who, Params& params)
 {
        time_t TS = ServerCommand::ExtractTS(params[1]);
 
index de72d162a4bbeade99d9f98d02009bd027459526..01826e8f66b1ce573ae3389a142e58e6acdb2d9b 100644 (file)
@@ -22,7 +22,7 @@
 #include "commands.h"
 
 /** FTOPIC command */
-CmdResult CommandFTopic::Handle(User* user, std::vector<std::string>& params)
+CmdResult CommandFTopic::Handle(User* user, Params& params)
 {
        Channel* c = ServerInstance->FindChan(params[0]);
        if (!c)
index ad58e52f08f9eb871a9b062923d4c4e844a7d603..11e665531c54ff43aa6fbeabddf89d467f50a620 100644 (file)
@@ -21,7 +21,7 @@
 #include "utils.h"
 #include "commands.h"
 
-CmdResult CommandIdle::HandleRemote(RemoteUser* issuer, std::vector<std::string>& params)
+CmdResult CommandIdle::HandleRemote(RemoteUser* issuer, Params& params)
 {
        /**
         * There are two forms of IDLE: request and reply. Requests have one parameter,
index c2dbcf7f5ae2f3cdcb444cec014507d3be36f737..d33ef3d4ed2550ef01e8c76e20bc05b0412c18e4 100644 (file)
@@ -23,7 +23,7 @@
 #include "treeserver.h"
 #include "treesocket.h"
 
-CmdResult CommandIJoin::HandleRemote(RemoteUser* user, std::vector<std::string>& params)
+CmdResult CommandIJoin::HandleRemote(RemoteUser* user, Params& params)
 {
        Channel* chan = ServerInstance->FindChan(params[0]);
        if (!chan)
@@ -55,7 +55,7 @@ CmdResult CommandIJoin::HandleRemote(RemoteUser* user, std::vector<std::string>&
        return CMD_SUCCESS;
 }
 
-CmdResult CommandResync::HandleServer(TreeServer* server, std::vector<std::string>& params)
+CmdResult CommandResync::HandleServer(TreeServer* server, CommandBase::Params& params)
 {
        ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Resyncing " + params[0]);
        Channel* chan = ServerInstance->FindChan(params[0]);
index 21251983cd27b7b9a1f0ae50c65525f8759542c5..0d153737fcdcfa38ce8c5a8d3b8dc7d210d277e0 100644 (file)
@@ -136,7 +136,7 @@ void ModuleSpanningTree::ShowLinks(TreeServer* Current, User* user, int hops)
                        InspIRCd::Format("%d %s", (((Utils->FlatLinks) && (!user->IsOper())) ? 0 : hops), Current->GetDesc().c_str()));
 }
 
-void ModuleSpanningTree::HandleLinks(const std::vector<std::string>& parameters, User* user)
+void ModuleSpanningTree::HandleLinks(const CommandBase::Params& parameters, User* user)
 {
        ShowLinks(Utils->TreeRoot,user,0);
        user->WriteNumeric(RPL_ENDOFLINKS, '*', "End of /LINKS list.");
@@ -305,7 +305,7 @@ void ModuleSpanningTree::DoConnectTimeout(time_t curtime)
        }
 }
 
-ModResult ModuleSpanningTree::HandleVersion(const std::vector<std::string>& parameters, User* user)
+ModResult ModuleSpanningTree::HandleVersion(const CommandBase::Params& parameters, User* user)
 {
        // We've already confirmed that !parameters.empty(), so this is safe
        TreeServer* found = Utils->FindServerMask(parameters[0]);
@@ -332,7 +332,7 @@ ModResult ModuleSpanningTree::HandleVersion(const std::vector<std::string>& para
        return MOD_RES_DENY;
 }
 
-ModResult ModuleSpanningTree::HandleConnect(const std::vector<std::string>& parameters, User* user)
+ModResult ModuleSpanningTree::HandleConnect(const CommandBase::Params& parameters, User* user)
 {
        for (std::vector<reference<Link> >::iterator i = Utils->LinkBlocks.begin(); i < Utils->LinkBlocks.end(); i++)
        {
index 5add15e8a98f8385f165d3d403d9263fa51d1893..20c1ac2b93e19a4286bf01bcc9ece432a54cf161 100644 (file)
@@ -98,15 +98,15 @@ class ModuleSpanningTree : public Module, public Stats::EventListener
 
        /** Handle LINKS command
         */
-       void HandleLinks(const std::vector<std::string>& parameters, User* user);
+       void HandleLinks(const CommandBase::Params& parameters, User* user);
 
        /** Handle SQUIT
         */
-       ModResult HandleSquit(const std::vector<std::string>& parameters, User* user);
+       ModResult HandleSquit(const CommandBase::Params& parameters, User* user);
 
        /** Handle remote WHOIS
         */
-       ModResult HandleRemoteWhois(const std::vector<std::string>& parameters, User* user);
+       ModResult HandleRemoteWhois(const CommandBase::Params& parameters, User* user);
 
        /** Connect a server locally
         */
@@ -126,11 +126,11 @@ class ModuleSpanningTree : public Module, public Stats::EventListener
 
        /** Handle remote VERSON
         */
-       ModResult HandleVersion(const std::vector<std::string>& parameters, User* user);
+       ModResult HandleVersion(const CommandBase::Params& parameters, User* user);
 
        /** Handle CONNECT
         */
-       ModResult HandleConnect(const std::vector<std::string>& parameters, User* user);
+       ModResult HandleConnect(const CommandBase::Params& parameters, User* user);
 
        /** Display a time as a human readable string
         */
@@ -142,8 +142,8 @@ class ModuleSpanningTree : public Module, public Stats::EventListener
         ** *** MODULE EVENTS ***
         **/
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string>& parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE;
-       void OnPostCommand(Command*, const std::vector<std::string>& parameters, LocalUser* user, CmdResult result, const std::string& original_line) CXX11_OVERRIDE;
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE;
+       void OnPostCommand(Command*, const CommandBase::Params& parameters, LocalUser* user, CmdResult result, const std::string& original_line) CXX11_OVERRIDE;
        void OnUserConnect(LocalUser* source) CXX11_OVERRIDE;
        void OnUserInvite(User* source, User* dest, Channel* channel, time_t timeout, unsigned int notifyrank, CUList& notifyexcepts) CXX11_OVERRIDE;
        ModResult OnPreTopicChange(User* user, Channel* chan, const std::string& topic) CXX11_OVERRIDE;
index 47c2f8bc541ec19c6c3a9dde3da4a658a36d6950..52267c522923a7fb80ae49fac543f75385e2954e 100644 (file)
@@ -21,7 +21,7 @@
 #include "inspircd.h"
 #include "commands.h"
 
-CmdResult CommandMetadata::Handle(User* srcuser, std::vector<std::string>& params)
+CmdResult CommandMetadata::Handle(User* srcuser, Params& params)
 {
        if (params[0] == "*")
        {
index 00f31d668d13ef10042b25dd6c7c6ad6ed2c5759..8fc1b178f4134a738ff8f96ec7bd43ff9c71b3d2 100644 (file)
 #include "commands.h"
 #include "treeserver.h"
 
-CmdResult CommandSNONotice::Handle(User* user, std::vector<std::string>& params)
+CmdResult CommandSNONotice::Handle(User* user, Params& params)
 {
        ServerInstance->SNO->WriteToSnoMask(params[0][0], "From " + user->nick + ": " + params[1]);
        return CMD_SUCCESS;
 }
 
-CmdResult CommandEndBurst::HandleServer(TreeServer* server, std::vector<std::string>& params)
+CmdResult CommandEndBurst::HandleServer(TreeServer* server, Params& params)
 {
        server->FinishBurst();
        return CMD_SUCCESS;
index 9e290e07f15448b1cba81233ea62985634032f01..4f53941ceb9ecb2f28c9bc6aab8ff1773b5f610f 100644 (file)
@@ -30,7 +30,7 @@
 #include "commands.h"
 #include "treeserver.h"
 
-CmdResult CommandNick::HandleRemote(::RemoteUser* user, std::vector<std::string>& params)
+CmdResult CommandNick::HandleRemote(::RemoteUser* user, Params& params)
 {
        if ((isdigit(params[0][0])) && (params[0] != user->uuid))
                throw ProtocolException("Attempted to change nick to an invalid or non-matching UUID");
index 2c8697c9a5b6b64704db6fd8a3cd1a435fd954c8..f83f91286e0648d70a04ef8083d57d5b83589492 100644 (file)
@@ -23,7 +23,7 @@
 #include "commands.h"
 #include "remoteuser.h"
 
-CmdResult CommandNum::HandleServer(TreeServer* server, std::vector<std::string>& params)
+CmdResult CommandNum::HandleServer(TreeServer* server, CommandBase::Params& params)
 {
        User* const target = ServerInstance->FindUUID(params[1]);
        if (!target)
@@ -42,7 +42,7 @@ CmdResult CommandNum::HandleServer(TreeServer* server, std::vector<std::string>&
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandNum::GetRouting(User* user, const std::vector<std::string>& params)
+RouteDescriptor CommandNum::GetRouting(User* user, const Params& params)
 {
        return ROUTE_UNICAST(params[1]);
 }
@@ -52,10 +52,10 @@ CommandNum::Builder::Builder(SpanningTree::RemoteUser* target, const Numeric::Nu
 {
        TreeServer* const server = (numeric.GetServer() ? (static_cast<TreeServer*>(numeric.GetServer())) : Utils->TreeRoot);
        push(server->GetID()).push(target->uuid).push(InspIRCd::Format("%03u", numeric.GetNumeric()));
-       const std::vector<std::string>& params = numeric.GetParams();
+       const CommandBase::Params& params = numeric.GetParams();
        if (!params.empty())
        {
-               for (std::vector<std::string>::const_iterator i = params.begin(); i != params.end()-1; ++i)
+               for (CommandBase::Params::const_iterator i = params.begin(); i != params.end()-1; ++i)
                        push(*i);
                push_last(params.back());
        }
index 4b1dce23c9794d76241f3a63de170c72749a37dd..473cdb8571e5ad1f608784edf0c261a7b26ed730 100644 (file)
@@ -26,7 +26,7 @@
 /** Because the core won't let users or even SERVERS set +o,
  * we use the OPERTYPE command to do this.
  */
-CmdResult CommandOpertype::HandleRemote(RemoteUser* u, std::vector<std::string>& params)
+CmdResult CommandOpertype::HandleRemote(RemoteUser* u, CommandBase::Params& params)
 {
        const std::string& opertype = params[0];
        if (!u->IsOper())
index d1a00ed84b9245c66ee5937f446efcd903a67e35..693b07bade23e478818fd7f71c2b03beb57f993e 100644 (file)
@@ -168,7 +168,7 @@ static std::vector<std::string> GetMap(User* user, TreeServer* current, unsigned
        return map;
 }
 
-CmdResult CommandMap::Handle(const std::vector<std::string>& parameters, User* user)
+CmdResult CommandMap::Handle(User* user, const Params& parameters)
 {
        if (parameters.size() > 0)
        {
@@ -215,7 +215,7 @@ CmdResult CommandMap::Handle(const std::vector<std::string>& parameters, User* u
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandMap::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandMap::GetRouting(User* user, const Params& parameters)
 {
        if (!parameters.empty())
                return ROUTE_UNICAST(parameters[0]);
index 9cec527d376d1a12130a768de28de05c951a66ae..eb224660d58a6d00335d383ba095fd672c74bf70 100644 (file)
@@ -25,7 +25,7 @@
 #include "treeserver.h"
 #include "treesocket.h"
 
-ModResult ModuleSpanningTree::HandleSquit(const std::vector<std::string>& parameters, User* user)
+ModResult ModuleSpanningTree::HandleSquit(const CommandBase::Params& parameters, User* user)
 {
        TreeServer* s = Utils->FindServerMask(parameters[0]);
        if (s)
index 7f718985436c5ff5af1b3e06da01f811cf5948c2..6a64a9403efc6e568b3bf4edc03098b4beb661f9 100644 (file)
@@ -21,7 +21,7 @@
 #include "main.h"
 #include "commandbuilder.h"
 
-ModResult ModuleSpanningTree::HandleRemoteWhois(const std::vector<std::string>& parameters, User* user)
+ModResult ModuleSpanningTree::HandleRemoteWhois(const CommandBase::Params& parameters, User* user)
 {
        User* remote = ServerInstance->FindNickOnly(parameters[1]);
        if (remote && !IS_LOCAL(remote))
index 878f8af3a3bdc2b8b44fc40cd58256a8665e472a..844feb35b45e6b024f5b5772faf0ceae69d08e1b 100644 (file)
@@ -24,7 +24,7 @@
 #include "commands.h"
 #include "utils.h"
 
-CmdResult CommandPing::Handle(User* user, std::vector<std::string>& params)
+CmdResult CommandPing::Handle(User* user, Params& params)
 {
        if (params[0] == ServerInstance->Config->GetSID())
        {
index 5d97f2af2e8508bb8609c2d1ffdb16288ff256b1..718d5f0bb8890af5582b907ce23e40ff9024be97 100644 (file)
@@ -24,7 +24,7 @@
 #include "commands.h"
 #include "utils.h"
 
-CmdResult CommandPong::HandleServer(TreeServer* server, std::vector<std::string>& params)
+CmdResult CommandPong::HandleServer(TreeServer* server, CommandBase::Params& params)
 {
        if (server->IsBursting())
        {
index 64ca729779249cd2a44e8bb8fc80db9119719d71..b50b5e85245972df4546770e0388169dcf028b17 100644 (file)
 #include "treeserver.h"
 #include "commandbuilder.h"
 
-void ModuleSpanningTree::OnPostCommand(Command* command, const std::vector<std::string>& parameters, LocalUser* user, CmdResult result, const std::string& original_line)
+void ModuleSpanningTree::OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result, const std::string& original_line)
 {
        if (result == CMD_SUCCESS)
                Utils->RouteCommand(NULL, command, parameters, user);
 }
 
-void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscmd, const parameterlist& parameters, User* user)
+void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscmd, const CommandBase::Params& parameters, User* user)
 {
        const std::string& command = thiscmd->name;
        RouteDescriptor routing = thiscmd->GetRouting(user, parameters);
index 4733d00714491ada271834fc9a098b659928d734..0d526849347caad14c0b446f2f29291eac4135df 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "main.h"
 
-ModResult ModuleSpanningTree::OnPreCommand(std::string &command, std::vector<std::string>& parameters, LocalUser *user, bool validated, const std::string &original_line)
+ModResult ModuleSpanningTree::OnPreCommand(std::string &command, CommandBase::Params& parameters, LocalUser *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)
index b3326581b6abb073334ef794d97a6a3177a35487..e54a528d99254e42464e5a848e8d2a8b2951911f 100644 (file)
@@ -44,7 +44,7 @@ void SpanningTreeProtocolInterface::GetServerList(ServerList& sl)
        }
 }
 
-bool SpanningTreeProtocolInterface::SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const parameterlist& params, User* source)
+bool SpanningTreeProtocolInterface::SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const CommandBase::Params& params, User* source)
 {
        if (!source)
                source = ServerInstance->FakeClient;
@@ -71,7 +71,7 @@ bool SpanningTreeProtocolInterface::SendEncapsulatedData(const std::string& targ
        return true;
 }
 
-void SpanningTreeProtocolInterface::BroadcastEncap(const std::string& cmd, const parameterlist& params, User* source, User* omit)
+void SpanningTreeProtocolInterface::BroadcastEncap(const std::string& cmd, const CommandBase::Params& params, User* source, User* omit)
 {
        if (!source)
                source = ServerInstance->FakeClient;
index b0609005c3ddc915f3b8b1b1fe748c3e6206e69b..969ed68bf3e6a28fdfdda2f4dc4204968fc3cab5 100644 (file)
@@ -31,8 +31,8 @@ class SpanningTreeProtocolInterface : public ProtocolInterface
                void SendMetaData(const std::string& key, const std::string& data) CXX11_OVERRIDE;
        };
 
-       bool SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const parameterlist& params, User* source) CXX11_OVERRIDE;
-       void BroadcastEncap(const std::string& cmd, const parameterlist& params, User* source, User* omit) CXX11_OVERRIDE;
+       bool SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const CommandBase::Params& params, User* source) CXX11_OVERRIDE;
+       void BroadcastEncap(const std::string& cmd, const CommandBase::Params& params, User* source, User* omit) CXX11_OVERRIDE;
        void SendMetaData(User* user, const std::string& key, const std::string& data) CXX11_OVERRIDE;
        void SendMetaData(Channel* chan, const std::string& key, const std::string& data) CXX11_OVERRIDE;
        void SendMetaData(const std::string& key, const std::string& data) CXX11_OVERRIDE;
index 8b8757a07f9f3786b2ee13cf70bb8c6b77637dba..7779355e29d56a72dac76b373b657aa09910ec2b 100644 (file)
@@ -31,7 +31,7 @@ CommandRConnect::CommandRConnect (Module* Creator)
        syntax = "<remote-server-mask> <target-server-mask>";
 }
 
-CmdResult CommandRConnect::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandRConnect::Handle(User* user, const Params& parameters)
 {
        /* First see if the server which is being asked to connect to another server in fact exists */
        if (!Utils->FindServerMask(parameters[0]))
@@ -45,7 +45,7 @@ CmdResult CommandRConnect::Handle (const std::vector<std::string>& parameters, U
        {
                /* Yes, initiate the given connect */
                ServerInstance->SNO->WriteToSnoMask('l',"Remote CONNECT from %s matching \002%s\002, connecting server \002%s\002",user->nick.c_str(),parameters[0].c_str(),parameters[1].c_str());
-               std::vector<std::string> para;
+               CommandBase::Params para;
                para.push_back(parameters[1]);
                ((ModuleSpanningTree*)(Module*)creator)->HandleConnect(para, user);
        }
@@ -67,7 +67,7 @@ CmdResult CommandRConnect::Handle (const std::vector<std::string>& parameters, U
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandRConnect::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandRConnect::GetRouting(User* user, const Params& parameters)
 {
        return ROUTE_UNICAST(parameters[0]);
 }
index 487db28261186d17cf958f795765202d3bd97fc8..7ede80b4c37c48015eb1dfade91ab646072f8056 100644 (file)
@@ -32,7 +32,7 @@ CommandRSQuit::CommandRSQuit(Module* Creator)
        syntax = "<target-server-mask> [reason]";
 }
 
-CmdResult CommandRSQuit::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandRSQuit::Handle(User* user, const Params& parameters)
 {
        TreeServer *server_target; // Server to squit
 
@@ -60,7 +60,7 @@ CmdResult CommandRSQuit::Handle (const std::vector<std::string>& parameters, Use
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandRSQuit::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandRSQuit::GetRouting(User* user, const Params& parameters)
 {
        return ROUTE_UNICAST(parameters[0]);
 }
index d77c2a3822eb6775bdc24684d028f95a3f217427..be3a0a687cf23c091b58c78aecc55d8ab57d306f 100644 (file)
@@ -26,7 +26,7 @@
 /**
  * SAVE command - force nick change to UID on timestamp match
  */
-CmdResult CommandSave::Handle(User* user, std::vector<std::string>& params)
+CmdResult CommandSave::Handle(User* user, Params& params)
 {
        User* u = ServerInstance->FindUUID(params[0]);
        if (!u)
index ecdad87f81797babf9e59337412a86786d97c71c..07004a1e8069468cc8031470d56080eb2ddc72a9 100644 (file)
@@ -32,7 +32,7 @@
  * Some server somewhere in the network introducing another server.
  *     -- w
  */
-CmdResult CommandServer::HandleServer(TreeServer* ParentOfThis, std::vector<std::string>& params)
+CmdResult CommandServer::HandleServer(TreeServer* ParentOfThis, Params& params)
 {
        const std::string& servername = params[0];
        const std::string& sid = params[1];
@@ -70,9 +70,9 @@ CmdResult CommandServer::HandleServer(TreeServer* ParentOfThis, std::vector<std:
        return CMD_SUCCESS;
 }
 
-void CommandServer::HandleExtra(TreeServer* newserver, const std::vector<std::string>& params)
+void CommandServer::HandleExtra(TreeServer* newserver, Params& params)
 {
-       for (std::vector<std::string>::const_iterator i = params.begin() + 2; i != params.end() - 1; ++i)
+       for (CommandBase::Params::const_iterator i = params.begin() + 2; i != params.end() - 1; ++i)
        {
                const std::string& prop = *i;
                std::string::size_type p = prop.find('=');
@@ -90,7 +90,7 @@ void CommandServer::HandleExtra(TreeServer* newserver, const std::vector<std::st
        }
 }
 
-Link* TreeSocket::AuthRemote(const parameterlist& params)
+Link* TreeSocket::AuthRemote(const CommandBase::Params& params)
 {
        if (params.size() < 5)
        {
@@ -148,7 +148,7 @@ Link* TreeSocket::AuthRemote(const parameterlist& params)
  * This is used after the other side of a connection has accepted our credentials.
  * They are then introducing themselves to us, BEFORE either of us burst. -- w
  */
-bool TreeSocket::Outbound_Reply_Server(parameterlist &params)
+bool TreeSocket::Outbound_Reply_Server(CommandBase::Params& params)
 {
        const Link* x = AuthRemote(params);
        if (x)
@@ -200,7 +200,7 @@ bool TreeSocket::CheckDuplicate(const std::string& sname, const std::string& sid
  * Someone else is attempting to connect to us if this is called. Validate their credentials etc.
  *             -- w
  */
-bool TreeSocket::Inbound_Server(parameterlist &params)
+bool TreeSocket::Inbound_Server(CommandBase::Params& params)
 {
        const Link* x = AuthRemote(params);
        if (x)
index ef55cd00ef04aedaa38c0725197ab0b32e53919b..5b81528465d3381d55ed1afea1df016cb5ab80a1 100644 (file)
@@ -32,7 +32,7 @@ void ServerCommand::RegisterService()
        st->CmdManager.AddCommand(this);
 }
 
-RouteDescriptor ServerCommand::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor ServerCommand::GetRouting(User* user, const Params& parameters)
 {
        // Broadcast server-to-server commands unless overridden
        return ROUTE_BROADCAST;
index 84488bd68ea83ee34ae67788352c1e556167f56d..6ea5a92511d077a499277664b5a53159b92e927a 100644 (file)
@@ -42,8 +42,8 @@ class ServerCommand : public CommandBase
         */
        void RegisterService() CXX11_OVERRIDE;
 
-       virtual CmdResult Handle(User* user, std::vector<std::string>& parameters) = 0;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       virtual CmdResult Handle(User* user, Params& parameters) = 0;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 
        /**
         * Extract the TS from a string.
@@ -65,7 +65,7 @@ class UserOnlyServerCommand : public ServerCommand
        UserOnlyServerCommand(Module* Creator, const std::string& Name, unsigned int MinPara = 0, unsigned int MaxPara = 0)
                : ServerCommand(Creator, Name, MinPara, MaxPara) { }
 
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE
+       CmdResult Handle(User* user, Params& parameters) CXX11_OVERRIDE
        {
                RemoteUser* remoteuser = IS_REMOTE(user);
                if (!remoteuser)
@@ -84,7 +84,7 @@ class ServerOnlyServerCommand : public ServerCommand
        ServerOnlyServerCommand(Module* Creator, const std::string& Name, unsigned int MinPara = 0, unsigned int MaxPara = 0)
                : ServerCommand(Creator, Name, MinPara, MaxPara) { }
 
-       CmdResult Handle(User* user, std::vector<std::string>& parameters) CXX11_OVERRIDE
+       CmdResult Handle(User* user, CommandBase::Params& parameters) CXX11_OVERRIDE
        {
                if (!IS_SERVER(user))
                        throw ProtocolException("Invalid source");
index 7f175bafb47d856750a3a49560202ca3583143ae..a5dae783c7fe8901f58df1eedae8c0e207696b88 100644 (file)
@@ -21,7 +21,7 @@
 #include "treeserver.h"
 #include "commands.h"
 
-CmdResult CommandSInfo::HandleServer(TreeServer* server, std::vector<std::string>& params)
+CmdResult CommandSInfo::HandleServer(TreeServer* server, CommandBase::Params& params)
 {
        const std::string& key = params.front();
        const std::string& value = params.back();
index c85e4f412a4cbedb949f9531e660009f37e37d56..92187ddf76297a85681cfd23146be4a26b0a0d10 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "commands.h"
 
-CmdResult CommandSVSJoin::Handle(User* user, std::vector<std::string>& parameters)
+CmdResult CommandSVSJoin::Handle(User* user, Params& parameters)
 {
        // Check for valid channel name
        if (!ServerInstance->IsChannel(parameters[1]))
@@ -52,7 +52,7 @@ CmdResult CommandSVSJoin::Handle(User* user, std::vector<std::string>& parameter
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandSVSJoin::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandSVSJoin::GetRouting(User* user, const Params& parameters)
 {
        return ROUTE_OPT_UCAST(parameters[0]);
 }
index 84cf8558cef2a3ef31fb51239106cec3515f0633..2514dfd6f511fc9bc4ed17c035f80f040ad7711f 100644 (file)
@@ -23,7 +23,7 @@
 #include "main.h"
 #include "commands.h"
 
-CmdResult CommandSVSNick::Handle(User* user, std::vector<std::string>& parameters)
+CmdResult CommandSVSNick::Handle(User* user, Params& parameters)
 {
        User* u = ServerInstance->FindNick(parameters[0]);
 
@@ -70,7 +70,7 @@ CmdResult CommandSVSNick::Handle(User* user, std::vector<std::string>& parameter
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandSVSNick::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandSVSNick::GetRouting(User* user, const Params& parameters)
 {
        return ROUTE_OPT_UCAST(parameters[0]);
 }
index c4163ef3dd83e1b15fd9eae52a26ec4c551c8ca0..505a033e301efa137bf86be083128b643d41c7d0 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "commands.h"
 
-CmdResult CommandSVSPart::Handle(User* user, std::vector<std::string>& parameters)
+CmdResult CommandSVSPart::Handle(User* user, Params& parameters)
 {
        User* u = ServerInstance->FindUUID(parameters[0]);
        if (!u)
@@ -40,7 +40,7 @@ CmdResult CommandSVSPart::Handle(User* user, std::vector<std::string>& parameter
        return CMD_SUCCESS;
 }
 
-RouteDescriptor CommandSVSPart::GetRouting(User* user, const std::vector<std::string>& parameters)
+RouteDescriptor CommandSVSPart::GetRouting(User* user, const Params& parameters)
 {
        return ROUTE_OPT_UCAST(parameters[0]);
 }
index 3571f28169c107a5f1cdf32eb82a1375add35824..d99dc910419a13405ab83e2cdbb9ad97f5a4f5d4 100644 (file)
@@ -149,7 +149,7 @@ class TreeSocket : public BufferedSocket
         * @param params Parameters they sent in the SERVER command
         * @return Link block for the remote server, or NULL if an error occurred
         */
-       Link* AuthRemote(const parameterlist& params);
+       Link* AuthRemote(const CommandBase::Params& params);
 
        /** Write a line on this socket with a new line character appended, skipping all translation for old protocols
         * @param line Line to write without a new line character at the end
@@ -246,7 +246,7 @@ class TreeSocket : public BufferedSocket
        void ListDifference(const std::string &one, const std::string &two, char sep,
                std::string& mleft, std::string& mright);
 
-       bool Capab(const parameterlist &params);
+       bool Capab(const CommandBase::Params& params);
 
        /** Send one or more FJOINs for a channel of users.
         * If the length of a single line is more than 480-NICKMAX
@@ -277,25 +277,25 @@ class TreeSocket : public BufferedSocket
        void WriteLine(const std::string& line);
 
        /** Handle ERROR command */
-       void Error(parameterlist &params);
+       void Error(CommandBase::Params& params);
 
        /** (local) -> SERVER
         */
-       bool Outbound_Reply_Server(parameterlist &params);
+       bool Outbound_Reply_Server(CommandBase::Params& params);
 
        /** (local) <- SERVER
         */
-       bool Inbound_Server(parameterlist &params);
+       bool Inbound_Server(CommandBase::Params& params);
 
        /** Handle IRC line split
         */
-       void Split(const std::string &line, std::string& prefix, std::string& command, parameterlist &params);
+       void Split(const std::string &line, std::string& prefix, std::string& command, CommandBase::Params& params);
 
        /** Process complete line from buffer
         */
        void ProcessLine(std::string &line);
 
-       void ProcessConnectedLine(std::string& prefix, std::string& command, parameterlist& params);
+       void ProcessConnectedLine(std::string& prefix, std::string& command, CommandBase::Params& params);
 
        /** Handle socket timeout from connect()
         */
@@ -306,5 +306,5 @@ class TreeSocket : public BufferedSocket
 
        /** Fixes messages coming from old servers so the new command handlers understand them
         */
-       bool PreProcessOldProtocolMessage(User*& who, std::string& cmd, std::vector<std::string>& params);
+       bool PreProcessOldProtocolMessage(User*& who, std::string& cmd, CommandBase::Params& params);
 };
index a91fbd8ebe46d15756256ec3db7fe46fa4e718b2..062d04222cd78bdd6a1e30fd04e99034b5ab170a 100644 (file)
@@ -145,7 +145,7 @@ void TreeSocket::SendError(const std::string &errormessage)
        SetError(errormessage);
 }
 
-CmdResult CommandSQuit::HandleServer(TreeServer* server, std::vector<std::string>& params)
+CmdResult CommandSQuit::HandleServer(TreeServer* server, CommandBase::Params& params)
 {
        TreeServer* quitting = Utils->FindServer(params[0]);
        if (!quitting)
index 04b850755020eebfdc0f87d820c62db5ac1e27b5..d9083016cc8d0b6d807aa599fe9c171df2260a97 100644 (file)
 #include "commands.h"
 
 /* Handle ERROR command */
-void TreeSocket::Error(parameterlist &params)
+void TreeSocket::Error(CommandBase::Params& params)
 {
        std::string msg = params.size() ? params[0] : "";
        SetError("received ERROR " + msg);
 }
 
-void TreeSocket::Split(const std::string& line, std::string& prefix, std::string& command, parameterlist& params)
+void TreeSocket::Split(const std::string& line, std::string& prefix, std::string& command, CommandBase::Params& params)
 {
        irc::tokenstream tokens(line);
 
@@ -79,7 +79,7 @@ void TreeSocket::ProcessLine(std::string &line)
 {
        std::string prefix;
        std::string command;
-       parameterlist params;
+       CommandBase::Params params;
 
        ServerInstance->Logs->Log(MODNAME, LOG_RAWIO, "S[%d] I %s", this->GetFd(), line.c_str());
 
@@ -263,7 +263,7 @@ User* TreeSocket::FindSource(const std::string& prefix, const std::string& comma
        return NULL;
 }
 
-void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, parameterlist& params)
+void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, CommandBase::Params& params)
 {
        User* who = FindSource(prefix, command);
        if (!who)
@@ -343,7 +343,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command,
                res = scmd->Handle(who, params);
        else
        {
-               res = cmd->Handle(params, who);
+               res = cmd->Handle(who, params);
                if (res == CMD_INVALID)
                        throw ProtocolException("Error in command handler");
        }
index 905061cc73e6877d7a59db0af98027e69b766b4b..f9cff6c0d03420fba7240a2720be2fb372e95765 100644 (file)
@@ -26,7 +26,7 @@
 #include "treeserver.h"
 #include "remoteuser.h"
 
-CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vector<std::string>& params)
+CmdResult CommandUID::HandleServer(TreeServer* remoteserver, CommandBase::Params& params)
 {
        /**
         *      0    1    2    3    4    5        6        7     8        9       (n-1)
@@ -133,19 +133,19 @@ CmdResult CommandUID::HandleServer(TreeServer* remoteserver, std::vector<std::st
        return CMD_SUCCESS;
 }
 
-CmdResult CommandFHost::HandleRemote(RemoteUser* src, std::vector<std::string>& params)
-{
+CmdResult CommandFHost::HandleRemote(RemoteUser* src, Params& params)
+{              
        src->ChangeDisplayedHost(params[0]);
        return CMD_SUCCESS;
 }
 
-CmdResult CommandFIdent::HandleRemote(RemoteUser* src, std::vector<std::string>& params)
+CmdResult CommandFIdent::HandleRemote(RemoteUser* src, Params& params)
 {
        src->ChangeIdent(params[0]);
        return CMD_SUCCESS;
 }
 
-CmdResult CommandFName::HandleRemote(RemoteUser* src, std::vector<std::string>& params)
+CmdResult CommandFName::HandleRemote(RemoteUser* src, Params& params)
 {
        src->ChangeName(params[0]);
        return CMD_SUCCESS;
index 3d34b93a6add6e6941cc0737fc7cfa965074d95b..495b0941401fe4c1a869e4354adc68d3029f05c4 100644 (file)
@@ -114,7 +114,7 @@ class SpanningTreeUtilities : public classbase
         */
        ~SpanningTreeUtilities();
 
-       void RouteCommand(TreeServer* origin, CommandBase* cmd, const parameterlist& parameters, User* user);
+       void RouteCommand(TreeServer* origin, CommandBase* cmd, const CommandBase::Params& parameters, User* user);
 
        /** Send a message from this server to one other local or remote
         */
index 4728170192e8cbc6c47d644643fe3cac36f96904..e126e584e2bde8a321d7cfa58c4e0c083ef62861 100644 (file)
@@ -130,7 +130,7 @@ class OperQuery : public SQL::Query
 
                if (oper_command)
                {
-                       std::vector<std::string> params;
+                       CommandBase::Params params;
                        params.push_back(username);
                        params.push_back(password);
 
@@ -143,7 +143,7 @@ class OperQuery : public SQL::Query
                                return;
 
                        // Now handle /OPER.
-                       oper_command->Handle(params, user);
+                       oper_command->Handle(user, params);
                }
                else
                {
@@ -195,7 +195,7 @@ public:
                }
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                // If we are not in the middle of an existing /OPER and someone is trying to oper-up
                if (validated && command == "OPER" && parameters.size() >= 2 && !active)
index 85e7b77dd3f560ddbefdd02d3f232cf0e6a47731..7b73740dbafb35a653d58b8862aa6d89a7bd411c 100644 (file)
@@ -99,7 +99,7 @@ class CommandSSLInfo : public Command
                this->syntax = "<nick>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* target = ServerInstance->FindNickOnly(parameters[0]);
 
@@ -179,7 +179,7 @@ class ModuleSSLInfo : public Module, public Whois::EventListener
                }
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                if ((command == "OPER") && (validated))
                {
index d05a10c43641d2c008e2283b408770ebc39bf80c..ea6536ed13585dcd2c601dcbb39b8f6af3cebb82 100644 (file)
@@ -40,7 +40,7 @@ class CommandStartTLS : public SplitCommand
                works_before_reg = true;
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (!ssl)
                {
index 481a1aaba4643d00c7c81fe3cc627f7db155677c..e74f3324ba936ff324326d4f94b86fbd273e5df8 100644 (file)
@@ -99,7 +99,7 @@ class CommandSvshold : public Command
                flags_needed = 'o'; this->syntax = "<nickname> [<duration> :<reason>]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                /* syntax: svshold nickname time :reason goes here */
                /* 'time' is a human-readable timestring, like 2d3h2s. */
@@ -156,7 +156,7 @@ class CommandSvshold : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
index d42649909babf9d48c0c6d612d00c14c664f37ab..6c420ca3a8cd29fff0582704cbaa111836b813ce 100644 (file)
@@ -48,7 +48,7 @@ class CommandSwhois : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* dest = ServerInstance->FindNick(parameters[0]);
 
index 2decc2d3a584e282e8101e814646fe63e9ab7ef2..fd2d3d0f0e6f7d8d3903d26eda753172e1d8595e 100644 (file)
@@ -68,7 +68,7 @@ class CommandTban : public Command
                syntax = "<channel> <duration> <banmask>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                Channel* channel = ServerInstance->FindChan(parameters[0]);
                if (!channel)
@@ -129,7 +129,7 @@ class CommandTban : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
index a351db227cc5667951cef6ff5fd75cb209c835b7..692472e117fa1180f8e302f40455bea0e054f5d5 100644 (file)
@@ -30,7 +30,7 @@ class CommandTline : public Command
                flags_needed = 'o'; this->syntax = "<mask>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                unsigned int n_matched = 0;
                unsigned int n_match_host = 0;
index 9bdcdc182bba52fa44b2b495fef9ce3cee2dc1c9..cbe524408b39f133856c8c50452a1229f8499ab8 100644 (file)
@@ -33,7 +33,7 @@ class CommandSVSTOPIC : public Command
                flags_needed = FLAG_SERVERONLY;
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (!user->server->IsULine())
                {
@@ -67,7 +67,7 @@ class CommandSVSTOPIC : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_BROADCAST;
        }
index ce9c517f49149dbb3c81ac135561f8ce4b4e8d2e..4165519fcd5d41c6ece63f9835ee881fc1248121 100644 (file)
@@ -41,7 +41,7 @@ class ModuleUHNames : public Module
                tokens["UHNAMES"];
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE
        {
                /* We don't actually create a proper command handler class for PROTOCTL,
                 * because other modules might want to have PROTOCTL hooks too.
index b8390c0063b38915deaf12a9bf8d7b7c77a1df30..edaabf9fe4359b4bbe1e32841f7439141b288183 100644 (file)
@@ -43,7 +43,7 @@ class CommandUninvite : public Command
                TRANSLATE2(TR_NICK, TR_TEXT);
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* u;
                if (IS_LOCAL(user))
@@ -109,7 +109,7 @@ class CommandUninvite : public Command
                return CMD_SUCCESS;
        }
 
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                return ROUTE_OPT_UCAST(parameters[0]);
        }
index 610177cb7f50cca5aee3f6a74515fe46eaeeb089..c64f536844285e1942463a0e3bf46ce72d7c5ad9 100644 (file)
@@ -31,7 +31,7 @@ class CommandUserip : public Command
                syntax = "<nick> [<nick> ...]";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                std::string retbuf;
                int nicks = 0;
index bc10fb819b6de97113e01d8c1b51e583d21c1f42..01df33cae02eeabafccf2a726253a3f80ded3151 100644 (file)
@@ -32,7 +32,7 @@ class CommandVhost : public Command
                syntax = "<username> <password>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                ConfigTagList tags = ServerInstance->Config->ConfTags("vhost");
                for(ConfigIter i = tags.first; i != tags.second; ++i)
index 6406f0573cc83ba3488d565a0d3184cfc43d349b..82cdcb6f820fe19a012c8712bb833a1eb3ed9abe 100644 (file)
@@ -135,7 +135,7 @@ class CommandWatch : public SplitCommand
                syntax = "[<C|L|S|l|+<nick1>|-<nick>>]";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                if (parameters.empty())
                {
index 442770aca3513118291fbbb64300fb46e106d6ba..81e6512a1e435bd977bc06863b3945327e4c4608 100644 (file)
@@ -561,7 +561,7 @@ void LocalUser::FullConnect()
        /* Trigger MOTD and LUSERS output, give modules a chance too */
        ModResult MOD_RESULT;
        std::string command("LUSERS");
-       std::vector<std::string> parameters;
+       CommandBase::Params parameters;
        FIRST_MOD_RESULT(OnPreCommand, MOD_RESULT, (command, parameters, this, true, command));
        if (!MOD_RESULT)
                ServerInstance->Parser.CallHandler(command, parameters, this);
@@ -825,7 +825,7 @@ void User::WriteCommand(const char* command, const std::string& text)
 
 namespace
 {
-       std::string BuildNumeric(const std::string& source, User* targetuser, unsigned int num, const std::vector<std::string>& params)
+       std::string BuildNumeric(const std::string& source, User* targetuser, unsigned int num, const Command::Params& params)
        {
                const char* const target = (targetuser->registered & REG_NICK ? targetuser->nick.c_str() : "*");
                std::string raw = InspIRCd::Format(":%s %03u %s", source.c_str(), num, target);